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 알고리즘 적용 ( 단일 채널 이미지만 적용 가능 ) |
결과