在拥有所有黑色像素后生成矩阵图像';用MatLab实现s坐标
我有一个图像,转换成二进制,我得到了所有黑色像素的坐标。在拥有所有黑色像素后生成矩阵图像';用MatLab实现s坐标,matlab,image-processing,coordinates,Matlab,Image Processing,Coordinates,我有一个图像,转换成二进制,我得到了所有黑色像素的坐标。 “矩阵”包含按列排列的x和y坐标。 现在我需要做一个模拟,看看我的程序是否有效。 我必须用我的结果生成一个矩阵图像 im=imread('square.jpg'); imshow(im); c=im2bw(im); figure; imshow(c); dim = size(c) % size of the image x = []; y = []; xdif = []; newx = []; matrix = []; for i
“矩阵”包含按列排列的x和y坐标。 现在我需要做一个模拟,看看我的程序是否有效。 我必须用我的结果生成一个矩阵图像
im=imread('square.jpg');
imshow(im); c=im2bw(im); figure; imshow(c);
dim = size(c) % size of the image
x = [];
y = [];
xdif = [];
newx = [];
matrix = [];
for i = 1:dim(1)
for j = 1:dim(2)
if c(i,j)==0;
x = [x i];
y = [y j];
end
end
end
% show black pixel's coordinates
p = [x;y];
%number of pixels
nr = length(x)
dimp = size(p);
xval = p(1,:);
yval = p(2,:);
j=1;
i=1;
for z = 1:dimp(2)-1
xdif = xval(z+1)-xval(z);
ff=find(xdif > 0);
if ff == 1
i = 1;
else
i=i+1;
end
newx(i,j)= xval(z);
newy(i,j)= yval(z);
if ff == 1
j= j+1;
end
end
xsize = size(newx);
ysize = size(newy);
matrix_size = xsize(2)+ysize(2)
xinc = 1;
yinc = 1;
x=1;
for ct = 1:1:matrix_size/2
x;
matrix(:,x) = newx(:,xinc);
matrix(:,x+1) = newy(:,yinc);
matrix;
xinc = xinc+1;
yinc = yinc+1;
x=x+3;
end
matrix
这是我的程序,现在我需要做一个模拟,用我的坐标生成一个图像。
我该怎么做?
thank's您希望生成什么样的图像?你期望什么样的产出?二进制、灰度、照片、变换?如果没有更多的细节,你很难理解你想要实现什么。请将您的图像
square.jpg
“矩阵”包含按列排列的x和y坐标”。。。你能详细说明一下吗?进一步解释一下矩阵的确切形状,我举个例子:如果你打开“矩阵”,你会看到第一列是x坐标,第二列是y坐标,第三列只是0,依此类推。。。我必须这样做,因为我和一个测量机器人一起工作,我的项目是用这个机器人绘画,所以坐标很好。但是现在,我的老板让我做一个模拟,看看它是如何工作的。。。“我想它应该会产生相同的图像,”他说,类似于由圆圈构成的矩阵图像。我将建议散射(x,y)
,看看这是否能让我们有所收获。