2010-12-15 866 views
-2

我想獲得圖像的四個角點或座標。我怎樣才能讓他們進入MatLab?如何在matlab中獲取圖像中角點的座標

+0

這是什麼樣的圖像?請張貼示例或詳細說明。 – Jacob 2010-12-15 16:35:58

+0

其.jpg圖像。 – chee 2010-12-15 17:12:11

+0

參考這個http://stackoverflow.com/questions/2608428/finding-edge-and-corner-values-of-an-image-in-matlab,這裏它清楚地解釋 – 2010-12-15 16:38:07

回答

2

如果你指的是圖像角的座標,當你使用任何IMSHOWIMAGE/IMAGESC,那麼這裏就是你如何找到它們繪製在軸上的圖像:

  • 如果情節不指定範圍內的圖像:

    image(img); 
    imshow(img); 
    

    然後img繪製在與值1:size(img,2)水平和爲中心的像素的座標軸垂直。由於這些值代表像素中心,並且像素大小爲1,因此圖像在每個方向上超出上述範圍延伸半個像素。因此圖像的範圍是:

    xmin = 0.5; 
    xmax = size(img,2)+0.5; 
    ymin = 0.5; 
    ymax = size(img,1)+0.5; 
    

    從中你可以得到你的頂點座標[xmin ymin][xmin ymax][xmax ymin][xmax ymax]

  • 如果指定繪圖範圍,如:

    image([x1 x2],[y1 y2],img); 
    

    你可能會認爲你指定這些限制是邊緣繪製圖像的,但它們實際上是像素的程度中心,所以再次繪製的圖像的真實範圍在每個方向上進一步半個像素。在每個方向上的像素大小可以計算如下:

    dx = abs(x2-x1)/size(img,2); 
    dy = abs(y2-y1)/size(img,1); 
    

    ,因此圖像的範圍是:

    xmin = min(x1,x2)-0.5*dx; 
    xmax = max(x1,x2)+0.5*dx; 
    ymin = min(y1,y2)-0.5*dy; 
    ymax = max(y1,y2)+0.5*dy; 
    

    從中可以再次輕鬆搞定你的角座標。

相關問題