IT/- 프로그래밍
OpenCV 이진영상 만들기 (cvThreshold 함수)
혁준7519
2017. 4. 14. 07:08
이진영상 만들기 (cvThreshold 함수)
이진영상 : 0, 255로만 이루어진 영상
c++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <opencv/cv.h> #include <opencv/highgui.h> void main() { IplImage *resultImage64, *resultImage128, *resultImage172; double threshold1 = 64, threshold2 = 128, threshold3 = 172; //임계값 : 기준이 되는 픽셀값 IplImage *srcImage = cvLoadImage("D:/study/testimage.jpg", -1); //create image resultImage64 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); resultImage128 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); resultImage172 = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); //이진영상 생성 //cvThreshold(원본 이미지, 결과 이미지, 임계값, 최대 명암값, 이진화 방식) cvThreshold(srcImage, resultImage64, threshold1, 255, CV_THRESH_BINARY); cvThreshold(srcImage, resultImage128, threshold2, 255, CV_THRESH_BINARY); cvThreshold(srcImage, resultImage172, threshold3, 255, CV_THRESH_BINARY); //이진화 방식 //CV_THRESH_BINARY : 임계값초과 255, 임계값이하 0 //CV_THRESH_BINARY_INV : 임계값초과 0, 임계값이하 255 //CV_THRESH_TRUNC : 임계값초과-임계값, 임계값이하-원래픽셀값 //CV_THRESH_TOZERO : 임계값초과-원래픽셀값, 임계값이하-0 //CV_THRESH_TOZERO_INV : 임계값초과-0, 임계값이하-원래픽셀값 //create window cvNamedWindow("source", CV_WINDOW_AUTOSIZE); cvNamedWindow("binary T=64", CV_WINDOW_AUTOSIZE); cvNamedWindow("binary T=128", CV_WINDOW_AUTOSIZE); cvNamedWindow("binary T=172", CV_WINDOW_AUTOSIZE); //show window cvShowImage("source", srcImage); cvShowImage("binary T=64", resultImage64); cvShowImage("binary T=128", resultImage128); cvShowImage("binary T=172", resultImage172); cvWaitKey(0); //release image cvReleaseImage(&srcImage); cvReleaseImage(&resultImage64); cvReleaseImage(&resultImage128); cvReleaseImage(&resultImage172); } | cs |
결과