利用Matlab提取图片中的数据
从事科研或者工程的人员在文档撰写过程中,常需要将文献中的曲线与自己的结果对比,为获取原始数据,一种常用的办法是手动描点,即将原始曲线放大然后打印出来,选取一定数量的点,读出其横纵坐标,然后重绘。对于较为平坦的曲线,这种方法当然可行,但当曲线数量增加,曲线变化复杂,这种方法工作量可想而知。前段时间由于原始数据丢失,仅剩几十幅图片,本人尝试过手动描点,经历几个小时奋战,实在无法继续,索性转向matlab,借助其强大的数据处理能力,编写了两个GUI的小软件image2data、data_poly提取数据,如今大功告成,遂于大家分享。坐标轴标定按下面板上的按钮进行图像放大,按钮恢复初始显示大小,钮采用鼠标拖动图像按钮退出放大或者拖动的鼠标操作模式,空格键表示取点操作,键表示删除上一次取点操作,状态栏的显示当前鼠标取点总数目(注意,初始点数为,然后存处个坐标轴标定坐标,剩余用来存储曲线坐标)。值得指山的是,每次放大或者拖动桨作完毕后,必须按下按钮,才能用空格键进行取点操作。匹回图00.400.351 MHz足0.300.2530 MHz0.20frequency>100 MHz型30681012141618REVERSE VOLTAGE (VFigure 1. RF Capacitance vs ReverseBias. HSMP-3810 Series图坐标轴定标曲线描点按照上述操作反复进行图像放大、拖动、取点,状态栏的和用于显示当前坐标(注紊,这个坐标图像坐标,轴方向向下,后面坐标变换需要考虑),下图给出了描点完毕后的曲线,可以看出取点基本代表了曲线的全部信息。0.45E0400351 MHz0.3002530 MHZ.frequency> 100 MHzpr/。no0.1568101214161820REVERSE VOLTAGE (V)Figure 1. RF Capacitance vs Reversem[1Bias. hsMP-3810 Series图曲线描点数据处理及存储。按下按钮,描点后的曲线会显示在图像当中,按下按钮,程序自动进行坐标转换,得到所有描点的真实坐标,按卜按钮,使会生成一个文木,数据记录其和按钮下都有文本输入框,本别代表输入文本和存储文本的名称,不带后缀)。045"z55sd0.351M3002530 MHafrequency>100 MHz0.1502468101214161820REVERSE VOLTAGE (VFigure l. RF Capacitance vs Reversese4Bias. HsMP-3810 Series图拟合曲线效果记事本巴回囟文件〕编辑巴)格式迫!查看y1帮助)6,6ag15-92h432562gP-6811.18153B60-91488g2c-8912.15288c-E914.81Q68c-691.93177一Bg1571882c-6E-8Ube-出14.168y!:e-Uk1面=363211g-9g1py9py6-6817.99日969e-B914。394g55e-919.6696599e-B913.941218e-0911.119913-Bg3.E786699g-6511.36361243.779192-6811,5邵3777e十3.71813e-6117699899e+053.6164171e-6911_97了5775巴十B035小B725-6612-3111uB!g318286-B12.了7阳7P??5"24"9236P-R13.12096E5e+gs2502的9e-6613.526859e-E日31756187e-651391427562B9.1158646e-6814_287193.806E87ge-651h。47785F7eB98,38E17e-61↓816F877e+2.9877229e-6615.342g3B6e-Eg2.92049e-6615,6428g1eB9g2.B86ge6168697eBgg28616e-816652032cE9g78786ggc-691图数据记录文本数据后处理由于以上数据是于动选取的,故分布不够均匀,下面我们通过数据拟合,然后重新采样得到等间距的数据(可能大家会问,为什么两个功能不做在起呢?数据拟合是个比较味烦的事情,本组曲线采用多项式拟合即可,可对于更多的曲线采用指数函数、正弦函数等才能得到比较好的结果中的工具箱就包含了很多的拟合函数,为避免重复工作,仅绵写了这个小软件用来数据拟合再采样,其他的拟合就靠了)。运行代表多项式拟合的阶数(一般就够用了),代表重新釆样的数据个数,其他几个就不用解释了,默认输入文本为输出文本为,数据拟合结果如下图所示Xmax 23 ymax045fing图数据拟合再采样结果至此,数据提取过程完毕,可能操作上有些不便(毕竞只是小T具而已),但比起于动描点的速度和精度,可谓小巫见大巫。软件编写要点这两个小软件从构思到完成大概用了两大,功能的完成绝大部分归功」丰富的函数库和方便的,其中用到的主要函数上要有列衣如下,更详的介绍请参阅文档。表主要函数列表除了上述函数的掌握之外,还需要对的数据结构和函数响应有一定的理解,在此就不多讲了(多看相关例程就明白了)。编写程序之前,首先心中要有一个框架,做些什么,怎么做,顺序如何等。本软件的结构如下图所示:导入图像创建数据结构坐枟轴定标曲线描点坐标变換数据后处彐:拟合、重新采样、存储图程序沇程示意导入图像程序段:创建数据结构程序段坐标轴定标及坐标变换:数据后处理代码段附录3.1描点数据列表数据拟合结果3.3、重新采样数据列表
- 2020-12-04下载
- 积分:1