繁体   English   中英

numpy自适应阈值公式

[英]numpy adaptive threshold formula

我正在尝试基于灰度图像(点值为0到255的numpy 2D数组)计算阈值。

公式如下:

等式http://www.sciweavers.org/tex2img.php?eq=T%3D%202%2F%28w%2Ah%29%20%5Csum_%7Bi%3D0%7D%5E%7Bw-1%7D%20 %5Csum_%7BJ%3D0%7D%5E%7BH-1%7D%20S%28I%2Cj%29&BC =白色&FC =黑与IM = JPG&FS = 12&FF = AREV&编辑= 0

其中w,h是我的图像S的宽度和高度,而S(i,j)是该点的值。

我的实现如下:

h,w = sMap.shape
adapTresh = np.sum(sMap)*2/(w*h)

但是对于我的某些图像来说,总数返回> 255,所以我认为某处存在问题,我是否再次使用numpy错误?

我对Python不熟悉,我是2天前开始的,所以如果这是一个愚蠢的问题,请原谅我。

print w,h
>> 411,410
print 2/(w*h), np.sum(sMap), adapTresh
>> 0 22461727 266

矩阵中所有单元的平均值为:

avg = np.sum(sMap) / (w * h)

在极端情况下,所有像元等于255,这样

avg = 255

例如

In [8]: M = 255 * np.ones(4).reshape((2,2))

In [12]: M
Out[12]: 
array([[ 255.,  255.],
       [ 255.,  255.]])

In [9]: M.sum() * (2.0 / sum(M.shape))
Out[9]: 510.0

因此,我认为您的自适应阈值函数只是错误的。 你可能打算

In [11]: M.sum() / sum(M.shape)
Out[11]: 255.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM