㈠ 如何通过matlab把下面灰度图转换成彩色图,最好是用最大类间方差法。。急用、跪求
clc
clear
I1=imread('yanshitu.jpg');
I=rgb2gray(I1);
thresh = multithresh(I,4);
seg_I = imquantize(I,thresh); % apply the thresholds to obtain segmented image
RGB = label2rgb(seg_I); % convert to color image
figure;
imshowpair(I,RGB,'montage'); % display images side-by-side
axis off;
title('Original Image RGB Segmented Image')
㈡ otsu阈值分割算法是什么
Otsu算法:最大类间方差法(大津算法),是一种确定阈值的算法。
之所以称为最大类间方差法是因为,用该阈值进行的图像固定阈值二值化,类间方差最大,它是按图像的灰度特性,将图像分成背景和前景两部分,使类间方差最大的分割意味着错分概率最小。
算法评价:
优点:算法简单,当目标与背景的面积相差不大时,能够有效地对图像进行分割。
缺点:当图像中的目标与背景的面积相差很大时,表现为直方图没有明显的双峰,或者两个峰的大小相差很大,分割效果不佳,或者目标与背景的灰度有较大的重叠时也不能准确的将目标与背景分开。
㈢ Matlab编程求一个最大类间方差法的计算最佳阈值的程序。
k的0~255循环求得每一个对应的fc=w0*(u0-ut).^2+w1*(u1-ut).^2;然后比较这256个fc中的最大值,对应的那个k就是ostu的阈值。所以你这个还差一个k的循环,并在循环里面求最大fc。
我这也有段求阈值的,你可以参考下
hist=zeros(256,1);%直方图
%threshold=128; %初始阈值
%计算直方图
for i=1:height
for j=1:width
m=I_gray(i,j)+1;
hist(m)=hist(m)+1;
end
end
hist=hist/(height*width);%落在每一灰度级上的概率
avg=0;
for m=1:256
avg=avg+(m-1)*hist(m);
end
temp=0;
for i=1:256
p1=0;
avg1=0;
avg2=0;
T_current=i-1;%当前分割阈值
for m=1:T_current-1
p1=hist(m)+ p1;%低灰度级概率总和
end
p2=1-p1;%高灰度级概率总和
for m=1:256
if m<T_current
avg1=avg1+(m-1)*hist(m);
else
avg2=avg2+(m-1)*hist(m);
end
end
avg1=avg1/p1;
avg2=avg2/p2;
D=p1*(avg1-avg)^2+p2*(avg2-avg)^2;
if D>=temp
finalT=T_current;
temp=D;
end
end
另外,站长团上有产品团购,便宜有保证