gpt4 book ai didi

image - matlab 在图像上绘制数据图

转载 作者:太空宇宙 更新时间:2023-11-03 20:08:35 25 4
gpt4 key购买 nike

我想做的是绘制图形图像(来自 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')

问题:已知图像中图形的像素坐标,我如何确定图中轴的正确位置,(我的代码未能说明图形框的实际大小,灰色边框围绕图像)。我必须对多个图像和数据集执行此操作,因此我想要一种自动化方法,假设我提前找到图像中图形的坐标。

感谢您的回复! (第一次发帖,请多多包涵)

最佳答案

您可以通过强制图像与绘图在同一轴上来解决您的问题。试试这个:

I = imread('C:\MATLAB\R2014a\help\images\ref\ftrans2_fig.png');
I = squeeze(uint8(mean(I,3)));
[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
image(I, 'Parent', h1);
plot(h1, x_data, y_data, '-rx')

这应该确保绘图轴和图像轴具有相同的原点,因为它们将是同一个。您可能需要调整尺码代码。如果这不适合您,请告诉我。

祝你好运!

关于image - matlab 在图像上绘制数据图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com