是否可以在matlab中获取像素位置(行和列),如果该像素位置的值已知?
提前致谢。
此致
答案 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}}