gpt4 book ai didi

matlab - 自适应阈值——最小误差阈值方法的实现

转载 作者:行者123 更新时间:2023-12-02 08:59:59 24 4
gpt4 key购买 nike

我正在尝试实现以下Minimum Error Thresholding (作者:J. Kittler 和 J. Illingworth)MATLAB 中的方法。

您可以查看 PDF:

我的代码是:

function [ Level ] = MET( IMG )
%Maximum Error Thresholding By Kittler
% Finding the Min of a cost function J in any possible thresholding. The
% function output is the Optimal Thresholding.

for t = 0:255 % Assuming 8 bit image
I1 = IMG;
I1 = I1(I1 <= t);
q1 = sum(hist(I1, 256));

I2 = IMG;
I2 = I2(I2 > t);
q2 = sum(hist(I2, 256));

% J is proportional to the Overlapping Area of the 2 assumed Gaussians
J(t + 1) = 1 + 2 * (q1 * log(std(I1, 1)) + q2 * log(std(I2, 1)))...
-2 * (q1 * log(q1) + q2 * log(q2));
end

[~, Level] = min(J);

%Level = (IMG <= Level);

end

我已经在下面的图片上尝试过: Letters

Original size image .

目标是提取字母(希伯来字母)的二值图像。我将代码应用于图像的子 block (40 x 40)。然而我得到的结果不如 K-Means Clustering method .

我是不是错过了什么?大家有更好的主意吗?

谢谢。

附注有人会在主题标签中添加“自适应阈值”吗(我不能,因为我是新人)。

最佳答案

阈值设置是一件相当棘手的事情。多年来,我一直在对图像进行阈值处理,但没有找到一种始终表现良好的技术,而且我开始不相信 CS 期刊中普遍表现出色的说法。

最大误差阈值方法仅适用于良好的双峰直方图(但它适用于那些)。您的图像看起来信号和背景可能没有足够清晰地分离,无法使此阈值方法发挥作用。

如果您想确保代码正常工作,您可以创建一个像这样的测试程序,并检查是否获得良好的初始分段,以及代码在什么级别的“双峰”下崩溃。

关于matlab - 自适应阈值——最小误差阈值方法的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com