㈠ 如何通過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
另外,站長團上有產品團購,便宜有保證