您好,我在分割下面的图片时遇到问题。它是需要识别的彩色字符。我正在使用锐化、维纳去模糊和维纳平滑。之后,我用fuzzy-c 对图片进行分割意味着聚类(3 类)。但是在字母 E 的情况下,我得到的最好的结果是没有锐化、去模糊和平滑,只使用阈值 fcm 分割。然而,我应该得到比这更好的结果,我可以将这两个部分组合为一个整体(不仅仅是上部白色部分和另一半黑色部分)。
我怎样才能解决这个问题,使其更健壮,并与其他图像一起工作,例如图片中的 5?5 的结果是在 fcm 聚类之上进行锐化、去模糊和平滑。我怎样才能让它更连接呢?
我真的很感谢我能得到的任何帮助,哦,我正在 matlab 中做这个......所以很高兴从那里得到任何帮助,谢谢!
编辑:
我的以下代码是这样的: function [bw,level]=fcmthresh(IM,sw) if (nargin<1) error('You must provide an image.'); 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);
这就是所有的代码,加上我只使用 fcmthres 来表示字母 E,因为它工作得最好。我阅读了有关形态学图像处理(膨胀,腐蚀)的信息,因此也许可以解决问题。
有没有更好的图像对比和去噪技术?