gpt4 book ai didi

matlab - 图像降噪 OCR

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

您好,我在分割下面的图片时遇到问题。它是需要识别的彩色字符。我正在使用锐化、维纳去模糊和维纳平滑。之后我用 fuzzy-c 分割图片意味着聚类(3 类)。但在字母 E 的情况下,我得到的最好结果是没有锐化、去模糊和平滑,只是有阈值 fcm 分割。然而,我应该得到比这更好的结果,我可以将这两个部分组合成一个整体(不仅仅是上部白色部分和另一半黑色)。

我怎样才能解决这个问题以使其更加稳健并与其他图像一起工作,例如图片中的 5? 5 的结果是在 fcm 聚类之上进行锐化、去模糊和平滑。我怎样才能让它连接得更紧密?

我真的很感激我能得到的任何帮助,哦,我正在 matlab 中做这件事......所以如果能从那里得到任何帮助就太好了,谢谢!

This is letter E, i would like to get one element as a whole

Second pic is number 5, should be more smooth and connected, without any spaces between lines

编辑:

我的以下代码是这样的: 函数 [bw,level]=fcmthresh(IM,sw) 如果(nargin<1) error('你必须提供一张图片。'); elseif (nargin==1) sw=0; elseif (sw~=0 && sw~=1) error('sw 必须为 0 或 1。'); 结束

data=reshape(IM,[],1);
[center,member]=fcm(data,3);
[center,cidx]=sort(center);
member=member';
member=member(:,cidx);
[maxmember,label]=max(member,[],2);
if sw==0
level=(max(data(label==1))+min(data(label==2)))/2;
else
level=(max(data(label==2))+min(data(label==3)))/2;
end
bw=im2bw(IM,level);

function img=wienerDeblur(im)
ImgNoisyBlurry = im2double(im);
PSF = fspecial('laplacian'); %LEN, THETA add parameters for 'motion'

noise_var = 0.0001; %0.0001
estimated_nsr = noise_var / var(ImgNoisyBlurry(:));
wnr3 = deconvwnr(ImgNoisyBlurry, PSF, estimated_nsr);
img = wnr3;

end

H = fspecial('unsharp');
im = imfilter(im,H,'replicate');
im = wienerDeblur(im);
im = wienerSmoothing(im);

这就是所有代码,而且我只对字母 E 使用 fcmthres,因为它的效果最好。我阅读了有关形态图像处理(膨胀,腐 eclipse )的信息,因此也许可以解决问题。

有没有更好的图像对比和去噪技术?

最佳答案

您可以在 h channel 上尝试 canny 边缘检测(尝试所有 channel 并进行比较)(rgb2hsv),然后进行形态学操作以闭合曲线并填充 (imfill) 数字和字母的曲线。我现在无法访问 matlab,但在类似问题上已成功解决此问题。

http://www.mathworks.se/help/techdoc/ref/rgb2hsv.htmlhttp://www.mathworks.se/help/toolbox/images/ref/edge.html http://www.mathworks.se/help/toolbox/images/ref/imfill.html

关于matlab - 图像降噪 OCR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712592/

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