C#/C# OpenCV/

C# OpenCV 4-2. Binary

2019. 11. 6.

대표함수

Cv2.Threshold 이미지를 이진화 할때 사용

    이진화 하기전 흑백화를 먼저 진행 해주는게 좋음.

    ※ 참고 [프로그래밍/C# OpenCV] - C# OpenCV 4-1. GrayScale

 

Example Code

using System;
using System.Windows.Forms;
using OpenCvSharp;

namespace binarytest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Mat src = Cv2.ImRead("image.jpg");
            Mat gray = new Mat();
            Mat binary = new Mat();

            Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY);
            Cv2.Threshold(gray, binary, 127, 255, ThresholdTypes.Binary);

            Cv2.ImShow("Src", src);
            Cv2.ImShow("Binary", binary);
            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();
        }
    }
}

 

Explain Code


Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY);
Cv2.Threshold(gray, binary, 127, 255, ThresholdTypes.Binary);

Cv2.CvtColor 이미지 흑백화

Cv2.Threshold(src, dst, double thresh, double, maxval, ThresholdTypes)

    src이미지를 thresh, maxval, ThresholdTypes를 기준으로 변환 dst에 출력

    ※ thresh 임곗값, maxval 최댓값, ThresholdTypes 속성값   

 
속성값 임곗값, 최댓값
Binary 임곗값 초과할 경우 최댓값, 아닐 경우 0
BinaryInv 임곗값 초과할 경우 0, 아닐 경우 최댓값
Trunc 임곗값 초과할 경우 임곗값, 아닐 경우 변환 없음
Tozero 임곗값 초과할 경우 변환 없음, 아닐 경우 0
TozeroInv 임곗값 초과할 경우 0, 아닐 경우 변환 없음
Mask 검은색 이미지로 변환
Otsu Otsu 알고리즘 적용( 단일 채널 이미지만 적용 가능 )
Triangle Triangle 알고리즘 적용 ( 단일 채널 이미지만 적용 가능 )

 

결과