在MATLAB中加入不同图像中的2个不同点

时间:2013-07-19 07:48:01

标签: matlab

我有两个相同尺寸的不同图像。每张图片中有1个兴趣点。我希望通过在一个带有线的图中加入这两个点来加入这两个图像。我怎样才能做到这一点? 这是图像的粗略概念:http://i.imgbox.com/abhqL3XT.png

2 个答案:

答案 0 :(得分: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]);

enter image description here

现在假设您要连接图像中的两个点,坐标为(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)

enter image description here

答案 1 :(得分: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');