Image Matlab-如何在图像上绘制缩放图形
我有一张上面有4个点的图像,我希望这些点精确地(或非常接近地)排列在一个图形中的X,Y坐标上,我想在这张图像的顶部绘制。图像当前为600x600像素,但可以调整 我的身材比例是从Image Matlab-如何在图像上绘制缩放图形,image,matlab,figure,Image,Matlab,Figure,我有一张上面有4个点的图像,我希望这些点精确地(或非常接近地)排列在一个图形中的X,Y坐标上,我想在这张图像的顶部绘制。图像当前为600x600像素,但可以调整 我的身材比例是从 AXIS([388020 388090 5776940 5777010]) 我如何对齐我的图像以匹配它?那么matlab在它上面绘图 这是我的matlab脚本,运行这个我可以看到matlab绘图,但下面没有图像。。。而matlab绘图似乎是颠倒的 %接收csv文件 %对于每一行,输出一个包含3个圆的图像和估计值 %点
AXIS([388020 388090 5776940 5777010])
我如何对齐我的图像以匹配它?那么matlab在它上面绘图
这是我的matlab脚本,运行这个我可以看到matlab绘图,但下面没有图像。。。而matlab绘图似乎是颠倒的
%接收csv文件
%对于每一行,输出一个包含3个圆的图像和估计值
%点
d=尺寸(数据调整)
长度=d(1)
对于i=[1:1]
%# read and display image
img = imread('hciLab_N.png');
figure('Visible', 'off'),imagesc([388020 388090], [5776940 5777010], img);
%# make sure the image doesn't disappear if we plot something else
hold on
%axis([388020 388090 5776940 5777010]);
%location estimation
yCoord = dataAdjusted(i,2)
xCoord = dataAdjusted(i,3)
%first circle y, x, radius
c1Y = dataAdjusted(i,4);
c1X = dataAdjusted(i,5);
c1R = dataAdjusted(i,6);
%second circle y, x, radius
c2Y = dataAdjusted(i,7);
c2X = dataAdjusted(i,8);
c2R = dataAdjusted(i,9);
%third circle y, x, radius
c3Y = dataAdjusted(i,10);
c3X = dataAdjusted(i,11);
c3R = dataAdjusted(i,12);
%draw location
%rectangle('Position',[xCoord-.5,yCoord-.5,2*.5,2*.5],'Curvature',[1,1], 'EdgeColor', 'r')
[locX, locY] = makeCircle(xCoord, yCoord, .5);
scatter(locX, locY, .2,'b')
%draw circles
%rectangle('Position',[c1X-c1R,c1Y-c1R,2*c1R,2*c1R],'Curvature',[1,1])
%rectangle('Position',[c2X-c2R,c2Y-c2R,2*c2R,2*c2R],'Curvature',[1,1])
%rectangle('Position',[c3X-c3R,c3Y-c3R,2*c3R,2*c3R],'Curvature',[1,1])
[c1X, c1y] = makeCircle(c1X, c1Y, c1R);
scatter(c1X, c1y, .2,'k')
[c2X, c2y] = makeCircle(c2X, c2Y, c2R);
scatter(c2X, c2y, .2,'k')
[c3X, c3y] = makeCircle(c3X, c3Y, c2R);
scatter(c3X, c3y, .2,'k')
% 80 5776978.148 388054.1747
%rectangle('Position',[388054.1747-1,5776978.148-1,2*1,2*1],'Curvature',[1,1], 'EdgeColor', 'g')
[r1X, r1y] = makeCircle(388054.1747, 5776978.148, 1);
scatter(r1X, r1y,.2,'g')
% 87 5776988.825 388043.9639
%rectangle('Position',[388043.9639-1,5776988.825-1,2*1,2*1],'Curvature',[1,1], 'EdgeColor', 'g')
[r2X, r2y] = makeCircle(388043.9639, 5776988.825, 1);
scatter(r2X, r2y,.2,'g')
% 88 5776970.712 388054.2578
%rectangle('Position',[388054.2578-1,5776970.712-1,2*1,2*1],'Curvature',[1,1], 'EdgeColor', 'g')
[r3X, r3y] = makeCircle(388054.2578,5776970.712, 1);
scatter(r3X, r3y,.2,'g')
% 89 5776975.889 388039.8496
%rectangle('Position',[388039.8496-1,5776975.889-1,2*1,2*1],'Curvature',[1,1], 'EdgeColor', 'g')
[r4X, r4y] = makeCircle(388039.8496,5776975.889, 1);
scatter(r4X, r4y,.2,'g')
%title(['Localization of duty cycle ' this_name ]);
saveas(gcf, ['TrilaterationNumber_Adjusted_WithRouters_Scaled' num2str(i)], 'png');
结束您可以使用x、y限制调用和,然后将x、y限制用作轴限制:
data = makeImage();
image([x0 x1],[y0 y1],data);
axis('xy');
或者,如果您只需要缩放数据:
data = makeData();
imagesc([x0 x1], [y0 y1], data);
axis('xy');
colorbar;
在绘制任何其他图形之前,您可能需要在放置图像后发出“全部保留”命令。您可以使用x、y限制调用和,然后将其用作轴限制:
data = makeImage();
image([x0 x1],[y0 y1],data);
axis('xy');
或者,如果您只需要缩放数据:
data = makeData();
imagesc([x0 x1], [y0 y1], data);
axis('xy');
colorbar;
在绘制任何其他内容之前,您可能需要在放置图像后发出“全部保留”命令。谢谢,我现在可以在图像上绘制了-我已将原始问题中的代码修改为当前的代码。但是我有一个问题,imagesc()函数正在反转我的y轴。。。图像显示正确,但我对scatter()的调用都使y轴减小,而x轴增大。您对如何使x轴和y轴都增大有何评论?谢谢,我现在可以在图像上画图了。我已将原始问题中的代码修改为当前的值。但是我有一个问题,imagesc()函数正在反转我的y轴。。。图像显示正确,但我对scatter()的调用都使y轴减小,而x轴增大。您对如何使x轴和y轴都增大有何评论?