将像素坐标存储在矩阵中

时间:2016-01-25 09:20:31

标签: matlab image-processing

我必须以(x,y)的形式将图像的像素坐标存储在矩阵中。 我正在尝试的代码是:

[x,y]=size(diff_im);
count=0;
for i=1:x
    for j=1:y
        if a(i,j)==0
            count=count+1;
            new_x(count)=j;
            new_y(count)=i;
        end
    end
end

目前我将x和y存储在单独的数组中。但我想知道如何将x,y值存储在单个矩阵中。

2 个答案:

答案 0 :(得分:1)

如果你需要的只是一个数组,其中每一行都是a中0的像素的x / y坐标,你可以使用find,然后是连接。

[new_y, new_x]=find(a==0); %// x/y are now correct for plotting onto an image
new_xy = [new_x,new_y];

答案 1 :(得分:0)

我不确定你想要什么。如果你想要的只是将新坐标系列存储在一个矩阵中,你可以做一些非常基本的事情,如:

[x,y]=size(diff_im);
count=0;
for i=1:x
    for j=1:y
        if a(i,j)==0 %what is this line??
            count=count+1;
            A(count,1)=j;
            A(count,2)=i;
        end
    end
end

然后可以通过A(i,:)

来检索每对新的坐标