일단
This commit is contained in:
43
ch11/adaptive/main.cpp
Normal file
43
ch11/adaptive/main.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <iostream>
|
||||
#include "opencv2/opencv.hpp"
|
||||
|
||||
using namespace cv;
|
||||
using namespace std;
|
||||
|
||||
void on_trackbar(int pos, void* userdata);
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
Mat src;
|
||||
|
||||
if (argc < 2)
|
||||
src = imread("../../resources/images/sudoku.jpg", IMREAD_GRAYSCALE);
|
||||
else
|
||||
src = imread(argv[1], IMREAD_GRAYSCALE);
|
||||
|
||||
if (src.empty()) {
|
||||
cerr << "Image load failed!" << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
imshow("src", src);
|
||||
|
||||
namedWindow("dst");
|
||||
createTrackbar("Block size", "dst", 0, 200, on_trackbar, (void*)&src);
|
||||
setTrackbarPos("Block size", "dst", 11);
|
||||
|
||||
cv::waitKey();
|
||||
cv::destroyAllWindows();
|
||||
}
|
||||
|
||||
void on_trackbar(int pos, void* userdata) {
|
||||
Mat src = *(Mat*)userdata;
|
||||
|
||||
int bsize = pos;
|
||||
if (bsize % 2 == 0) bsize--;
|
||||
if (bsize < 3) bsize = 3;
|
||||
|
||||
Mat dst;
|
||||
adaptiveThreshold(src, dst, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, bsize, 5);
|
||||
|
||||
imshow("dst", dst);
|
||||
}
|
||||
Reference in New Issue
Block a user