【发布时间】:2014-09-06 07:58:47
【问题描述】:
我想做的是绘制图形的图像(例如 pdf 文件或扫描图像)。接下来,我想在图像中的图形上叠加一个轴,然后在该轴上(在图像上)绘制数据。
使用 imtool,我知道图像中图形的坐标(在这种情况下,x 范围 = ~52-355 像素,y 范围 = 23(顶部)- 262(底部)像素)。
这是我尝试过的:
I = imread('C:\MATLAB\R2014a\help\images\ref\ftrans2_fig.png');
I = squeeze(uint8(mean(I,3)));
figure, imshow(I)
[rows, cols] = size(I);
x_data = (-1 : .01 : +1)';
y_data = 1 - x_data.^2;
h1 = axes('Position',([52, 23, 355-52, 262-23] ./ [cols, rows, cols, rows] ));
set(h1, 'Color', 'none')
hold on
plot(x_data, y_data, '-rx')
问题:知道图形在图像中的像素坐标,如何确定轴在图中的正确位置,(我的代码没有考虑到图形框的实际大小,周围的灰色边框图片)。我必须对几个图像和数据集执行此操作,所以我想要一种自动化方法,假设我提前找到了图像中图形的坐标。
感谢您的回复! (第一次发帖,请多多关照)
【问题讨论】: