我试着做一个适应性的阈值:
cv::Mat mat = cv::imread(inputFile);
cv::cvtColor(mat, mat, CV_BGR2GRAY);
cv::adaptiveThreshold(mat, mat, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 20, 0);
cv::imwrite(outputFile, mat);但是这个信息失败了:
OpenCV Error: Assertion failed (blockSize % 2 == 1 && blockSize > 1) in cv::adaptiveThreshold, file ..\..\..\..\opencv\modules\imgproc\src\thresh.cpp, line 797有什么问题吗?
发布于 2014-12-03 10:00:36
问题是,我为blockSize设置了一个偶数值,而它只需要奇数值,因此将它从20更改为21修正了断言失败:
cv::adaptiveThreshold(mat, mat, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 21, 0);医生们提到了这一点,但它们并不明确--如果blockSize不奇怪,它就会失败:
blockSize -像素邻域的大小,用于计算像素的阈值: 3、5、7等等。
正如你所看到的,它没有说“如果blockSize不奇怪,它就会失败”。
https://stackoverflow.com/questions/27268636
复制相似问题