在http://www.ijcaonline.org/casct/number1/SPE34T.pdf中查看pdf文件。
我需要一个类似于图6所示的输出。
我在这里附上我的编码。请帮帮我。
%testadaptivethresh.m
clear;close all;
im1=imread('nfliver2.jpg');
bwim1=adaptivethreshold(im1,11,0.03,0);
figure,imshow(im1);
figure,imshow(bwim1);
imwrite(bwim1,'at2.jpg');
function bw=adaptivethreshold(IM,ws,C,tm)
%ADAPTIVETHRESHOLD An adaptive thresholding algorithm that seperates the
%foreground from the background with nonuniform illumination.
% bw=adaptivethreshold(IM,ws,C) outputs a binary image bw with the local
% threshold mean-C or median-C to the image IM.
% ws is the local window size.
% tm is 0 or 1, a switch between mean and median. tm=0 mean(default); tm=1 median.
%
% Contributed by Guanglei Xiong (xgl99@mails.tsinghua.edu.cn)
% at Tsinghua University, Beijing, China.
%
% For more information, please see
% http://homepages.inf.ed.ac.uk/rbf/HIPR2/adpthrsh.htm
if (nargin<3)
error('You must provide the image IM, the window size ws, and C.');
elseif (nargin==3)
tm=0;
elseif (tm~=0 && tm~=1)
error('tm must be 0 or 1.');
end
IM=mat2gray(IM);
if tm==0
mIM=imfilter(IM,fspecial('average',ws),'replicate');
else
mIM=medfilt2(IM,[ws ws]);
end
sIM=mIM-IM-C;
bw=im2bw(sIM,0);
bw=imcomplement(bw);
我为testadaptivethresh修改的代码.m
clear;
im=imread('nfliver7.gif');
figure,imshow(im)
bwim1=adaptivethreshold(im,300,-0.15,0);
bw=bwareaopen(bwim1,3000);
se=strel('diamond',4);
er=imerode(bw,se);
bw1=bwareaopen(er,3000);
er1=imerode(bw1,se);
bw2=bwareaopen(er1,1000);
fi=imfill(bw2,'holes');
figure,imshow(fi)
op=uint8(fi);
seg=im.*op;
figure,imshow(seg)
imwrite(seg,'sliver7.jpg');
#1 楼
我看到了您所引用的(SS Kumar的)论文链接和获得代码(HIPR)的链接是两种不同的算法-尽管两种听起来都像是自适应阈值首先,我想告诉你区别。
在HIPR方法中,一般假设实质上是2类级别的图像-即前景和背景。在任何2类阈值中,人们都希望图像直方图中有2个峰或区域,特别是背景与前景,文本与白皮书。如果您以某种方式在直方图中找到了最佳谷点,则得到的划分最干净。直方图如下所示:
但是,该谷点可能会在局部附近稍微移动。那里有很好的照明变化示例。因此,该最佳谷点随处可见,但在空间上略有变化,因此通用阈值将失败。因此,在每个局部区域上计算谷点(阈值)。
SS Kumar的论文的方法,尤其是要处理的图像类别,是多类的(多个对象,每个对象的强度带和散布程度不同)。在这种情况下,直方图是多峰的,即它具有许多峰和谷,并且每个峰可能对应于不同的对象,但是它可能更加复杂。
直方图可能看起来像这样:(与纸上的图像相同)。
在这种情况下,由于没有一个好的谷底,上述2类方法将完全失败。这就是为什么您发布的第一张图片看起来周围都是黑白点。
自适应阈值的含义在这里,意味着您需要确定正确的峰值,并且覆盖杠杆大多数强度的灰度带和其他对象形成鲜明对比,这使得
你应该怎么办?
首先,如果必须使用自适应阈值,请找到直方图并查看强度范围,然后在强度阈值左侧或右侧确定应该丢弃哪些像素。
或者,您可以使用“区域增长”或“拆分合并”算法。有关此信息,请参阅此问题:哪些分割方法可用于简单图像?
评论
$ \ begingroup $
非常感谢。先生,这是一个非常有用的答案。
$ \ endgroup $
– Gomathi
2012年3月19日13:59
评论
有必要使用自适应阈值吗?blogs.mathworks.com/steve/2006/06/02/cell-segmentation发现了这一点,您可以尝试一下
是的,我只需要使用自适应阈值。如果没有,您能建议我其他任何好的分割方法(区域增长和FCM除外)吗?
www4.comp.polyu.edu.hk/~cslzhang/code.htm我发现这个可以查找K. Zhang,H。Song和L. Zhang的代码,“由局部图像拟合能量驱动的主动轮廓”,模式认识卷43,第4期,第1199-1206页,2010年4月。对于此图像,效果很好
非常感谢。我得到了输出。我更改了参数值并进行了形态学运算。谢谢大家。