在MATLAB中检测图像的特定x和y坐标的颜色

时间:2017-03-30 12:47:40

标签: matlab image-processing image-segmentation

我正在尝试获取图像上特定坐标的颜色。例如:X是尺寸宽度为300且高度为300的图像。我想知道x:10和y:10坐标的颜色。我无法编写任何代码,因为我不知道这在matlab中是否可行?

谢谢。

2 个答案:

答案 0 :(得分:3)

当然你可以在MATLAB上做这样的操作:

color
然后

Y将是一个行向量,包含该像素的RGB值(从0到255)。当然,{{1}}图像轴的方向与笛卡尔轴相反。

答案 1 :(得分:1)

如果你想通过在Matlab中手动选择一个像素来获得颜色,你可以这样做:

A = imread('Lena.png');
imshow(A);
[x,y] = ginput(1); % Select a point on the plot
x = fix(x); y = fix(y); % Fix to nearest pixel
hold on;
plot(x,y,'bo'); % Plot the point
color = squeeze(A(x,y,:))'; % Get the color

然后甚至使用that之类的东西将其转换为它的名字。在这个特定的例子中,代码可能是这样的:

A = imread('Lena.png');
h = figure;
imshow(A);
while true
    [x,y,key] = ginput(1);
    x = fix(x); y = fix(y);
    hold on;
    plot(x,y,'bo');
    color = squeeze(A(x,y,:))';
    name = rgb2name(double(color)/256);
    disp(name);
    if key == 27; break; end; % key == escape
end
close(h);

玩得开心! ;)