matlab读取论文图中数据

22 篇文章 1 订阅

复现论文有两大障碍,一是具体步骤,二是实验数据。本文利用matlab获取图片中数据。

原理如下图:

代码参考别人的,如下:

clear,clc,close all
%% 图片与曲线间的定标
im=imread('dongya.jpg');%读入图片(替换成需要提取曲线的图片)
im=rgb2gray(im);%灰度变化
thresh = graythresh(im);%二值化阈值
im=im2bw(im,thresh);%二值化
set(0,'defaultfigurecolor','w')
imshow(im)%显示图片
[y,x]=find(im==0);%找出图形中的“黑点”的坐标。该坐标是一维数据。
y=max(y)-y;%将屏幕坐标转换为右手系笛卡尔坐标
y=fliplr(y);%fliplr()——左右翻转数组
plot(x,y,'r.','Markersize', 2);
disp('请在Figrure中先后点击实际坐标框的两个顶点(左上点和右下点),即A、B两点. ');
[Xx,Yy]=ginput(2);%Xx,Yy——指实际坐标框的两个顶点
min_x=input('最小的x值');%输入x轴最小值
max_x=input('最大的x值');%输入x轴最大值
min_y=input('最小的y值');%输入y轴最小值
max_y=input('最大的y值');%输入y轴最大值
x=(x-Xx(1))*(max_x-min_x)/(Xx(2)-Xx(1))+min_x;
y=(y-Yy(1))*(min_y-max_y)/(Yy(2)-Yy(1))+max_y;
plot(x,y,'r.','Markersize', 2);
axis([min_x,max_x,min_y,max_y])%根据输入设置坐标范围
title('由原图片得到的未处理散点图')

建议直接用游标在图上读取,因为论文中的图片中常常有辅助线、文字或是有多条曲线等,网上的程序读的方法得到的结果受到的影响较大,拟合出的结果不可信。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值