① 动态阈值一般有什么算法谢谢啦,没钱。。。
%本程序是利用最大类间方差算法求解自适应阈值,对图像进行分割
clear;
warning off;
web -browser
SE = strel('diamond',4);
BW1 = imread('img1.bmp');
BW2 = imerode(BW1,SE);
BW3 = imdilate(BW2,SE);
BW4 = BW1-BW3;
%rgb转灰度
if isrgb(BW4)==1
I_gray=rgb2gray(BW4);
else
I_gray=BW4;
end
figure,imshow(I_gray);
I_double=double(I_gray);%转化为双精度
[wid,len]=size(I_gray);
colorlevel=256; %灰度级
hist=zeros(colorlevel,1);%直方图
%threshold=128; %初始阈值
%计算直方图
for i=1:wid
for j=1:len
m=I_gray(i,j)+1;
hist(m)=hist(m)+1;
end
end
hist=hist/(wid*len);%直方图归一化
miuT=0;
for m=1:colorlevel
miuT=miuT+(m-1)*hist(m);
end
xigmaB2=0;
for mindex=1:colorlevel
threshold=mindex-1;
omega1=0;
omega2=0;
for m=1:threshold-1
omega1=omega1+hist(m);
end
omega2=1-omega1;
miu1=0;
miu2=0;
for m=1:colorlevel
if m<threshold
miu1=miu1+(m-1)*hist(m);
else
miu2=miu2+(m-1)*hist(m);
end
end
miu1=miu1/omega1;
miu2=miu2/omega2;
xigmaB21=omega1*(miu1-miuT)^2+omega2*(miu2-miuT)^2;
xigma(mindex)=xigmaB21;
if xigmaB21>xigmaB2
finalT=threshold;
xigmaB2=xigmaB21;
end
end
fT=finalT/255 %阈值归一化
T=graythresh(I_gray)%matlab函数求阈值
for i=1:wid
for j=1:len
if I_double(i,j)>finalT
bin(i,j)=1;
else
bin(i,j)=0;
end
end
end
figure,imshow(bin);
figure,plot(1:colorlevel,xigma);
已发送,请查收,发送邮箱[email protected] ,你的邮箱名是错的,弹回来了。反正这里也有,不发了。
② Heursure阈值算法是什么
rigrsure阈值,是一种基于Stein的无偏似然估计原理的自适应阈值选择;
sqtwolog阈值,采用的是一种固定的阈值形式,它所产生的阈值为2log(length(x))
heursure阈值,是前两种阈值法的综合,所选择的是最优预测变量阈值,当信噪比很小,阈值估计有很大噪声时就需要采用这种固定的阈值形式
刚在写论文,随手粘贴过来。
③ 求帮翻译一下..在线等..
该LEVL命令集,或者读取,用于信道i的触发阈值。如果SR620是在autolevel模式下,该命令将关闭autolevel模式,并设置所需的阈值。触发电平由LEVL命令设置将一直有效,直至前面板旋钮旋转
④ 简单阈值法和Otsu算法的根本区别是什么
区别如下:
Niblack算法是通过某一像素点及其邻域内像素点灰度值的均值和标准差计算得到二值化阈值的。在计算图像点(x,y)二值化阈值时,首先计算以(x,y)为中心的n*n大小的区域内像素点的灰度均值m和标准差s。灰度均值m和标准差s的计算公式如下:
然后根据灰度均值和标准差计算得到点(x,y)的二值化阈值T,计算公式为T(x,y)=k*s(x,y)+m(x,y),其中k为修正系数。最后根据计算得到的阈值T对该点进行二值化处理。将图像中所有的像素点按照此方法处理即可得到二值化图像。
虽然能够实现图像的二值化,但是如果选取的区域均为背景点时,该算法会将灰度值较高的点当做是目标点,导致伪噪声的引入(针对伪噪声引入的问题,产生了Sauvola算法)。此处说明一下Sauvola算法。Sauvola算法可以说是一种改进的Niblack算法。首先也是按照上文所述方式求取灰度均值和标准差,但是采用了不同的阈值选取方法。