Matlab-圖像分割與邊緣檢測實驗-採用閾值處理方法進行圖像分割
代碼鏈接:https://download.csdn.net/download/qq_43571150/12033271
問題
實現直方圖閾值法,具體方法爲採用灰度直方圖求雙峯或多峯,選擇兩峯之間的谷底作爲閾值,將圖像轉換爲2值圖像。
圖像結果👇
Matlab代碼👇
I=imread('05.jpg'); %讀取當前路徑下的圖片
I1=rgb2gray(I);
subplot(2,2,1);imshow(I1);title('灰度圖像');
grid on; %顯示網格線
axis on; %顯示座標系
[m,n]=size(I1); %測量圖像尺寸參數
GK=zeros(1,256); %預創建存放灰度出現概率的向量
for k=0:255
GK(k+1)=length(find(I1==k))/(m*n); %計算每級灰度出現的概率,將其存入GK中相應位置
end
subplot(2,2,2),bar(0:255,GK,'g') %繪製直方圖
title('灰度直方圖')
xlabel('灰度值')
ylabel('出現概率')
I2=im2bw(I,200/255);
subplot(2,2,3),imshow(I2);title('直方圖閾值處理分割圖像')
imwrite(I2,'05 直方圖閾值200的分割圖像.jpg');
grid on; %顯示網格線
axis on; %顯示座標系