python - Opencv python 不正确的 block 大小

标签 python opencv

def adaptive_gaussian_thresholding(self, filename):
    im = cv2.imread(filename, 0)
    filtered_image = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 3, cv2.THRESH_BINARY, 3, 0)
    cv2.imwrite(filename, filtered_image)
filtered_image = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 3, cv2.THRESH_BINARY, 3, 0)
error: /root/opencv/modules/imgproc/src/thresh.cpp:1287: error: (-215) blockSize % 2 == 1 && blockSize > 1 in function adaptiveThreshold

block 大小或图 block 大小是要用于传递给过程的内核的像素数^2。它必须是奇数。我不确定这是错误还是其他问题?

Official documentation

最佳答案

您正在调用带有额外参数的 adaptiveThreshold。您在 adaptiveMethodthresholdType 参数之间错误地放置了一个 3。在您的调用中,cv2.THRESH_BINARY 标志位于 blockSize 值预期的位置。顺便说一下,cv2.THRESH_BINARY 的计算结果为零,因此会出现您看到的错误。调用函数的正确方法是:

filtered_image = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 3, 0)

关于python - Opencv python 不正确的 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978271/

相关文章:

Python:for语句行为

python - 为 sphinx 设置 Django 设置(文档)

python - 使用命令自动加载多个 UNIX screen

python - 有没有什么linux工具可以找到python程序的进程轨迹?

python - 使用 Python 确定字符串是否多次包含相同的单词?

用于将 16 位图像合并为高动态范围图像的 Python 模块

opencv - 如何计算ROI OpenCV中的像素

c++ - 缩放和旋转模板匹配

opencv - opencv检测真实世界的坐标

python - 使用 python/opencv pandas 在集合中查找规范图像