#python
import cv2
def on_trackbar(pos):
global src
bsize = pos
if bsize % 2 == 0:
bsize -= 1
if bsize < 3:
bsize = 3
dst = cv2.adaptiveThreshold(src, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, bsize, 2)
cv2.imshow("dst", dst)
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch11\\adaptive\\sudoku.jpg", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
else:
cv2.imshow("src", src)
cv2.namedWindow("dst")
cv2.createTrackbar("Block Size", "dst", 0, 200, on_trackbar)
cv2.setTrackbarPos("Block Size", "dst", 11)
on_trackbar(11)
cv2.waitKey(0)
// C++
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void on_trackbar(int pos, void* userdata);
int main()
{
Mat src = imread("sudoku.jpg", 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);
waitKey(0);
return 0;
}
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, 2);
imshow("dst", dst);
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저
'OpenCV' 카테고리의 다른 글
ch11 threshold (0) | 2024.05.21 |
---|---|
ch11 morphology (0) | 2024.05.21 |
ch10 inrange (0) | 2024.05.21 |
ch10 colorOp (0) | 2024.05.21 |
ch10 coloreq (0) | 2024.05.21 |