注意:

本代码是由【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 提取图片中的曲线数据重新画图的更多相关文章

  1. [转] 利用Matlab提取图片中曲线数据

    原文地址 网易博客 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水 平放置的情况,而实际 ...

  2. Matlab 如何绘制复杂曲线的包络线

    Matlab 如何绘制复杂曲线的包络线 http://jingyan.baidu.com/article/aa6a2c14d36c710d4c19c4a8.html 如果一条曲线(比如声音波形)波动很 ...

  3. ASP.NET提取多层嵌套json数据的方法

    本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...

  4. matlab结构体形式保存数据生成.mat文件< 转>

    2015年 参加天池大数据竞赛     为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...

  5. 详解ASP.NET提取多层嵌套json数据的方法

    本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下. 本文实例讲述了ASP.NET利用第三 ...

  6. 如何用ABBYY FineReader提取图片中的文字

    作为OCR文字识别软件中的佼佼者,可能大家对于ABBYY FineReader的使用还不熟练,没关系,今天小编就为大家演示,如何用ABBYY FineReader这款文字识别软件,将一张截图中的文字识 ...

  7. 用matlab提取jpg曲线数据或者jpg图片重新复原

    I = imread('111.jpg');%读取处理好的图片,必须是严格坐标轴线为边界的图片 I=rgb2gray(I); %灰度变化 I(I>200)=255; %二值化 I(I<=2 ...

  8. matlab读取excel里的数据并用imagesc画图

    把矩阵数据保存在excel里 比如文件为 a.xlsx 通过下面的程序读取 a=xlsread('\文件保存的目录\a.xlsx'); figure(1); imagesc(a) colormap(h ...

  9. MATLAB·提取图像中多个目标

    基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

随机推荐

  1. Android中活动的最佳实践(如何很快的看懂别人的代码activity)

    这种方法主要在你拿到别人的代码时候很多activity一时半会儿看不懂,用了这个方法以后就可以边实践操作就能够知道具体哪个activity是干什么用的 1.新建一个BaseActivity的类,让他继 ...

  2. spaceclaim脚本(内摆线)

    import math #导入数学模块,因为会使用π def x_comp(k,r,t): #定义x坐标的计算函数 return r * (k -1) * math.cos(t) + r * math ...

  3. fluent中截取任意面的数据

    原版视频下载链接: https://pan.baidu.com/s/1c2aE740 密码: mf2i

  4. springMvc---WebMvcConfigurationSupport

    该类提供了主要的 MVC 配置方法,通过直接继承 WebMvcConfiguration ,并在继承类上 加上 @EnableWebMvc 和 @Configuration 注解之后.便可以在子类中实 ...

  5. Control.ImeMode属性简释

    在WINFORM中,我们经常遇到如下问题.文本输入框中输入法有时候需要被禁用,或者某些时候全半角输入自动转换.查阅相关资料,现小结如下. (一)Control.ImeMode 属性:获取或设置控件的输 ...

  6. ubuntu之路——day10.4 什么是人的表现

    结合吴恩达老师前面的讲解,可以得出一个结论: 在机器学习的早期阶段,传统的机器学习算法在没有赶超人类能力的时候,很难比较这些经典算法的好坏.也许在不同的数据场景下,不同的ML算法有着不同的表现. 但是 ...

  7. kafka笔记博客

    大数据数据流组件选择: https://www.cnblogs.com/yinzhengjie/articles/11155051.html 初识Apache Kafka 核心概念: https:// ...

  8. 基于Docker + Consul + Nginx + Consul-Template的服务负载均衡实现(转)

    转:https://www.jianshu.com/p/fa41434d444a 前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群 ...

  9. ZingChart line 折线图表数据设置

    根据 x 坐标和 y 坐标一一对应进行设置 (x,y) { "type": "line", "series":[ {,],[,],[,],[ ...

  10. 【插件】thinkphp5+百度编辑器自定义上传

    1 官方下载sdk 2 在引入编辑器页面.写入js // 百度编辑器 UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActi ...