MATLAB 提取图片中的曲线数据重新画图
注意:
本代码是由【MATLAB R2015b win 32位】编写。
先上代码:
%% 清空变量
clear all;
clc;
%% 取点之后趋势是对的,也就是点与点之间的比例是对的,但是每个点的真实值和原图对不上,需要按照真实的坐标处理一下
max_axis_X=5; %这里是真实坐标中横轴的最大值
max_axis_Y=25; %这里是真实坐标中纵轴的最大值
flag = 0; %如果图形的纵坐标是正数,flag=0,如果是负数,flag = 1;
shift = 0; %如果横坐标不在最下边,而是在中间,那么需要往下平移若干单位
%% 读取图片数据
fig=imread('D:\OneDrive\Work\MATLAB工程\3.png'); %读取图片
imshow(fig); %显示该图
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
[X0,Y0] = ginput; %利用鼠标依次点击取出图片中数据区域边界的四个点。取点顺序:顺序点取图中坐标轴左下,左上,右上,右下四个点,回车结束。
X0(2) = X0(1); %** 对“X0,Y0”做一下处理。
X0(4) = X0(3);
Y0(4) = Y0(1);
Y0(3) = Y0(2);
[X1,Y1] = ginput; %开始点取其中一条实线上的点,按需要的精度,点取任意多的点,回车结束。
%% 因为位图的屏幕坐标是从左上角为坐标原点开始的,需要做些变换
X1 = X1 - min(X0); %** 把图片的坐标原点移到图片中数据区域的左上角
Y1 = Y1 - min(Y0);
if flag == 0
Y1= -( Y1 - (max(Y0) - min(Y0)) ); %** 把原来指向朝下的纵坐标翻转到朝上
else
Y1 = ( max(Y0) - min(Y0) ) - Y1;
Y1= ( Y1 - (max(Y0) - min(Y0)) );
end
X1 = X1 / ( max(X0) - min(X0) ) * max_axis_X; %** 按照每个取得的数据点在原图片中位置比例换算成真实坐标
Y1 = Y1 / ( max(Y0) - min(Y0) ) * max_axis_Y;
Y1 = Y1 - shift; %往下平移若干单位
plot(X1,Y1,'b-d'); %画图
具体例子:
Fig1

Fig2

Fig3

如果是“Fig1”应该这样设置:
未完 ......
点击访问原文(进入后根据右侧标签,快速定位到本文)
MATLAB 提取图片中的曲线数据重新画图的更多相关文章
- [转] 利用Matlab提取图片中曲线数据
原文地址 网易博客 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水 平放置的情况,而实际 ...
- Matlab 如何绘制复杂曲线的包络线
Matlab 如何绘制复杂曲线的包络线 http://jingyan.baidu.com/article/aa6a2c14d36c710d4c19c4a8.html 如果一条曲线(比如声音波形)波动很 ...
- ASP.NET提取多层嵌套json数据的方法
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...
- matlab结构体形式保存数据生成.mat文件< 转>
2015年 参加天池大数据竞赛 为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...
- 详解ASP.NET提取多层嵌套json数据的方法
本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下. 本文实例讲述了ASP.NET利用第三 ...
- 如何用ABBYY FineReader提取图片中的文字
作为OCR文字识别软件中的佼佼者,可能大家对于ABBYY FineReader的使用还不熟练,没关系,今天小编就为大家演示,如何用ABBYY FineReader这款文字识别软件,将一张截图中的文字识 ...
- 用matlab提取jpg曲线数据或者jpg图片重新复原
I = imread('111.jpg');%读取处理好的图片,必须是严格坐标轴线为边界的图片 I=rgb2gray(I); %灰度变化 I(I>200)=255; %二值化 I(I<=2 ...
- matlab读取excel里的数据并用imagesc画图
把矩阵数据保存在excel里 比如文件为 a.xlsx 通过下面的程序读取 a=xlsread('\文件保存的目录\a.xlsx'); figure(1); imagesc(a) colormap(h ...
- MATLAB·提取图像中多个目标
基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...
随机推荐
- tecplot三维模型绘制二维切片流线
原视频下载地址链接: https://pan.baidu.com/s/1csugHK 密码: xrni
- OpenFOAM-双柱及群柱绕流
这次的教程是紧接前几次的教程,设置与前几次教程类似,但是对于设置上稍微有一点点区别,就是在设置值的时候,出现了$internalField,其实这是一个字符串替换,就是在出现$internalFiel ...
- Git的使用(5) —— 在IDEA上使用
1. 在IDEA中配置Git 前言:IDEA中鼓捣Git是真的费劲,建议还是用TortoiseGit. 打开IDEA的Settings,左侧菜单列表中的Version Control里面找到Git. ...
- mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法。
一 .当在windows下使用mysql数据库时,出现无法登录的现象,需要修改mysql数据库的roo密码时,我们可以使用一下两种方法. 1. (1)关闭mysql服务.然后在bin目录下使用cm ...
- ubuntu之路——day8.4 Adam自适应矩估计算法
基本上讲,Adam就是将day8.2提到的momentum动量梯度下降法和day8.3提到的RMSprop算法相结合的优化算法 首先初始化 SdW = 0 Sdb = 0 VdW = 0 Vdb = ...
- Spring boot POST 提交错误 Request header is too large
解决方法 application.yml server: # 单位 KB max-http-header-size: 100000 java.lang.IllegalArgumentException ...
- Authentication failure. Retrying - 彻底解决vagrant up时警告
碰到的问题 使用vagrant启动虚拟机时,出现如下警告: vagrant up default: Warning: Authentication failure. Retrying... 原因分析 ...
- Workstation 14 Returns EFI Network Start PXE over IPv4 When Installing New Win10 Guest O/S
当启动出现“Click any key to boot from DVD”时候,需要键盘点击一下,即可解决. 参考:https://communities.vmware.com/thread/5730 ...
- 如何选题?| 什么样的科学问题 | 研究项目才是有意义的?| scientific method
搞科研,尤其是生命科学,经常会觉得自己做的东西是坨屎,没有任何意义. 在硕博的时候这种感觉会非常强烈,一个是自己思考能力不足:二是你的项目不是你设计的,不懂个中缘由,只执行的话就会很无聊,找不到意义感 ...
- 004 JpaRepository,CrudRepository,PagingAndSortingRepository的区别
很多程序都在使用,CrudRepository或者PagingAndSortingRepository,但是以前自己的程序使用的是JpaRepository,然后查了一下材料,记录一下. 1.类图 2 ...