2016-01-21 60 views
0

如果在該像素位置的值是已知的,matlab中是否可以獲取像素的位置(行和列)?獲取給定像素位置的值

在此先感謝。

問候

+0

不客氣:d – Chris

+0

@Roma,U可以在這裏發佈答案,或者給一個鏈接到答案 – sma

回答

2

您可以使用find拿到像素

[y x] = find(grayImg == val, 1); %// find one pixel that has intensity val 

對於RGB圖像的座標,您需要三個值

[y x] = find(rgbImg(:,:,1) == r_val & rgbImg(:,:,2) == g_val & rgbImg(:,:,3) == b_val, 1) 

在單精度情況圖像,人們可能會發現比較==太嚴格(請參閱,例如this thread)。因此,寬鬆的版可應用於:

thresh = 1e-5; 
[row col] = find(abs(grayImg - val) < thresh, 1); 

valthresh公差範圍內找到一個像素。

你也可以嘗試並找到最接近的值的像素val

[~, lidx] = min(abs(grayImg(:) - val)); 
[row col] = ind2sub(size(grayImg), lidx); 
+0

是顯示空白。 – Roma

+0

@Roma你確定在你的圖像中有一個像素值?確保您的圖像值與您正在搜索的值具有相同的比例;例如,如果您的圖片的類型爲'uint8',則值應該在範圍'0..255' – Shai

+0

的值爲浮點數,如0.36606 – Roma