如何计算Niblack阈值算法的平均值

时间:2013-12-18 00:14:56

标签: android algorithm matlab opencv image-processing

我希望使用Niblack lib来实现OpenCV4Android阈值算法。我尝试在线查看一些代码(主要是MatLabC++代码),但我对完全理解它有疑问。因此我只想坚持阈值公式并自己创建阈值方法:

 if pixel > (mean + k * standard_deviation) 
     pixel = object; 
 else 
     pixel = background; 
 end 

k - 此参数的值通常为-0.2,默认为
standard_deviation - 如果我们有意思,很容易得到:((平均值来自图像^ 2) - 均值^ 2)^ 0.5

还有我的问题。如何实际计算这里的意思?对于我可以得到的每个thhresholded像素,它是一个从整个图像计算的常数值:

Core.mean(Mat src);

或者它可能是像素周围N x N邻域的平均值?还有构造函数:

Core.mean(Mat src, mask);

但根据文件:http://docs.opencv.org/java/org/opencv/core/Core.html#mean(org.opencv.core.Mat,org.opencv.core.Mat) 它看起来不像我需要的......

所以,假设我正在通过表示想要二值化的图像的整个矩阵进行迭代。每个像素都通过逻辑:

if pixel > (mean + k * standard_deviation) 

有人能理解这个算法告诉我应该如何计算平均值?每个像素不同或所有像素相同?

0 个答案:

没有答案