利用 Matlab 提取图图片中的数据 从事科研或者工程的人员在文档撰写过程中,常需要将文献中的曲线与自己的结果对比,为获取原始数据,一种常用的办法是手动描点,即将原始曲线放大然后打印出来,选取一定数量的点,读出其横纵坐标,然后重绘。对于较为平坦的曲线,这种方法当然可行,但当曲线数量增加,曲线变化复杂,这种方法工作量可想而知。前段时间由于原始数据丢失,仅剩几十幅图片,本人尝试过手动描点,经历几个小时奋战,实在无法继续,索性转向 matlab,借助其强大的数据处理能力,编写了两个 GUI 的小软件image2data、data_poly 提取数据,如今大功告成,遂于大家分享。 2010-12-26 yc97463240@126.com 本文分三部分:1、数据提取实验演示;2、软件编写要点;3、附录。仅关心如何使用的朋友请看第一部分,有兴趣深入钻研的兄弟看看第二部分,软件以功能实现为主,界面和操作其次。 1 、数据提取演示实验 原始数据来源:安华高科技数据手册(HSMP-38XX and HSMP-48XX Series),如图 1 所示。 目标曲线:提取 1MHz 频率下的 PIN 二极管电容与反偏电压之间关系曲线。 图 1 包含目标曲线的原始图像 实验步骤: Step1:制作jpg 图片。 从 pdf 中 copy 上述包含目标曲线和坐标的曲线,paste 到 ppt 的空白页面当中,然后调整到合适的大小 sav e as figu re1.jpg 到我的文档。 图2 利用 ppt 制作jpg 格式图像 Step2:导入图片,填写相关参数。 运行 image2data 软件(程序采用 matlabR2008b 编写),按照界面给出的顺序填写横纵坐标的最大最小值,然后导入图片,如下图所示。 图3 导入图像并输入相关参数 Step3:坐标轴标定。 按下面板上的zoom on 按钮进行图像放大,zoom out 按钮恢复初始显示大小,pan on 按钮采用鼠标拖动图像,pan on/off 按钮退出放大或者拖动的鼠标操作模式,空格键表示取点操作,delete 键表示删除上一次取点操作,状态栏的num 显示当前鼠标取点总数目(注意,初始点数为2,然后存处4 个坐标轴标定坐标,剩余用来存储曲线坐标)。值得指出的是,每次放大或者拖动操作完毕后,必须按下pan on/off 按钮,才能用空格键进行取点操作。 图4 坐标轴定标 Step4:曲线描点。 按照上述操作反复进行图像放大、拖动、取点,状态栏的cpx 和 cpy 用于显示当前坐标(注意,这个坐标图像坐标,y 轴方向向下,后面坐标变换需要考虑),下图给出了描点...