Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在矩阵中存储像素坐标_Matlab_Image Processing - Fatal编程技术网

Matlab 在矩阵中存储像素坐标

Matlab 在矩阵中存储像素坐标,matlab,image-processing,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)的形式在矩阵中存储图像像素的坐标。 我正在尝试的代码是:

[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值

如果您只需要一个数组,其中每一行都是
a
中0像素的x/y坐标,则可以使用
find
,后跟一个catenation

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

我不太确定你想要什么。如果您只想在一个矩阵中存储一对新坐标,您可以执行一些非常基本的操作,如:

[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,:)

检索到。你的问题很不清楚
x
y
是标量。你的意思是想把
new\u x
new\u y
作为一个矩阵吗?你能准确地描述一下你想做什么以及你想要什么样的输出吗?这里的两个矩阵有大小
x*y
,你希望矩阵的大小是多少?通过
new\ux,new\uy]=meshgrid(1:x,1:y),您现在所做的事情可以缩短很多;新的_x(a~=0)=0;新y(a~=0)=0new_xy(count,:)=[ji]
将成对的值存储在数组的行中,或
新建_xy(:,count)=[j;i]
将它们存储在列中。