0

我有 2 个相同尺寸的不同图像。每个图像中有 1 个兴趣点。我想通过用一条线将这 2 个点连接到一个图中来连接 2 个图像。我怎样才能做到这一点?这是图像的粗略想法:http: //i.imgbox.com/abhqL3XT.png

4

2 回答 2

1

让我们创建两个图像

>> [X,Y] = meshgrid(-200:200, -200:200);
>> im1 = exp(-sqrt(X.^2+Y.^2)/100);
>> im2 = exp(-sqrt(X.^2+Y.^2)/200);

imagesc您可以使用以下命令并排显示它们:

>> imagesc([im1 im2]);

在此处输入图像描述

现在假设您要连接图像中的两个点,坐标为 (100, 300) 和 (300, 50)。因为图片是并排的,所以需要将第一张图片的宽度加上第二张图片的x坐标:

>> width = size(im1, 2);
>> x1 = 100; y1 = 300;
>> x2 = 300 + width; y2 = 50;

现在您可以hold在图像上放置一个(这样您就可以在其上绘制)并绘制连接两点的线:

>> hold on;
>> plot([x1 x2], [y1 y2], 'r', 'LineWidth', 2)

在此处输入图像描述

于 2013-07-19T08:43:26.003 回答
1

如果我理解正确,这应该做你想要的:

% example random images (assumed gray-scale)
Img1 = rand(256)*.1;
Img2 = rand(256)*.3;

% widh of the images
imgWidth = size(Img1, 2);

%joined image
Img12 = [Img1, Img2];


% example points
[point1x, point1y] = deal(201, 100);
% point twos horizontal coordinate
% is shifted by the image width
[point2x, point2y] = deal(imgWidth + 101, 40);


% show images and plot the line
figure;
imshow(Img12);
hold on;
plot([point1x, point2x],[point1y, point2y], '+-b');
于 2013-07-19T08:46:05.580 回答