더북(TheBook)

코드 11-2 적응형 이진화 예제 프로그램 [ch11/adaptive]

01    #include "opencv2/opencv.hpp"
02    #include <iostream>
03     
04    using namespace cv;
05    using namespace std;
06     
07    void on_trackbar(int pos, void* userdata);
08     
09    int main()
10    {
11        Mat src = imread("sudoku.jpg", IMREAD_GRAYSCALE);
12     
13        if (src.empty()) {
14            cerr << "Image load failed!" << endl;
15            return -1;
16        }
17     
18        imshow("src", src);
19     
20        namedWindow("dst");
21        createTrackbar("Block Size", "dst", 0, 200, on_trackbar, (void*)&src);
22        setTrackbarPos("Block Size", "dst", 11);
23     
24        waitKey(0);
25        return 0;
26    }
27     
28    void on_trackbar(int pos, void* userdata)
29    {
30        Mat src = *(Mat*)userdata;
31     
32        int bsize = pos;
33        if (bsize % 2 = = 0) bsize--;
34        if (bsize < 3) bsize = 3;
35     
36        Mat dst;
37        adaptiveThreshold(src, dst, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY,
38                          bsize, 5);
39     
40        imshow("dst", dst);
41    }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.