我試圖在該圖像中分割天空和水部分。如何分割圖片中的天空和水部分
Link of the Picture 我嘗試了很多方法,如k均值,閾值,多閾值等BUT不幸的是沒有工作得很好。 這裏是我的代碼(Matlab的)一個例子:
img=imread('1.jpg');
im_gray=rgb2gray(img);
b=imadjust(im_gray);
imshow(b);
bw_remove_small=imopen(b,strel('square',5));
imshow(bw_remove_small); %after 1st iteration
m3=medfilt2(bw_remove_small,[18,16]);
imshow(m3);
m3=medfilt2(bw_remove_small,20,20]);
m3=medfilt2(bw_remove_small,[20,20]);
imshow(m3);
I1=m3;
I2=rgb2gray(I1);
I=double(I2);
figure
subplot(1,3,1)
imshow(I1)
subplot(1,3,2)
imshow(I2)
g=kmeans(I(:),4);
J = reshape(g,size(I));
subplot(1,3,3)
imshow(J,[]);
任何一個可以幫我請
那麼,它會更容易手動做到這一點。正確標記您的問題可能會有幫助,但是,這是什麼語言? –
您可能會考慮在圖像的邊緣圖上使用霍夫變換(可用於MATLAB)來查找地平線。然後確定圖片的哪一半包含天空或水不是太困難。 – Falimond
我會嘗試使用顏色信息。你正在用'rgb2gray'丟棄它。 –