可能重複:
detect if a pixel in RGB image belong to a line between two other pixels (MATLAB)取得一行的像素 - : - MATLAB
我想檢測圖像中的兩個像素,並讓他們 之間繪製線的所有像素。
我不想繪製線條,我只想在兩個像素 之間獲得虛擬線條中的所有像素位置[圖像中的(x,y)]。
MATLAB中的哪些函數可以幫助我解決這個問題,我該如何使用它? 。
謝謝!
可能重複:
detect if a pixel in RGB image belong to a line between two other pixels (MATLAB)取得一行的像素 - : - MATLAB
我想檢測圖像中的兩個像素,並讓他們 之間繪製線的所有像素。
我不想繪製線條,我只想在兩個像素 之間獲得虛擬線條中的所有像素位置[圖像中的(x,y)]。
MATLAB中的哪些函數可以幫助我解決這個問題,我該如何使用它? 。
謝謝!
您需要類似Bresenham's line algorithm的東西。我不知道Matlab的這個功能,但現在你知道你在找什麼,你的搜索可能會更有成效。在Matlab中實現並不困難。
解決簡單的y = m*x + b
線性方程(或其參數形式),然後檢查該線所經過的像素是否足夠。這真的取決於你想要你的線路有多精確。當然,Bresenham的線條算法會給出更準確的結果(更細,更漂亮的線條)。
y = m * x + b .......... 我不認爲它可以做我想要的東西,因爲許多相同比例的線具有相同的斜率,我處理像素有一個區域(而不是絕對點),可能有些像素不能完全達到線方程 ........我會嘗試使用Bresenham的線算法...感謝所有 – user504363 2010-12-16 13:51:30
如果我正確理解你的問題,你在這裏有兩個問題。 (1)如何檢測圖像中的兩個像素 ---這很大程度上取決於您在問題中未提及的其他內容,它們的屬性(如它們的顏色,圖像中的位置)(它們是一起或分開),這兩個像素相對於整個圖像大小的相對比例(以設計一種有效的檢測方法)。
(2)如何在它們之間沒有連線顯示像素 ---我想你可以給所有像素位置0.5個位移,並使用'pcolor'來顯示圖像。然後,您可以鍵入如下:
p = pcolor(X,Y,C);
set(p,'EdgeColor','none'); %這將刪除像素之間的線條。
祝你好運。
還有幾個相關的問題:[獲取圖像中的矢量的所有像素座標](http://stackoverflow.com/questions/1429210/get-all-pixel-coordinates-of-a-vector-inside -a-image),[MATLAB:在黑白圖像上繪製一條線](http://stackoverflow.com/questions/2464637/matlab-drawing-a-line-over-a-black-and-white-圖像) – gnovice 2010-12-16 17:30:55