如何在matlab中将图像的像素坐标x和y转换为图像?

如何在matlab中将图像的像素坐标x和y转换为图像?,matlab,image-processing,coordinates,pixel,Matlab,Image Processing,Coordinates,Pixel,我有一组向量x和y,其中包含图像的像素坐标。我需要用Matlab把这些值转换成图像。如何使用这些值?Αnd哪个函数最适合它?我使用的代码是: I = imread('D:\majorproject\image\characters\ee.jpg'); imshow(I) BW =im2bw(I); BW=imcomplement(BW); imshow(BW) dim = size(BW); col = round(dim(2)/2)-90; row = find(BW(:,col

我有一组向量x和y,其中包含图像的像素坐标。我需要用Matlab把这些值转换成图像。如何使用这些值?Αnd哪个函数最适合它?我使用的代码是:

I = imread('D:\majorproject\image\characters\ee.jpg');

imshow(I)

BW =im2bw(I);

BW=imcomplement(BW);

imshow(BW)

dim = size(BW);

col = round(dim(2)/2)-90;

row = find(BW(:,col), 1 );

boundary = bwtraceboundary(BW,[row, col],'N');

imshow(I)

hold on;

plot(boundary(:,2),boundary(:,1),'0','LineWidth',3);

BW_filled = imfill(BW,'holes');

boundaries = bwboundaries(BW_filled);

for k=1:10

   b = boundaries{k};

   plot(b(:,2),b(:,1),'g','LineWidth',3);
end
从中我得到了坐标值。
谢谢。

由于您没有提供像素的强度,我假设您希望创建一个二值图像,您可以轻松地完成以下操作-

 img=[];
 for k=1:length(x) //assuming the length of x and y are same
     img(x(k),y(k))=1;
 end
 imshow(img);

<>避免使用循环并考虑使用索引来代替输出图像。code>sub2ind将
(x,y)
坐标转换为线性索引,以便您可以使用单个命令索引所需的内容:

img = false(size(I));
img(sub2ind(size(I), y, x)) = true;
imshow(img);
此处
x
y
表示坐标,假设它们从1开始。如果
x
y
坐标,只需交换输入参数:

img = false(size(I));
img(sub2ind(size(I), x, y)) = true;
imshow(img);
另外,
I
是用
imread
读入的图像。由于您希望图像的尺寸与
I
相同,我们当然可以利用这一事实创建输出图像


或者,您可以使用直接索引到矩阵中,并将位置设置为1,然后转换回
完整的
逻辑矩阵:

img = sparse(y, x, true, size(I,1), size(I,2));
%img = sparse(x, y, true, size(I,1), size(I,2)); %// Use this if x is row and y is column
img = full(img);
imshow(img);

要形成图像,通常需要一组强度值,以及图像的尺寸(以像素为单位)(高度和宽度)。你说你只有“坐标”。。。这本身没有意义。你能详细说明一下吗?请说明阵列的大小,因为这可能会有所帮助,以及它应该显示的尺寸,如果你知道的话。嗨,我没有该尺寸的强度值。并且需要二进制格式的图像。谢谢你好,是的,我需要以二进制格式输出图像。我不明白为什么要给img函数分配1。二值图像由“0”和“1”组成。通过你的问题,我假设(x,y)中的坐标是像素为1的位置的坐标。因此,在(x,y)指定的所有坐标上,我将1分配给
img
。PS:
img
不是一个函数,它只是一个简单的矩阵。我同意这是正确的方法。为了提高效率,变量img应该预先分配为:img=false(H,W),其中H和W是最终图像的高度和宽度。另外,应该写入'true'值,而不是将1写入img的元素。但是赋值1将如何取回我的图像?分配1不显示任何内容。我包括两个for循环。在
imshow(img)
之前,do
img=img==1
。我想这就行了@USSR55942-我很高兴。如果你不再需要帮助,请考虑接受我们的答案。