我想用Matlab解釋我的問題。我的目標是在從照片坦克獲得自由液麪而要做到這一點,我已經使用這個算法:Matlab - 從邊緣創建x,y曲線
A = 'C:\foto\img3.bmp';
B = imread(A, 'bmp');
figure(1), imshow(B);
C = rgb2gray(B);
level = graythresh(C);
bw = im2bw(C,level);
bw = bwareaopen(bw, 50);
figure, imshow(bw);
BW1 = edge(bw,'canny');
figure(2), imshow(BW1);
imwrite(BW1, 'C:\foto\im1_edge.bmp', 'bmp')
現在我有表面邊緣爲白色,與黑色的背景。 接下來我也只能檢測白色像素的位置:
I= imread('C:\foto\img3_edge.bmp');
imshow(I);
[r c] =size(I);
for j=1:c
for i=1:r
if(I(i,j)==1)
[i j]
end
end
end
在這一點上,我怎麼可以報告(含宏,自動可能)每對夫婦座標的笛卡爾(x,y)平面?我的目標是從邊緣獲得重建的類型「y = f(x)」的函數。 我和另一個邊緣嘗試,並用油漆修改,刪除所有無用像素的圖像,例子是這樣的一個:
http://i59.tinypic.com/20jh1g2.jpg
與代碼:
I = im2bw(I);
它返回我的錯誤「警告:輸入圖像已經是二進制。」接下來使用的代碼:
[r c] = find(I), output = [r c];
plot(r,c,'.')
我得到這一個:
http://i59.tinypic.com/2iqmqvl.jpg
此外,當我嘗試在cftool插入R作爲XDATA和c如YDATA,我得到了同樣的問題,並且當我使用「Interpolant」裝配,它會返回一個錯誤.....爲什麼?
請幫助我,謝謝大家! :-) PS:對不起,太長的帖子:)
使用'polynomial'這種類型的曲線 – Hoki 2014-09-20 10:16:56
您可以簡化您的白點檢測裝修:取而代之的是兩個for循環使用:* [行col] = find(I == 1)* – zinjaai 2014-09-20 12:23:02