我正在尝试使用adaptiveTreshold,但在blockSize方面出现了错误。我知道它应该是奇数并且> 0,它被设置为11,但是它仍然显示了这个错误。有什么不对的?
treshold = 115
maxValue = 255
adaptiveMethod = cv.ADAPTIVE_THRESH_GAUSSIAN_C
thresholdType = cv.THRESH_BINARY
blockSize = 11
C = 2
im = cv.adaptiveThreshold(img, treshold, maxValue, adaptiveMethod, thresholdType, blockSize, C)
plt.imsave(save_path, im, cmap = 'gray')error: OpenCV(4.6.0) /io/opencv/modules/imgproc/src/thresh.cpp:1675: error: (-215:Assertion failed) blockSize % 2 == 1 && blockSize > 1 in function 'adaptiveThreshold发布于 2022-07-22 18:49:50
怎么了?
该函数需要一个奇数编号的内核。但是您已经传递了变量thresholdType = cv.THRESH_BINARY而不是blockSize。由于cv.THRESH_BINARY的相应整数值为0,因此将引发此错误。
这个错误是什么意思?
这意味着必须满足的两个条件:
blockSize必须是奇数,numberblockSize必须大于1换句话说,blockSize必须是3或3以上的任何奇数。
如何改正?
删除不需要的treshold
cv.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)
发布于 2022-07-22 18:36:49
adaptiveThreshold不使用threshold参数。你的电话应该是
im = cv.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)https://stackoverflow.com/questions/73084640
复制相似问题