2015-04-05 69 views
1

我想在Matlab中使用Mean-Shift算法實現跟蹤程序。這個想法是,給定一個視頻的第一幀,用戶可以點擊他想要的任何對象的頂部,程序將通過視頻序列全部跟蹤它。我已經實現並使用了跟蹤部分,但我遇到了問題,讓用戶有可能點擊圖像的頂部來選擇跟蹤算法的初始像素。通過鼠標在Matlab中選擇圖像的輸入像素

我曾想過input函數,但我不知道如何使它工作。如何顯示圖像並單擊像素的頂部並獲取其座標[x,y]來初始化程序?

回答

1

你可以使用ginput(圖形輸入來自鼠標或光標)

閱讀任何圖像,並使用imreadimshow

h = imread('hestain.png');   % any input image 
imshow(h); 

顯示他們使用ginput,其中輸入參數對應於獲取的座標記錄的用戶點擊次數。

[x,y] = ginput(1);     % getting coordinates from user 

要獲得的像素值,我們需要通過座標圖像的指標。爲此,默認情況下,ginput的輸出參數double必須轉換爲unsigned integers

另外,xy默認表示水平和垂直。但matlab語法需要第一維爲(水平線的數量計算垂直)。因此y值作爲第一維傳遞。作爲第二維的值同樣爲x

pixelValue = h(uint8(y),uint8(x)); % using coordinates as indices 
+0

非常感謝你,它完美的作品! – Hec46 2015-04-05 09:32:39

相關問題