获得像素位置的价值

时间:2016-01-21 14:08:13

标签: image matlab image-processing matrix

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

提前致谢。

此致

1 个答案:

答案 0 :(得分: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 );

要查找thresh val val容差范围内的像素。

您也可以尝试找到最接近[~, lidx] = min( abs( grayImg(:) - val ) ); [row col] = ind2sub( size(grayImg), lidx ); 的值的像素:

{{1}}