我有两个相同尺寸的不同图像。每张图片中有1个兴趣点。我希望通过在一个带有线的图中加入这两个点来加入这两个图像。我怎样才能做到这一点? 这是图像的粗略概念:http://i.imgbox.com/abhqL3XT.png
答案 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]);
现在假设您要连接图像中的两个点,坐标为(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)
答案 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');