적응형 이진화
728x90
전체 이미지에 하나의 임계값을 사용하는 threshold함수는 이미지 일부가 어두운 경에는 하나의 임계값을 사용하여
이진화 할때 좋은 결과를 얻기 힘듭니다.
적응형 이진화는 이미지를 작은 영역으로 나누어 각 영역별로 다른 임계값을 사용하는 방법입니다.
적응형 이진화를 위해 OpenCV 에서는 adaptive Threshold함수를 제공합니다.
그림에 적응형 이진화를 적용해보면 어두운 부분과 조명이 알맞은 부분에 모두 좋은 이진화 결과를 보여주는 것을 볼수 있습니다.
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 이미지를 읽어옵니다.
Mat img_color;
img_color = imread("test.jpg", IMREAD_COLOR);
if (img_color.empty())
{
cout << "이미지 파일을 읽을 수 없습니다." << endl;
return -1;
}
// 그레이 스케일 이미지로
Mat img_gray;
cvtColor(img_color, img_gray, COLOR_BGR2GRAY);
// 그레이 스케일 이미지에 적응형 이진화를 적용합니다.
Mat img_binary;
adaptiveThreshold(img_gray, img_binary, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 5, 4);
//결과 이미지를 보여줍니다.
imshow("Grayscale", img_gray);
imshow("binary", img_binary);
waitKey(0);
}
728x90
'Python > python - opencv' 카테고리의 다른 글
ubuntu 에서 opencv 로 h264 codec 비디오 파일 만들기 (0) | 2021.09.01 |
---|---|
opencv 전역 임계값 사용 (0) | 2020.11.10 |
opencv 이미지 채널 분리 및 합치기 (0) | 2020.11.10 |
opencv 픽셀에 접근하기 (0) | 2020.11.10 |
댓글
이 글 공유하기
다른 글
-
ubuntu 에서 opencv 로 h264 codec 비디오 파일 만들기
ubuntu 에서 opencv 로 h264 codec 비디오 파일 만들기
2021.09.01 -
opencv 전역 임계값 사용
opencv 전역 임계값 사용
2020.11.10 -
opencv 이미지 채널 분리 및 합치기
opencv 이미지 채널 분리 및 합치기
2020.11.10 -
opencv 픽셀에 접근하기
opencv 픽셀에 접근하기
2020.11.10