我正在使用這個腳本來提取一個物體旋轉后的X、Y坐標和中心點。輪廓坐標被保存在一個表格中,但是當我在JMP中對它們進行散點繪制時,我得到了另一個旋轉(如圖所示)。此外,我沒有得到中心點。有什么想法嗎,我該如何解決這個問題?
代碼:
clc;
清除。
關閉所有。
url='http://clipart-library.com/newimages/fish-clip-art-32.png'。
I = rgb2gray(imread(url))。
imshow(I);
rotAngle = 55;
I = imrotate(I, rotAngle,'nearest','loose')。
imshow(I)。
[B,L] = bwboundaries(I,'noholes')。
k=1;
stat = regionprops(I,'Centroid')。
b = B{k};
xBoundary = b(:,2)。
yBoundary = b(:,1)。
centroidObject = stat(k).Centroid;
xCentre = centroidObject(:,2)
yCentre = centroidObject(:,1)
dataTable = table(xBoundary,yBoundary)。
writeetable(dataTable,'E:/dataTable.csv')
hold on;
plot(yCentre,xCentre,'Marker'/span>,'x'/span>,'Color'/span>,'r'/span>)。
plot(xBoundary,yBoundary,'Color','g') 。
uj5u.com熱心網友回復:
你的代碼中有一個錯字:
你的代碼中有一個錯字。
stat = regionprops(I,'Centroid') 。
輸入應該是L,即標記的影像,而不是I。如果你解決了這個問題,你會看到stat只有1個輸出,而不是255,并且stat(1)對于你的物件將有有意義的值,而不是NaN,因為I沒有任何值為1的像素。 中心點是NaN導致沒有標記被繪制出來。
接下來,你的繪圖是顛倒的,因為默認情況下,影像軸的y是向下增加的,而正常的繪圖軸的y是向上增加的。 用
set(gca,'YDir'/span>,'reverse'/span>)
在創建繪圖之后,你可以將繪圖的Y軸反轉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309699.html
標籤:

