在自适应阈值中给出块大小值的基础是什么?

Sib*_*bnz 1 python opencv image-processing

我不太了解在自适应阈值中使用块大小的目的。并且还想知道在哪个基础上将值分配为块大小。考虑代码:

gaussian=cv2.adaptiveThreshold(grayscaledImage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,115,1)
Run Code Online (Sandbox Code Playgroud)

在这里,我试图获得灰度图像的自适应高斯阈值。当我将块大小分配为 115 时,就像上面的代码一样,代码运行良好。

但是,如果,我将块大小分配为 114 或 116,例如:

gaussian=cv2.adaptiveThreshold(grayscaledImage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,116,1)
Run Code Online (Sandbox Code Playgroud)

此代码出现错误。现在我的主要问题是,我怎样才能理解应该给出哪个值作为块大小?

Pig*_*let 5

从文档:

https://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html

blockSize – 用于计算像素阈值的像素邻域的大小:3、5、7

一个块以一个像素为中心,所以它必须是一个奇数才能有意义。3,5,7 等表示奇数 > 1

请阅读文档。他们告诉你如何正确使用东西。