精华内容
下载资源
问答
  • Matlab批量处理图片

    2014-11-15 16:30:21
    使用Matlab批量处理图片,可以分割图片,且支持的格式丰富
  • matlab 批量处理图片

    千次阅读 2016-05-24 11:22:43
    一、基本上比较常用的就是自己的图片命名是规律的,这样可以快速循环处理: str='D:\'; %我的图像放在D盘,做差文件夹下,好的图像文件夹下 for i=1:12 I=imread([str,num2str(i),'.png']); %依次读取...

     一、基本上比较常用的就是自己的图片命名是规律的,这样可以


    快速循环处理:


    str='D:\'; %我的图像放在D盘,做差文件夹下,好的图像文件夹下


    for i=1:12


    I=imread([str,num2str(i),'.png']); %依次读取每一幅图像


    %在此处进行你的图像处理即可


    end


     二、在一个文件夹下,利用uigetdir函数得到你所处理图像的路


    径,然后进行处理


    srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹


    cd(srcDir);


    allnames=struct2cell(dir('*.bmp')); %只处理8位的bmp文件


    [k,len]=size(allnames); %获得bmp文件的个数


    for ii=1:len


    %逐次取出文件

    name=allnames{1,ii};


    I=imread(name); %读取文件

    %然后在此处添加你的图像处理程序即可

    end


    三、百度上提供的多张保存


    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


    展开全文
  • MATLAB 批量处理图片

    2017-09-09 09:49:00
    % http://zhiqiang.org/blog/it/batch-resize-images-using-matlab.html % $Revision: 1.1.6.28.2.1 $ $Date: 2009/01/27 04:47:43 $ %% cope with the input parameters % if the directory is not set, we open ...
    function resizephotos(directory, wh, isrecursive, isoverwrite, savetopath, supportFormat)
    % resizephotos: resize a batch of photos
    %
    % resizephotos -dir max_width_and_height, will let you choose a directory,
    % and resize all the photos in the directory. When max_width_and_height is
    % omitted, it uses 1600 by default(1600px is enough for most monitors).
    %
    % resizephotos -files max_width_and_height, will let you choose some files,
    % and resize all the files in the directory.
    %
    % You might be asked for whether to recursively resize all the photos in
    % subdirectories.
    %
    % and You might be asked for whether to overwrite the original files. If
    % you choose 'No', the program will save the resized images in new
    % directories or files with prefix 'resize-'.
    %
    % resizephotos(file_or_directory, max_width_and_height, is_recursive, ...
    % is_overwrite, path_to_save): you can use the function by specifying
    % the path of the directories and files. When using this method, you can
    % specific the max width and height of the resized photos. When path_to_save
    % is omitted, the path to save the resized photos will generated automatically
    % depends on is_overwrite parameter.
    %
    %
    % See also imresize
    %
    % Copyright 2010, zhiqiang.org
    % author: zhang@zhiqiang.org, url:
    % http://zhiqiang.org/blog/it/batch-resize-images-using-matlab.html
    %   $Revision: 1.1.6.28.2.1 $  $Date: 2009/01/27 04:47:43 $
     
    %% cope with the input parameters
    % if the directory is not set, we open a file select dialog for use to
    % select the files or path to deal with
    if nargin == 0 || (nargin >= 1 && ischar(directory) && strcmp(directory, '-dir'))
        directory = uigetdir;
        % let user to choose whether recursively resize all the subdirectories
        tmp = questdlg('Did you want to recursively resize all the subdirectories?');
        if strcmp('Yes', tmp)
            isrecursive = true;
        else strcmp('No', tmp)
            isrecursive = false;
        end   
        isoverwrite = askforoverwrite();
    elseif (nargin >= 1 && ischar(directory) && strcmp(directory, '-files'))
        [p, f] = uigetfile({'*.*', 'All files'}, 'MultiSelect', 'on');
        if isnumeric(p) && ~p
            return;
        end
        directory = cell(size(p));
        if iscell(p)
            for i = 1:numel(p)
                directory{i} = [f, p{i}];
            end   
        else
            directory=[f p];
        end
        isoverwrite = askforoverwrite();
    end
     
    % set other parameters
    if ~exist('wh', 'var'), wh = 1600; elseif ischar(wh), wh = eval_r(wh); end %����eval����_r
    if ~exist('isrecursive', 'var'), isrecursive = false; end
    if ~exist('isoverwrite', 'var'), isoverwrite = false; end
    if ~exist('savetopath', 'var'), savetopath = []; end
    if nargin <= 5 || isempty(supportFormat), supportFormat = '*'; end
     
    %% mult-files
    % if directory is a cell, it indicate multi-files or multi-directories,
    % we resize them one by one
     
    if iscell(directory)
        for i = 1:numel(directory)
            resizephotos(directory{i}, wh, isrecursive, isoverwrite, savetopath, supportFormat);
        end
        return;
    end
     
    %% if everything are OK
     
    if exist(directory, 'file') &&  ~isdir(directory) % for a file,
        if nargin <= 4 || isempty(savetopath)
            if isoverwrite
                savetopath = directory;
            else
                [pd, fd] = lastdirectory(directory);
                savetopath = [pd, 'resize-', fd];
            end       
        end
        resizesinglephoto(directory, wh, savetopath);
    elseif isdir(directory) % if directory is a real directory
        % the last char of directory should be a '\'
        if directory(end) ~= '\'
            directory = [directory, '\'];
        end
        % generate the saved directory
        if nargin <= 4 || isempty(savetopath) % when at the first recursive and savetopath is not set
            % we need to generate the saved directory
            if isoverwrite
                savetopath = directory;
            elseif ~isoverwrite
                [savetopath, lastd] = lastdirectory(directory);
                savetopath = [savetopath, 'resize-', lastd, '\'];
            end
            % when the savetopath do not exist, we create one
            if ~isdir(savetopath)  
                mkdir(savetopath);  %����������������
            end
        end
       
        % now we resize all photos in current directory, and recursive resize
        % all the directories if needed
        allfiles = dir(directory);  %����������������(������������)������������������
       
        % before we generate now image file, we first make sure the savetopath
        % exists, otherwise generate it.
        if ~isdir(savetopath)
            savetopath=[savetopath(1:end-1) 'resize' '\'];
            mkdir(savetopath);  %��������������������������������resize
        end
        for i = 1:numel(allfiles)
            cur = allfiles(i).name;
            % ignore the path '.' and '..'
            if numel(cur) > 2 || ~min(cur == '.')
                if allfiles(i).isdir && isrecursive
                    resizephotos([directory cur '\'], wh, isrecursive, isoverwrite, ...
                        [savetopath cur '\'], supportFormat);
                elseif ~allfiles(i).isdir
                    resizesinglephoto([directory cur], wh, [savetopath cur]);
                end
            end
        end
    end
     
    %% resize single photo, save it to savetopath
    function resizesinglephoto(photo, wh, savetopath)
     
    try
        I = imread(photo);
    catch ME %#ok<NASGU>
        % disp(ME.message);
        disp(['!!! ' photo ' is not recognized as an image file, and it''s ignored']);
        return;
    end
       
    % [w, h] is the width and height of original graph
    w = size(I, 1);
    h = size(I, 2);
     
    % ����resize�������� [maxw, maxh]
    if numel(wh) == 1
        if w > h
            maxw = wh;
            maxh = wh*h/w;
        else
            maxh = wh;
            maxw = wh*w/h;
        end
    else
        maxw = wh(1);
        maxh = wh(2);
        if (w-h)*(maxw-maxh) < 0
            [maxw, maxh] = deal(h, w);
        end
       
        if w/h < maxw/maxh
            maxw = maxh*w/h;
        else
            maxh = maxw*h/w;
        end
    end
     
    if maxw < w
        I = imresize(I, [maxw, maxh]);   %����������������������������������������������������
    end
    imwrite(I, savetopath);
    disp([photo ' is resized, and is saved to ' savetopath]);
     
    %% lastdirectory
    function [pd, ld] = lastdirectory(d)
    % return the last directory, for example, lastdirectory('\abc\edf\') =
    % ['\abc\','edf']. When d is a file, return the path and the file name, i.e
    % lastdirectory('abc\def\x.jpg') = ['abc\def\', 'x.jpg']
     
     
    % remove the last \
    if isdir(d) && d(end) == '\'
        d = d(1:end-1);
    end
     
    % if there is a \
    if max(d=='\')
        ld = d(find(d=='\', 1, 'last')+1:end);
    else
        ld = d;
    end
     
    pd = d(1:end-numel(ld));
     
    %% ask for whether to overwrite original files
    function isoverwrite = askforoverwrite()
    tmp = questdlg(['Did you want to overwrite the original files? ' ...
            'if you choose No, we will add a ''resize-'' prefix to your ' ...
            'files or directories.']);
    if strcmp('Yes', tmp)
        isoverwrite = true;
    elseif strcmp('No', tmp)
        isoverwrite = false;
    end
    

      

    转载于:https://www.cnblogs.com/guohaoyu110/p/7497244.html

    展开全文
  • MATLAB批量处理图片并保存

    千次阅读 2019-03-26 17:03:33
    MATLAB批量处理图片并保存 我这里只是对图片进行了灰度化处理,比较坑的是有的图片已经是灰度化后的,不能处理程序就会卡住,停止运行了。由于只是暂时用一下也没有再优化。 程序如下: clc clear close all; ...

    MATLAB批量处理图片并保存
    我这里只是对图片进行了灰度化处理,比较坑的是有的图片已经是灰度化后的,不能处理程序就会卡住,停止运行了。由于只是暂时用一下也没有再优化。
    程序如下:
    clc
    clear
    close all;
    fig_path=‘C:’;
    cd (fig_path); %切换到指定路径下
    allfigs=struct2cell(dir(’*.jpeg’)); %只处理jpeg文件
    [w,img_num]=size(allfigs); %获得文件的个数
    for pn=img_num %逐次取出图片
    image_name=allfigs{1,pn}; %allfigs{1,pn}存储每个图片的名字
    img_origin=imread(image_name); %读取图片
    fprintf(’%d %s\n’,pn,strcat(fig_path,image_name));
    I1=rgb2gray(img_origin); % RGB图像转灰度图像,这里可以替换为其他的图像处理方法
    figure(‘name’,‘灰度图’),imshow(I1);
    saveas(gcf,[‘C:’,num2str(pn),’.jpg’]);%将处理后的图片保存到目标文件夹
    end
    由于处理的图像中存在已经是灰度图的图像,程序运行过程中会出现卡住的情况,对于卡住的图片只能单个处理了。
    另外附带一下图片的保存程序。
    filepath=pwd; %保存当前工作目录
    cd(‘C:’) %把当前工作目录切换到指定文件夹
    saveas(gcf, ‘name’, ‘jpg’)
    cd(filepath) %切回原工作目录
    就这些,希望有所帮助。

    展开全文
  • fullfile():用作文件目录的拼接,也可以用于保存文件或者图像名称命名的拼接 如file_list = fullfile(‘F:\imageSet\LIVE2’, ‘databaserelease2’, ‘refimgs’, ‘*.bmp’); 返回值就是一个完整的路径 file_...

    一、dir()函数和fullfile()函数

    fullfile():用作文件目录的拼接,也可以用于保存文件或者图像名称命名的拼接
    如file_list = fullfile(‘F:\imageSet\LIVE2’, ‘databaserelease2’, ‘refimgs’, ‘*.bmp’);
    返回值就是一个完整的路径
    file_list = ‘F:\imageSet\LIVE2\databaserelease2refimgs*.bmp’

    dir():是直接确定到文件路径最后一级的文件名称
    如file_list = dir(‘F:\imageSet\LIVE2\databaserelease2\refimgs*.bmp’);
    返回值就是file_list=文件中所有的bmp文件。

    二、批量处理压缩图片

    代码如下:

    function process_train_data(setname, sub_img_size, stride, quality)
        data_dir = fullfile('F:\imageSet', 'ProcessedData', 'train');
        if ~exist(data_dir, 'dir')
            mkdir(data_dir);
        end
        
        savedir = 'C:\Users\Administrator\Desktop\imageSet\train';
    
        file_list = dir(fullfile('F:\imageSet', 'BSDS500', 'data', 'images', setname, '*.jpg'));
        
         for i = 1:length(file_list)
            img = imread(fullfile('F:\imageSet', 'BSDS500', 'data', 'images', setname, file_list(i).name));
            savedname = fullfile(savedir, [file_list(i),  '_', num2str(quality), '.jpg']); %rename
            imwrite(img, savedname, 'Quality', quality);   %进行压缩,然后保存图像
         
         end
    end
        
        function extract_data()
        % train data
        process_train_data('train', 32, 10, 10);
        process_train_data('train', 32, 10, 20);
        process_train_data('train', 32, 10, 30);
        process_train_data('train', 32, 10, 40);
        
        process_train_data('test', 32, 10, 10);
        process_train_data('test', 32, 10, 20);
        process_train_data('test', 32, 10, 30);
        process_train_data('test', 32, 10, 40);
        
        process_train_data('val', 32, 10, 10);
        process_train_data('val', 32, 10, 20);
        process_train_data('val', 32, 10, 30);
        process_train_data('val', 32, 10, 40);
        
    end
    
    展开全文
  • 使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jpg'); N=length(Files); Names={}; Images={}; for k=1:N Names{...
  • %%需要处理图像文件夹 list = dir(path); path1 = ‘D:\matlab\Image2’; %%处理图像所在文件夹 for i = 3:length(list) path2 = [path list(i).name]; I = imread(path2); %%根据自己需求进行具体图像处理 ...
  • % F=getframe(gcf); % imwrite(F.cdata,name); 代码最后是获得当前图像后保存 但是会反复弹出窗口,这样根本没法干别的 请问该怎么隐藏弹窗,或者不弹出?
  • file_path = 'F:\window and ubuntu\... %需要处理图片的路径 img_path_list = dir(strcat(file_path,'*.jpg')); %获取该文件夹中所有jpg格式的图片 img_num = length(img_path_list); %获得图像的总数量 if img_nu...
  • Matlab实现批量处理图像的两种方法基本上有两个方法:一个是将你的图像统一进行一次重命名如:1.jpg,2.jpg等,然后利用for循环依次进行处理即可,如下面的语句:假设你的图像共有20副:str='D:\做差\好的图像\';...
  • 1-29,参加完2019年美国大学生数学建模竞赛,小伙伴都回家了,就我一个人在寝室,太无聊了,就把在比赛中遇到的excel批处理,写一下思路(ps:其实我在比赛中利用的是SQLServer数据库和matlab相结合的数据处理方法,...
  • matlab 图片批量处理

    2018-03-29 20:39:41
    matlab 图片批量处理,可以保存到你想保存的路径,是关于matlab的。很方便
  • 我们用于神经网络训练的图片有时候需要自己标记,但比较麻烦,通过一些旋转处理往往可以扩大训练集数目,但是一般我们用一些图像软件处理会使彩色索引图编程RGB图或者灰度图,不能满足我们要求,并且速度比较慢,...
  • matlabd批量处理图片

    千次阅读 2019-04-29 22:58:02
    matlab批量处理图片,从而批量改变图片的像素大小。 在不改变图片命名的前提下,批量处理图片。 代码如下: clc,clear srcDir=uigetdir('F:\MATLAB\source\train_images_40X32'); %获得选择的文件夹 cd(srcDir); ...
  • MATLAB批量处理

    2021-05-31 15:00:44
    批量图片处理 clc clear close all path = 'E:\data\images\';%图片路径 D = dir([path '*.tif']); StrIn='E:\data\images';%输入图片文件夹路径 StrOut='E:\data\images_output';%输出图片文件夹路径 i=1; for h...
  • matlab批量修改文件名: 下面展示一些 内联代码片。 // A code block var foo = 'bar'; // An highlighted block var foo = 'bar';
  • 文章目录 处理1张图片,获取4幅不同伽马校正图像 批量读取图片模板 批量处理多张图片,分别获取4幅伽马校正图像 参考 处理1张图片,获取4幅不同伽马校正图像 实验结果 实验代码 get_4_pictures_gamma_correction.m %...
  • matlab批量处理图片的灰度,将其保存在指定创建的文件夹之中。 代码案例如下: clc clear % 将图片批量转化为灰度图 % 首先需要创建灰度图保存的文件夹 % 读取图片的路径格式:'F:\MATLAB2019a\LY\图片\加载前' + '\...
  • MATLAB批量处理、保存图片

    千次阅读 2019-07-05 21:25:50
    批量处理保存方法为: srcDir=uigetdir(‘原图片所在文件夹’); %获得选择的文件夹 cd(srcDir); allnames=struct2cell(dir(’*.jpg’)); %只处理jpg文件 [q,len]=size(allnames); %获得jpg文件的个数,len为读取图片...
  • Matlab 批量读取,处理及保存图片

    千次阅读 2019-10-28 14:22:34
    最近想用MATALB对图片进行批量处理,之前都是用python比较多点,然后发现Matlab批量处理图片相对于python还是有点麻烦的,网上搜了下教程,也感觉有些麻烦,后来自己摸索了下,感觉有种方法还是不错的,现在与大家...
  • matlab批量更改图像尺寸代码
  • matlab批量处理excel(CSV)文件数据

    万次阅读 多人点赞 2019-01-29 21:51:25
    1-29,参加完2019年美国大学生数学建模竞赛,小伙伴都回家了,就我一个人在寝室,太无聊了,就把在比赛中遇到的excel批处理,写一下思路(ps:其实我在比赛中利用的是SQLServer数据库和matlab相结合的数据处理方法,...
  • matlab批量处理求光斑重心 %积分范围 a=[10,120];%行 b=[20,55];%列 pixel_x=20:55; pixel_y=10:120; %计算质心 files = dir(fullfile(‘F:\20201208’,’.tif’));%处理的图片格式为tif lengthFiles = length...
  • matlab出图的时候忘了设置去掉白边,懒的重新出图,电脑没装PS,word裁剪影响分辨率,遂试了一下matlab的裁剪函数imcropI2=imcrop(I,[a b c d]);%利用裁剪函数裁剪图像,其中,(a,b)表示裁剪后左上角像素在原图像中...
  • 从两个文件夹中提取图像,并对图像进行做差,代码如下:path1='C:\Users\45480\Desktop\matlab0522\bg\'; path2='C:\Users\45480\Desktop\matlab0522\ord\'; for i=1:15 %图像数量 I = imread([path2 'image' num2...
  • 如果文件中既有彩色图像又有灰度图像,则用如下代码 path = 'E:\python论文及代码\新建文件夹 (4)\imagefusion_densefuse-master\coco2014\train2014\'; save_path = 'E:\python论文及代码\新建文件夹 (4)\image...
  • clear; p = which('superd_v2000.bmp'); filelist = dir([fileparts(p) filesep 'superd_v*.bmp']); fileNames = {filelist.name}' n = size(fileNames); for i = 1:n(1) a = imread(fileNames{i,1});... [r
  • Matlab批量预处理图片

    千次阅读 2016-07-25 10:15:49
    Matlab批量预处理图片程序包括: 1、批量对图片重命名; 2、将多个文件夹下面的图片,拷贝到一个文件夹下; 3、给定图片及其中人脸位置,框出人脸 %功能描述:批量对图片重命名 %路径格式为,E:\image\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,841
精华内容 1,136
关键字:

matlab批量处理图片

matlab 订阅