首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV AdaptiveTreshold错误:函数'adaptiveThreshold‘中的blockSize %2 == 1 && blockSize >1

OpenCV AdaptiveTreshold错误:函数'adaptiveThreshold‘中的blockSize %2 == 1 && blockSize >1
EN

Stack Overflow用户
提问于 2022-07-22 18:27:59
回答 2查看 66关注 0票数 2

我正在尝试使用adaptiveTreshold,但在blockSize方面出现了错误。我知道它应该是奇数并且> 0,它被设置为11,但是它仍然显示了这个错误。有什么不对的?

代码语言:javascript
复制
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')
代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2022-07-22 18:49:50

怎么了?

该函数需要一个奇数编号的内核。但是您已经传递了变量thresholdType = cv.THRESH_BINARY而不是blockSize。由于cv.THRESH_BINARY的相应整数值为0,因此将引发此错误。

这个错误是什么意思?

这意味着必须满足的两个条件:

  1. blockSize必须是奇数,number
  2. blockSize必须大于1

换句话说,blockSize必须是3或3以上的任何奇数。

如何改正?

删除不需要的treshold

cv.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)

票数 3
EN

Stack Overflow用户

发布于 2022-07-22 18:36:49

adaptiveThreshold不使用threshold参数。你的电话应该是

代码语言:javascript
复制
im = cv.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73084640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档