精华内容
下载资源
问答
  • 如何使用matlab批量导入图片

    千次阅读 2020-05-01 12:08:35
    如何使用matlab批量导入图片思路程序实现程序中用到函数dir()函数strcat函数isempty函数save函数eval函数 思路 先对指定文件夹进行扫描,将.jpg等后缀图片文件信息保存,再依次将每个图片数据导入,最后将每一个...

    思路

    先对指定文件夹进行扫描,将.jpg等后缀的图片文件信息保存,再依次将每个图片数据导入,最后将每一个数据按照变量的形式保存到指定.mat文件

    程序实现

    下边给出matlab代码:

    function import_imageDatas(image_path)
        image_list=dir(fullfile(image_path,'*.jpg'));%列出path路径下所有后缀为.jpg的文件
        image_num=length(image_list);%获取图片数量
        if image_num==0
            fprintf('未找到任何图像\n');
        else
            fprintf('已找到%d张图像\n',image_num);
            for i=1:image_num
                image_name=image_list(i).name;%获取每一张图片名称
                %用eval函数可以实现将每一张图片以变量形式保存
                val=strcat('Image',num2str(i));
                eval([val,'=imread(fullfile(image_path,image_name));']);%导入每一张图片,注意,这里导入的是三通道彩色图像
                if i==1
                    save('ImageDatas.mat',val);%将图片数据以.mat文件保存下来
                else
                    save('ImageDatas.mat',val,'-append');%将图片数据以.mat文件保存下来
                end
            end
        end
    end
    

    程序中用到的函数

    dir函数

    matlab控制台中输入 help('dir'),获取帮助信息:
    控制台信息
    需要说明的是,dir函数中的自变量为 ‘*.jpg’ 时,意思是列出所有后缀为 .jpg 的文件。
    控制台信息

    fullfile函数

    控制台中输入help('fullfile'),得到以下信息:
    在这里插入图片描述
    该函数的目的是将路径与文件名连接。

    isempty函数

    在控制台中输入help('isempty')得到以下信息:
    在这里插入图片描述

    save函数

    在控制台中输入help('save'),得到以下信息:
    在这里插入图片描述
    值得说明的是,本程序中使用了‘-append’参数,这是为了在保存某个变量的时候不覆盖之前的变量,当使用‘-append’参数时必须保证保存的目标文件存在且不为空,否则程序会报错。

    eval函数

    在控制台中键入help('eval')得到以下信息:
    在这里插入图片描述
    帮助信息里有些抽象,这里解释一下:
    其实eval('a=1')a=1等价,这个函数的作用就是输入固定语句,那么问题来了,为什么我们不直接输入语句而是使用eval函数呢,在我们的程序中,就使用了eval函数:

    %用eval函数可以实现将每一张图片以变量形式保存
    val=strcat('Image',num2str(i));
    eval([val,'=imread(strcat(image_path,image_name));']);
    

    在我们这个例子中,eval函数可以实现将每一组图片数据单独保存在某个变量中。

    程序运行结果

    在控制台输入import_imageDatas('你的文件夹名称')运行我们的程序
    然后运行load('ImageDatas.mat')或双击ImageDatas.mat文件,即可加载导入好的图像数据,如下图:
    在这里插入图片描述
    执行imshow(Image1)即可显示图片,如下图:
    在这里插入图片描述

    使用资源说明:

    数据集来源:

    链接: https://www.yanxishe.com/postDetail/18396.

    展开全文
  • 最近刚好看到一篇回答,用阈值...我们需要:Matlab软件,手机拍文件图片2019.2.22修改:根据评论区建议,删除循环,将代码全部矩阵化首先读入图片filename='TestPic.jpg';%图片名称,默认与代码在同一文件夹下 img...

    7bdcc877aaf05f8bcd609da5e64a7d43.png

    最近刚好看到一篇回答,用阈值二值化处理图片水印,受到启发写此代码。阈值二值化适合处理只有黑白两色的图片,考虑到文件盖章,这里作者使用像素颜色替换及灰度值处理图片,进一步提高处理精度和能力。

    我们需要:Matlab软件,手机拍的文件图片

    2019.2.22修改:根据评论区建议,删除循环,将代码全部矩阵化

    首先读入图片

    filename='TestPic.jpg';%图片名称,默认与代码在同一文件夹下
    img=imread(filename);%读入图片

    获取图片RGB值

    R=img(:,:,1);
    G=img(:,:,2);
    B=img(:,:,3);

    筛选图片红色

    red=(R>=100).*(R<=255).*(G<110).*(B<110);%判断是否为红色并得到红色区域布尔矩阵
    %这里的.*为矩阵元素各自相乘,直接使用*为矩阵乘法
    %这里偷了个懒,乘法在这里的作用是矩阵相与
    
    %修改红色区域颜色
    R(red==1)=255;
    G(red==1)=70;
    B(red==1)=70;

    这里,RGB数值不固定,可以根据具体图片重新调整。这里作者事先在PS里查看了原图红色区域RGB数值。如果你不会PS,那……总有别的办法搞到RGB吧……实在不行咱一点点调嘛。

    808598eda965005efff7c5296b417506.png
    在PS中查看像素RGB值

    筛选图片白色

    将所有像素的灰度值计算出来。这里,灰度是用来判断“白”和“黑”的工具,当灰度大于某一值,我们认为其应该为白色,将该像素完全修改为白色。其余颜色不予改动。

    gray=R.*0.299+G.*0.587+B.*0.114;%灰度值计算,得到灰度值矩阵
    white=(gray>120)-red;%将灰度中的红色区域剔除,得到白色矩阵
    
    %将白色区域完全变白
    R(white==1)=255;
    G(white==1)=255;
    B(white==1)=255;

    ps:这样做的好处之一是,只让白的地方更白,其他比较复杂的区域未作改变,图片不至于偏离事实。

    颜色覆盖

    这里我们将之前转换好的RGB图层全部赋值给res变量,res变量即最终结果。

    res(:,:,1)=R(:,:);
    res(:,:,2)=G(:,:);
    res(:,:,3)=B(:,:);

    图片保存

    imwrite(res,'stripes2.png');%保存图片

    至此,这20行代码已经能自动将你手机拍的图片转换为“扫描文件”了

    需要注意的是,拍摄图片的时候最好在文件正上方,拍完有条件地话可以裁剪一下,这些手机自带的软件都可以搞定。

    全部完整代码如下:

    clc;
    clear all;
    filename='TestPic.jpg';%图片名称,默认与代码在同一文件夹下
    img=imread(filename);%读入图片
    %获取RGB图层
    R=img(:,:,1);
    G=img(:,:,2);
    B=img(:,:,3);
    
    red=(R>=100).*(R<=255).*(G<110).*(B<110);%判断是否为红色并得到红色区域布尔矩阵
    %这里的.*为矩阵元素各自相乘,直接使用*为矩阵乘法
    %这里偷了个懒,乘法在这里的作用是矩阵相与
    
    %修改红色区域颜色
    R(red==1)=255;
    G(red==1)=70;
    B(red==1)=70;
    
    gray=R.*0.299+G.*0.587+B.*0.114;%灰度值计算,得到灰度值矩阵
    white=(gray>120)-red;%将灰度中的红色区域剔除,得到白色矩阵
    
    %将白色区域完全变白
    R(white==1)=255;
    G(white==1)=255;
    B(white==1)=255;
    
    disp('转换结束');
    
    res(:,:,1)=R(:,:);
    res(:,:,2)=G(:,:);
    res(:,:,3)=B(:,:);
    
    imwrite(res,'stripes2.png');%保存图片
    disp('图片已保存');

    原图是我在网上随便找的一张,作者使用的软件是Matlab R2016a

    文件处理效果如下:

    a155eddeef07c237e9f5093ba4bd4049.png
    展开全文
  • 首先,点击"New"(1-1),然后点击“Script”(1-2),将(1-3)中的代码粘贴到编辑器中,点击(1-4)的“save”后,选择(1-5)的存储地址,输入存储的文件名“baidujingyan”(1-6),点击保存(1-7)。然后可以看到“保存”(1-8...

    首先,点击"New"(1-1),然后点击“Script”(1-2),将(1-3)中的代码粘贴到编辑器中,点击(1-4)的“save”后,选择(1-5)的存储地址,输入存储的文件名“baidujingyan”(1-6),点击保存(1-7)。然后可以看到“保存”(1-8)按钮变成了灰色。

    代码如下:

    clear;clc;

    figure %新建一张图

    axis([0 5 0 2])%定义x轴(从0到5)和y轴的范围(从0到2)

    for i=1:4

    if i==1

    text(i,1,'百','fontsize',40,'color','red');%i=1时,写一个‘百’字

    end

    if i==2

    text(i,1,'度','fontsize',40,'color','red');%i=2时,写一个‘度’字

    end

    if i==3

    text(i,1,'经','fontsize',40,'color','red'); %i=3时,写一个‘经’字

    end

    if i==4

    text(i,1,'验','fontsize',40,'color','red');%i=4时,写一个‘验’字

    end

    picname=[num2str(i) '.fig'];%保存的文件名:如i=1时,picname=1.fig

    hold on % 写后面的字时,不把前面的字冲掉

    saveas(gcf,picname)

    end

    展开全文
  • 我用PIPE画好的petri网的仿真图,是xml文件的格式,但是根据网上导入matlab的方法或者直接用matlab打开这样的文件 这样打开的是一串节点的代码而不是我画好的petri网的图片,求解如何正确导入petri网的内容
  • 假设你说是文本类型16进制,按数表排列,并且第一列是10进制时间,代码如下:function [t,data] = readAscHex(file)% 输入:% file — 数据文件,asc编码% 输出:% t — 时间% data - uint8数据% 编写 : ...

    假设你说的是文本类型的16进制,按数表排列,并且第一列是10进制的时间,代码如下:

    function [t,data] = readAscHex(file)

    % 输入:

    % file — 数据文件,asc编码

    % 输出:

    % t — 时间

    % data - uint8数据

    % 编写 : SY

    fid = fopen(file);% 打开文件

    cellData = textscan(fid,'%f32 %s','headerlines',1,'delimiter','\n');% 读取数据

    t = single(cellData{1}); % 第一列是时标

    hexData=cellData{2};

    fclose(fid); % 关闭文件

    idxNAN = find(isnan(t));

    t(idxNAN ) =[];

    hexData(idxNAN ) = [];

    clear('cellData');

    hexData = cell2mat(hexData);

    hexDataPos = regexp(hexData(2,:),'[0-9,A-F,a-f]'); % 根据第二行学习所有16进制字符位置,当心如果数据中存在不规则行将出错。

    hexData = hexData (:,hexDataPos);

    nRows = size(hexData,1);

    nCols = size(hexData,2)/2;

    data = zeros(nRows,nCols,'uint8'); % 预分配输出数据空间,uint8类型

    for iCol = 1:nCols

    data(:,iCol) = uint8(hex2dec(hexData(:,(2*iCol-1):(2*iCol)))); % 字符型16进制转换成10进制无符号整型

    end

    展开全文
  • 加工学术论文时,尤其是理工类论文,很多配图是Matlab绘制的,论文出版时对图片的要求是比较高的,一般情况下会要求600像素以上的分辨率,如果图片分辨率低且丢失了图的代码文件就麻烦了,较复杂曲线图比较难重绘,...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • MATLAB导入工具箱

    2019-11-20 09:43:34
    有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • 做了一个导入图片自动求解数独软件,不过由于目前是通过最小二乘法匹配数字,所以导入图片数字最好不要是手写。。,图片大概就像这样: 使用效果: 完整代码: function sudokuApp global SDKFig ...
  • 非常感谢这个论坛各位分享代码的各位朋友以及各位大神指导,使我顺利完成了我们小组作业,在此分享给大家我们所做的Matlab简易画板,该画板包含了导入,转换图片以及GIF动画各种代码,也希望能够给需要朋友...
  • matlab 图片的批量处理

    2017-12-11 17:37:08
    通常matlab读取图片并显示的时候,是一张张导入的,而对某一目录下的批量图片的读取介绍很少,本文主要是针对此类情况,提出的一种图片批量处理的手段,通过案例助于更快上手解决问题 代码未加注释,不理解的可以...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • matlab gui背景图片掩盖axes解决方法

    千次阅读 2020-04-26 16:19:06
    Matlab gui界面为了设计的更加美观,常常需要导入背景图片,导入背景图片的代码很容易获取。以下是从百度经验上获取的一段导入背景图片的代码: ha=axes('units','normalized','pos',[0 0 1 1]); uistack(ha,'down...
  • 我正在做PCA人脸识别程序,程序大致已编好,但是需要关联人脸库文件 代码如下:![图片说明]...采用是orl人脸库,已经下载到,但是根据代码导入成mat文件(如第三行代码),需要各位大神支个招。
  • matlab毕业论文代码各种方法寻找最强态斜率法功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 本人大一医电本科,刚接触matlab,最近学习一个项目,要先用gui绘制信号时域波形,但是信号是用excel格式,采样频率为1000HZ肌电信号,现在能将excel导入,但是绘制不了曲线。我按照网上搜集音频绘制时域...
  • 基于FastICA声源分离实例(matlab代码

    千次阅读 多人点赞 2020-10-08 17:00:29
    有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • 如图这样txt文档,我该如何导入MATLAB的工作区,形成数组,然后对这些数进行运算。 如下是我找到一段代码 ``` clc; clear; fin=fopen('222.txt','r'); result={}; while feof(fin)==0 str=fgetl...
  • matlab 图片RGB颜色提取

    万次阅读 多人点赞 2019-10-12 22:32:47
    写了一个程序能实现导入图片识别颜色 支持屏幕截图和从电脑倒入图片 鼠标移动到想要取色地方点击可以获取颜色 可以将颜色暂时保存在右边 目前导出颜色数据是从命令行窗口输出 完整代码 function ...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • 目录概述PCA数学推导基于PCA的人脸识别训练函数实现(Matlab)参考引用新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...
  • Matlab导出高DPI图片

    千次阅读 2019-07-12 20:12:56
    Matlab导出高DPI图片新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个...
  • MatLab中,我们用GUI时,有时候需要导入mat格式的图片,但是在GUI中调用load和在命令行里调用load不一样,在命令行里调用load('im.mat'),加载进去是uint8矩阵,但是我们在GUI中写代码加进去,默认得到是一个...
  • 熵值法原理介绍及matlab实现代码

    千次阅读 2019-12-14 15:44:49
    有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • 三阶魔方自动求解及动态可视化matlab代码

    千次阅读 多人点赞 2021-01-23 16:44:57
    三阶魔方自动求解及动态可视化matlab代码欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...
  • 【最全的】直方图平移信息隐藏原理及代码(matlab实现)可逆信息隐藏直方图平移功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...
  • 求教matlab的A*算法源代码!!!

    千次阅读 2018-08-09 11:29:27
    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用...图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...
  • MATLAB代码实现---遥感图像预处理系统系统介绍代码实现几何校正新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 248
精华内容 99
关键字:

matlab导入图片的代码

matlab 订阅