Files
Capstone_Design/ch11/adaptive/main.cpp
2025-04-30 12:11:45 +09:00

43 lines
869 B
C++

#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);
}