精华内容
下载资源
问答
  • Matlab 导入并显示png格式的透明图片

    千次阅读 2018-09-05 09:50:36
    最近在做数字信号处理的课程设计,要求使用matlab的GUI编程,因此涉及到导入图片的问题,在这里把问题mark一下。 [I,map,alpha] = imread('im.png'); h = imshow(I); set(h,'AlphaData',alpha) 效果如图: ...

    最近在做数字信号处理的课程设计,要求使用matlab的GUI编程,因此涉及到导入图片的问题,在这里把问题mark一下。

    [I,map,alpha] = imread('im.png');
    h = imshow(I);
    set(h,'AlphaData',alpha)

    效果如图:

    展开全文
  • 在自己写论文时,难免需要一些实测数据。很多情况下难以做相关实验或实验成本高。最简单的方法是引用别人论文中的一些原始...首先,肯定要截取别人论文中的数据曲线,保存成png格式“2017.0219-1.png”: ...

      在自己写论文时,难免需要一些实测数据。很多情况下难以做相关实验或实验成本高。最简单的方法是引用别人论文中的一些原始实验数据进行分析或用自己的算法计算。本人最近需要的是火车轨道上的振动数据。

     

    所需工具:MATLABPC自带的画图和截屏工具

     

    第一步,预处理

    首先,肯定要截取别人论文中的数据曲线,保存成png格式“2017.0219-1.png”:

     

     

     

    然后用PC机自带的画图软件简单截取图片,截取时要紧贴XY坐标轴:

     

    再次用PC机自带的画图软件简单擦除或剪切图片,保存为:2017.0219-2.png

     

     

    第二步,MATLAB登场:

     

    首先,灰度处理:

    I=imread ('2017.0219-2.png');

    bw=rgb2gray(I);  %转换成灰度

    bw1=bw>20;  %灰度值越大,颜色越浅.  bw1的值非01.

    imwrite(bw1,'2017.0221-1.png','png')  %保存为png灰度文件。

     

    此时可以看到图片2017.0221-1.png,神奇吧~

     

    然后先看实线,用PC自带的画图工具(橡皮擦)将上图处理成如下(保存成2017.0221-2.png):

     

     

    然后执行MATLAB

    clc;

    clear;

     

    I=imread ('2017.0221-2.png');

    bw=rgb2gray(I);

    bw1=bw>1;  %灰度值越大,颜色越浅.  bw1的值非01.

    [tempy,tempx] = find(bw1==0);

     

    figure

    plot(tempx,tempy,'.','MarkerSize',4)

    %plot(tempx,tempy)

    grid on; 

     

    可得下图:

    怎么感觉它可原图不一样?是不一样,因为图片的零点(0, 0)在左上角,所以需要对所有点的Y坐标进行镜面对称处理:

     

    tempy = 0 - tempy + 419;  %X轴对称,image is 537*419px

    plot(tempx,tempy,'.','MarkerSize',4)

    grid on; 

     

    嗯,上图的感觉就对了。

     

    然后进行坐标平移:注意原图中零点的像素位置(146, 258PX

     

    %----平移坐标轴---图片总大小:537*419px--------------------

    tempx = tempx - 146;

    tempy = tempy - (419-258);  %这个地方自己慢慢想想

    plot(tempx,tempy,'.','MarkerSize',4)

    grid on;

    得图:

     

    然后需要按比例缩放坐标轴,使其与原图片的比例一样。由下图看出原图2017.0219-1.png中:

    坐标(0,0)的像素点为(232,285

    坐标(100, 100)的像素点为(330, 180

    X轴缩放比例为100/(330-232)y轴缩放比例为100/(285-180)

     

    即:

    tempx = tempx*100/(330-232)

    tempy = tempy*100/(285-180)

     

    plot(tempx,tempy,'.','MarkerSize',4)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

    可得:

     

    此曲线和原图基本一致了,到此基本结束。

     

     

    但是当把所有点连线时:

    plot(tempx,tempy)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

     

    由图片可以看出,细节处呈锯齿状。主要因为有时同一个X值可能有多个Y值。可去重:

     

    toDel = [];

    for i=1:( length(tempx) - 1)

        if( tempx(i)==tempx(i+1) )

            toDel = [toDel i];

        end

    end

    for i=1:( length(toDel) )

        tempx( toDel(i) ) = []; %删除数组中第i+1个坐标点

        tempy( toDel(i) ) = [];

        toDel = toDel - 1;  %数组中每个元素都减一,因为删除一个元素后数组tempx的总体长度会减1

    end

     

    plot(tempx,tempy)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

     

    现在完全光滑了。

     

    好了,赶快保存成TEXT...

    fid = fopen('data-2017.0221.txt', 'wt');

    for i=1 : length(tempx)  %  %.6f--小数点后6位精度; \t--制表符(tab键),用于区分每列

        fprintf( fid, '%.4f\t%.4f\n', tempx(i), tempy(i) );

    end

    fclose(fid);

     

     

    完成!  朋友们多多点赞支持~

     

    转载于:https://www.cnblogs.com/Sampson-9/p/6425076.html

    展开全文
  •  在自己写论文时,难免需要一些实测数据。很多情况下难以做相关实验或实验成本高。最简单的方法是引用别人论文中的一些原始...首先,肯定要截取别人论文中的数据曲线,保存成png格式“2017.0219-1.png”:  ...

     

      在自己写论文时,难免需要一些实测数据。很多情况下难以做相关实验或实验成本高。最简单的方法是引用别人论文中的一些原始实验数据进行分析或用自己的算法计算。本人最近需要OTDR的相关数据,原本格式是.sor,现在处理成.txt

    所需工具:MATLAB,PC自带的画图和截屏工具

    第一步,预处理

    首先,肯定要截取别人论文中的数据曲线,保存成png格式“2017.0219-1.png”:

     

     

     

    然后用PC机自带的画图软件简单截取图片,截取时要紧贴XY坐标轴:

     

    再次用PC机自带的画图软件简单擦除或剪切图片,保存为:2017.0219-2.png

     

     

    第二步,MATLAB登场:

     

    首先,灰度处理:

    I=imread ('2017.0219-2.png');

    bw=rgb2gray(I);  %转换成灰度

    bw1=bw>20;  %灰度值越大,颜色越浅.  bw1的值非0即1.

    imwrite(bw1,'2017.0221-1.png','png')  %保存为png灰度文件。

     

    此时可以看到图片2017.0221-1.png,神奇吧~

     

    然后先看实线,用PC自带的画图工具(橡皮擦)将上图处理成如下(保存成2017.0221-2.png):

     

     

    然后执行MATLAB:

    clc;

    clear;

     

    I=imread ('2017.0221-2.png');

    bw=rgb2gray(I);

    bw1=bw>1;  %灰度值越大,颜色越浅.  bw1的值非0即1.

    [tempy,tempx] = find(bw1==0);

     

    figure

    plot(tempx,tempy,'.','MarkerSize',4)

    %plot(tempx,tempy)

    grid on; 

     

    可得下图:

    怎么感觉它可原图不一样?是不一样,因为图片的零点(0, 0)在左上角,所以需要对所有点的Y坐标进行镜面对称处理:

     

    tempy = 0 - tempy + 419;  %做X轴对称,image is 537*419px

    plot(tempx,tempy,'.','MarkerSize',4)

    grid on; 

     

    嗯,上图的感觉就对了。

     

    然后进行坐标平移:注意原图中零点的像素位置(146, 258)PX:

     

    %----平移坐标轴---图片总大小:537*419px--------------------

    tempx = tempx - 146;

    tempy = tempy - (419-258);  %这个地方自己慢慢想想

    plot(tempx,tempy,'.','MarkerSize',4)

    grid on;

    得图:

     

    然后需要按比例缩放坐标轴,使其与原图片的比例一样。由下图看出原图2017.0219-1.png中:

    坐标(0,0)的像素点为(232,285)

    坐标(100, 100)的像素点为(330, 180)

    则X轴缩放比例为100/(330-232),y轴缩放比例为100/(285-180)

     

    即:

    tempx = tempx*100/(330-232)

    tempy = tempy*100/(285-180)

     

    plot(tempx,tempy,'.','MarkerSize',4)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

    可得:

     

    此曲线和原图基本一致了,到此基本结束。

     

     

    但是当把所有点连线时:

    plot(tempx,tempy)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

     

    由图片可以看出,细节处呈锯齿状。主要因为有时同一个X值可能有多个Y值。可去重:

     

    toDel = [];

    for i=1:( length(tempx) - 1)

        if( tempx(i)==tempx(i+1) )

            toDel = [toDel i];

        end

    end

    for i=1:( length(toDel) )

        tempx( toDel(i) ) = []; %删除数组中第i+1个坐标点

        tempy( toDel(i) ) = [];

        toDel = toDel - 1;  %数组中每个元素都减一,因为删除一个元素后数组tempx的总体长度会减1

    end

     

    plot(tempx,tempy)

    axis([-150 400 -150 250]); % 设置坐标轴在指定的区间 xmin xmax ymin ymax

    grid on;

     

    现在完全光滑了。

     

    好了,赶快保存成TEXT吧...

    fid = fopen('data-2017.0221.txt', 'wt');

    for i=1 : length(tempx)  %  %.6f--小数点后6位精度; \t--制表符(tab键),用于区分每列

        fprintf( fid, '%.4f\t%.4f\n', tempx(i), tempy(i) );

    end

    fclose(fid);

    完整代码

    clc;
    clear;
    I=imread ('otdr.png');
    bw=rgb2gray(I);
    imshow(I);
    [height,width,dim]=size(I);
    tform=maketform('affine',[1 0 0;0 -1 0;0 height 1]);
    B=imtransform(bw,tform,'nearest');%B中存储的是经过水平镜像变换后的图像
    bw1=B>200;  %灰度值越大,颜色越浅.  bw1的值非0即1.
    [tempy,tempx] = find(bw1==0);
    figure
    plot(tempx,tempy,'.','MarkerSize',4)
    %plot(tempx,tempy)
    grid on; 
    %光滑处理
    toDel = [];
    for i=1:( length(tempx) - 1)
        if( tempx(i)==tempx(i+1) )
            toDel = [toDel i];
        end
    end
    for i=1:( length(toDel) )
        tempx( toDel(i) ) = []; %删除数组中第i+1个坐标点
        tempy( toDel(i) ) = [];
        toDel = toDel - 1;  %数组中每个元素都减一,因为删除一个元素后数组tempx的总体长度会减1
    end
    plot(tempx,tempy)
    %保存txt文件
    fid = fopen('OTDR.txt', 'wt');
    for i=1 : length(tempx)  %  %.6f--小数点后6位精度; \t--制表符(tab键),用于区分每列
    
        fprintf( fid, '%.4f\t%.4f\n', tempx(i), tempy(i) );
    
    end
    fclose(fid);

    OTDR.TXT数据文件链接:https://download.csdn.net/download/lizhou011/10880057

    引用博客:https://www.cnblogs.com/Sampson-9/p/6425076.html

    展开全文
  • 我正在做PCA人脸识别的程序,程序大致已编好,但是需要关联的人脸库文件 代码如下:![图片说明]...采用的是orl人脸库,已经下载到,但是根据代码导入成mat文件(如第三行代码),需要各位大神支个招。
  • matlab导入PNG图像后,利用size()函数获得总的像素点,并且利用RGB范围来判断五种颜色的像素点各自的个数。
  • 少了一列(虽然那一列只有一个数),txt文件中的第二行第四列是滚动体个数,将txt中的数据赋给变量M后,第二行只有三列了 ,滚动体个数的数据消失不见了 以下是程序截图,以及原数据以及matlab导入的数据图片 ...
  • MATLAB图片转换为tif格式并读取显示

    万次阅读 2018-09-27 14:53:22
    (1)以rice.tif为例,本人MATLAB自身没有携带,于是上网百度,但只找到png格式的图片(如下图所示)。 (2)点击图片另存为(地址:D:\MATLAB\matlab\toolbox\images\imdata即MATLAB图片文件夹)。 (3)打开...

    (1)以rice.tif为例,本人MATLAB自身没有携带,于是上网百度,但只找到png格式的图片(如下图所示)。

    (2)点击图片另存为(地址:D:\MATLAB\matlab\toolbox\images\imdata即MATLAB图片文件夹)。

    (3)打开图片另存为或设置副本,文件名:rice.tif。

    (4)打开MATLAB,找到rice.tif。

    (5)右键导入数据。

     

    (6)在命令窗口输入:I=imread('rice.tif');imshow(I);

    展开全文
  • matlab实现图片的批量重命名

    千次阅读 2017-03-21 20:30:26
    最近刚好做了这个部分,因为网上的答案实在是有点不... %导入图片 l=length(files); %获取图片数量 for i=1:l  oldname=files(i).name; %获取每张图片的名字   newname=strcat('00000',num2str(i),'.png'); %对
  • 如图这样的txt文档,我该如何导入MATLAB的工作区,形成数组,然后对这些数进行运算。 如下是我找到的一段代码 ``` clc; clear; fin=fopen('222.txt','r'); result={}; while feof(fin)==0 str=fgetl...
  • 本人大一医电本科,刚接触matlab,最近学习一个项目,要先用gui绘制信号的时域波形,但是信号是用excel格式的,采样频率为1000HZ的肌电信号,现在能将excel导入,但是绘制不了曲线。我按照网上搜集的音频绘制时域...
  • 以前从未遇到过用MATLAB批处理文件的情况,此次项目需要批量将二进制数据文件导入matlab进行svm分类,现将matlab遍历子文件夹及其文件的方法记录下来。 文件目录结构 /maindir |– subdir1 |– datafile1.png ...
  • matlab初学

    2016-09-13 20:00:44
    matlab初学 网上下了matlab2012a,搞了半天懂了一些简单操作,记录之 简单操作help +function im1=imread(‘xx.png’) //导入图片 mex -setup; mex x.cpp //编译成mexw64文件,在command执行 hist(x)//生成直方图
  • 图片预处理 PS类软件 这里生成的画布为300×900,在中间输入文字后,保存为1.png。当然你可以不像我这样保存翻转过来的。 Matlab二值化处理 clear clc // Here the size of 1.png is 300*900 A=imread('1.png'); ...
  • MATLAB导入唐岛湾公园沿海地图并采样 三次样条插值求采样点拟合函数 插值函数求一类曲线积分 换算比例尺,求得实际长度 MATLAB代码 导入图片并采样 A=imread('C:\Users\AIERXUAN\Desktop\唐岛湾公园_副本.png'); ...
  • 图片预处理 PS类软件 这里生成的画布为90×270,在中间输入文字后,保存为3D.pngMatlab关键代码节选 因为在Palabos里,它的数据读取方式如同下面的形式: % for X→Xlength{ % for Y→Ylength{ % for Z→Zlength...
  • MATLAB SVM的一些问题

    2020-11-09 17:57:10
    %导入图片 figure; imshow(pic); %% 确定训练集 TrainData_background = zeros(20,3,‘double’); TrainData_foreground = zeros(20,3,‘double’); % 背景采样 msgbox(‘请选择20个背景样本点’,‘Background ...
  • matlab导入了uci的adult数据集,但是数据集中有的数据属性是缺失的显示为问号,请问怎么删除表中所有带问号的行?![图片说明](https://img-ask.csdn.net/upload/201810/13/1539371320_96708.png)如图所示,带有...
  • [在这里插入图片描述](https://img-blog.csdnimg.cn/20200912224027614.png#pic_center 一:能谱绘制: %% 选择路径,画出能谱 [filename,pathname]=uigetfile('*.txt','导入能谱数据'); %用于可以选择一个将要打开的...
  • MATLAB simulink对四足机器人物理建模 一、 本设计中用的是网上下载的别人已经画好的四足机器狗的3D模型。 那么我们就需要将这些3D...[在这里插入图片描述](https://img-blog.csdnimg.cn/20200811230449106.png?
  • MATLAB做了一个声音信号的时域和频域分析系统 当导入音频文件出来的波形是非周期信号 但是时域分析却能计算出周期频率 频域分析就会显示周期无限大 该怎么解决或者避免这个情况(时域分析周期计算用的是过零检测法)...
  • 我所用的版本较低,好像不支持导入png图片,如果手里的图片格式为png,可以用ps等软件将图片格式转化为Getdata软件可以导入的格式,如tif格式。 假定现在有一张图片如下 在getdata软件中导入图片。File-Open ...
  • 错误使用 xlsread (line 132) XLSREAD 无法打开文件 'test'。 未找到文件 'test'。 数据是49行2列,这是我从网上复制的代码: ...[图片说明](https://img-ask.csdn.net/upload/201704/30/1493549379_875116.png)
  • 具体内容查找论文《无刷直流电机在不同驱动方式下的性能比较研究》 这篇 ![图片说明]...想要的就是MATLAB仿真程序,可以直接导入运行成功的,安装包形式回答!!! 大牛们给力呀。
  • 然后用MATLAB的fdatool生成滤波器系数,调用ise的fir IP核,生成2M-8M带通滤波器,下面是代码和图片(这个可以证明我滤波器是没配置错的),但是当我把5M方波信号接到滤波器上,信号就成未知状态了,无法理解,是...
  • awesome-cpp 就是 fffaraz 发起维护的 C++ 资源列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 中文版由开源前哨和CPP开发者微信公号团队维护更新,在 GitHub 已...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

matlab导入png图片

matlab 订阅