gpt4 book ai didi

image-processing - 对文档的褪色图像实现 Otsu 二值化

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:11 26 4
gpt4 key购买 nike

我正在尝试对文档图像实现 Otsu 二值化技术,例如所示:

enter image description here

谁能告诉我如何在 MATLAB 中实现代码?

最佳答案

取自Otsu's method on Wikipedia

I = imread('cameraman.tif');

第 1 步。计算直方图和每个强度级别的概率。

nbins = 256; % Number of bins
counts = imhist(I,nbins); % Each intensity increments the histogram from 0 to 255
p = counts / sum(counts); % Probabilities

第 2 步。设置初始 omega_i(0) 和 mu_i(0)

omega1 = 0;
omega2 = 1;
mu1 = 0;
mu2 = mean(I(:));

第 3 步。通过所有可能的阈值,从 0 到最大强度 (255)

步骤 3.1 更新 omega_i 和 mu_i

步骤 3.2 计算 sigma_b_squared

for t = 1:nbins
omega1(t) = sum(p(1:t));
omega2(t) = sum(p(t+1:end));
mu1(t) = sum(p(1:t).*(1:t)');
mu2(t) = sum(p(t+1:end).*(t+1:nbins)');
end

sigma_b_squared_wiki = omega1 .* omega2 .* (mu2-mu1).^2; % Eq. (14)
sigma_b_squared_otsu = (mu1(end) .* omega1-mu1) .^2 ./(omega1 .* (1-omega1)); % Eq. (18)

第 4 步 期望的阈值对应于 sigma_b_squared 最大值的位置

[~,thres_level_wiki] = max(sigma_b_squared_wiki);
[~,thres_level_otsu] = max(sigma_b_squared_otsu);

wiki 版本 eq 之间存在一些差异。 (14) 在 Otsu 和 eq。 (18),我不明白为什么。但是 thres_level_otsu 对应于 MATLAB 的实现 graythresh(I)

关于image-processing - 对文档的褪色图像实现 Otsu 二值化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303229/

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