利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)_第1页
利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)_第2页
利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)_第3页
利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)_第4页
利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用Matlab提取图片中曲线数据前一段时间看到一篇文章“利用Matlab提取图图片中的数据”,觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水平放置的情况,而实际扫描图片时,将图片完全放置水平难度较大.同时作者也没有考虑对数坐标的情况,且程序GUI界面不太人性化,操作有点不习惯。因此借着作者良好意愿,对其程序进行了改进2011-6-9 HYPERLINK mailto:shanyunhQQ.comshanyunhQQ.com考虑一张非水平无变形的曲线图,现将其曲线数据取出来,步骤如下:x9(树)在坐标轴上取三点以定位坐标系。如图中红色点所示。在曲线上选取若干个点,

2、如图中蓝色点所示。设定坐标轴选取点x和y的实际值。选取坐标系类型。变换。保存数据。数据后处理。在变换过程中程序首先计算(xi,yi)到(xl,yl)和(x2,y2)所组成的y轴的距离9x,同样的方法计算y,当然x和y是图片的像素值。接下来计算每个像素点所对应实际坐标值。对于线性x轴,比例系数为(Xmax-Xmin)/(sqrt(x1-xO)A2)+(y1-yOF2),同样对于线性y轴,比例系数(Ymax-Ymin)/(sqrt(xO-x2)A2)+(yO-y2)A2)。这样即可求出每个点的实际坐标值Xi=Ax*(Xmax-Xmin)/(sqrt(x1-xO)A2)+(y1-yO)A2)+Xmi

3、nYi=Ay*(Ymax-Ymin)/(sqrt(xO-x2)A2)+(yO-y2)A2)+Ymin对数坐标的变换关系类似Xi=1OA(log1O(Xmin)+Ax*(log1O(Xmax)-log1O(Xmin)/(sqrt(x1-xO)A2)+(y1-yO)A2)Yi=1OA(log1O(Ymin)+Ay*(log1O(Ymax)-log1O(Ymin)/(sqrt(xO-x2)A2)+(yO-y2)A2)具体操作说明1.导入图片。xmin2.我的文档TrnageZdata3.定位曲线。JJimageZdataCE山JMvludcTHOL1.点击坐标轴按钮,进入坐标系定位檯式期间可以通过缩

4、放和平移按钮辅助定位2.在图上标出三牛坐标点标注顺序任意,但必须是能反映坐标丟的点EAMyDocum5ntsM.CE山uMvtJdu15L能辅助定位燼卿1蠶Z在中标出曲线数据点EAMyDocumentsM.xmin381.5769129.153S匚REVERSEV0L7AGE(V)Fijure1.RFCapacitancevs.ReverseBias,1ISMPS810Series.注:按del键可删除上一数据点4.设置变换参数。CEJC.txtd已ta.txtddd.txtndata.txtp3al.txtreadme.txtxxx.txtmas.JlbAU-tiiOseries.噹WF钮文

5、件名(S):卩保存类型:文本文件(*.txt)5.变换。单击变换按钮后,弹出变换后的结果。OCT巨卅)1.设置坐标轴范围即坐标点所对应的实际摄大值和摄小值3.点击变换按钮进行曲07100CE0&p(end,1)0&p(end,2)0&p(end,1)0&p(end,2)handles.yimage&handles.axesCount0)delete(handles.datah(handles.dataCount,1);handles.dataCount=handles.dataCount-1;set(handles.countEdit,String,num2str(handles.dataCo

6、unt);guidata(hObject,handles);endcase(pickaxes)if(handles.axesCount0)delete(handles.axesh(handles.axesCount,1);handles.axesCount=handles.axesCount-1;set(handles.countEdit,String,num2str(handles.axesCount);guidata(hObject,handles);endendend坐标轴定标及坐标变换:%提取坐标信息xmin=str2double(get(handles.xminEdit,string

7、);xmax=str2double(get(handles.xmaxEdit,string);ymin=str2double(get(handles.yminEdit,string);ymax=str2double(get(handles.ymaxEdit,string);xType=get(handles.xTypePM,value);yType=get(handles.yTypePM,value);%数据分类整理tmpaxes=handles.axesdata;ct=6;c,r=max(tmpaxes(:,1);axesxP=tmpaxes(r,:);ct=ct-r;c,r=min(tmp

8、axes(:,2);axesyP=tmpaxes(r,:);ct=ct-r;originP=handles.axesdata(ct,:);Data=zeros(handles.dataCount,2);data_new=zeros(handles.dataCount,2);%起点归零和坐标调整fori=1:handles.dataCountData(i,2)=det(originP-axesxP;handles.linedata(i,:)-axesxP)/norm(originP-axesxP);Data(i,1)=-det(originP-axesyP;handles.linedata(i,

9、:)-axesyP)/norm(originP-axesyP);endswitchxTypecase1data_new(:,1)=Data(:,1)/pdist(originP;axesxP);%坐标归化data_new(:,1)=xmin+data_new(:,1)*(xmax-xmin);%数据还原case2data_new(:,1)=Data(:,1)/pdist(originP;axesxP);%坐标归一化data_new(:,1)=10.A(log10(xmin)+data_new(:,1)*(log10(xmax)-log10(xmin);endswitchyTypecase1da

10、ta_new(:,2)=Data(:,2)/pdist(originP;axesyP);data_new(:,2)=ymin+data_new(:,2)*(ymax-ymin);case2data_new(:,2)=Data(:,2)/pdist(originP;axesyP);%坐标归一化data_new(:,2)=10.A(log10(ymin)+data_new(:,2)*(log10(ymax)-log10(ymin);%数据还原endfigure(3);ifxType=2ifyType=2loglog(data_new(:,1),data_new(:,2),b*);elsesemilogx(data_new(:,1),data_new(:,2),b*);endelseifyType=2semilogy(data_new(:,1),data_new(:,2),b*);elseplot(data_new(:,1),data_new(:,2),b*);endendhandles.newdata=dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论