1. 对序列进行洗牌 randperm()

randperm()产生随机的序列

%if filepaths 是一个5*1的结构体,then

cshuffle = randperm(length(filepaths)) %对filepaths进行随机的洗牌,得到了 cshuffle => [2,5,4,1,3] 洗牌后的序列

2. 图像灰度化 rgb2gray()

MyYuanLaiPic = imread('e:/image/matlab/Cluo.jpg');%读取RGB格式的图像

MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换

[rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数

MidGrayPic = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像

MidGrayPic = uint8(MidGrayPic);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的

for i = :rows

for j = :cols

sum = ;

for k = :colors

sum = sum + MyYuanLaiPic(i , j , k) / ;%进行转化的关键公式,sum每次都因为后面的数字而不能超过255

end

MidGrayPic(i , j) = sum;

end

end

imwrite(MidGrayPic , 'E:/image/matlab/Cluo.png' , 'png');

%显示原来的RGB图像

figure();

imshow(MyYuanLaiPic);

%显示经过系统函数运算过的灰度图像

figure();

imshow(MyFirstGrayPic);

%显示转化之后的灰度图像

figure();

imshow(MidGrayPic);

3. 对图像进行旋转和翻转

function I = data_augmentation(I, K)

if K ==

return;

elseif K == % flipped

I = flipud(I);

return;

elseif K == % rotation

I = rot90(I,);

return;

elseif K == % rotation & flipped

I = rot90(I,);

I = flipud(I);

return;

elseif K == % rotation

I = rot90(I,);

return;

elseif K == % rotation & flipped

I = rot90(I,);

I = flipud(I);

return;

elseif K == % rotation

I = rot90(I,);

return;

elseif K == % rotation & flipped

I = rot90(I,);

I = flipud(I);

return;

end

4. 对array进行连接 cat(dim, A, B)

5.对图像进缩放,imresize()

HR_current = imresize(HR,nscales(j,i),'bicubic');

%第二个参数为缩放因子,e.g. 0.5、0.8

%第三个参数为缩放method

6.读取图像默认的数据类型uint8,最大值为255;但是在进行图形矩阵的操作和变化过程中非常容易溢出,所以需要转化为double(64为,0~1)或者single

im2double()将值0~255映射到0~1之间

7.两个循环搞定patch的获取

for x = +step1 : stride : (hei-patchsize+)

for y = +step2 : stride : (wid-patchsize+)

count = count + ;

subim_label = HR_current(x : x+patchsize-, y : y+patchsize-,:nch);

imdb.HRlabels(:, :, :, count) = subim_label;

if count<=diffPatches %不够一个patch进行填充

imdb.HRlabels(:, :, :, end-count+) = HR_current(x : x+patchsize-, y : y+patchsize-,:nch);

end

end

end

8.产生图像的patch

function [imdb] = generatepatches

%% Note, set your training image set first, large dataset is prefered!

folders = {'path_of_your_training_dataset'}; % set this first!

stride = ; % control the number of image patches

patchsize = ;

batchSize = ; % important for BNorm

count = ;

nch = ; % for grayscale image, for color image

step1 = ;

step2 = ;

ext = {'*.jpg','*.png','*.bmp'};

filepaths = [];

for j = :length(folders)

for i = : length(ext)

filepaths = cat(,filepaths, dir(fullfile(folders{j}, ext{i}))); %获取folder获取所有figure

end

end

cshuffle = randperm(length(filepaths)); % randperm获取filepaths的随机排列

nimages = round(length(filepaths)); % control the number of image patches 去整数

ns = ;

nscales = min(,0.45 + 0.05*randi(,[ns,nimages])); %产生随机矩阵 * all values are less than

naugment = randi(,[,nimages]); %产生一个随机矩阵1* all values are form -

for i = : nimages

% HR = imread(fullfile(filepaths(cshuffle(i)).folder,filepaths(cshuffle(i)).name));

HR = imread(fullfile(folders{},filepaths(cshuffle(i)).name)); %从文件夹里随机读取一张图片

HR = HR(:,:,); %如果是rgb图就获取一个通道的,如果是gray图则自然为该图像

HR = data_augmentation(HR, naugment(i)); % 数据增大data_augmentation data_augmentation(HR, ); 转到data_augmentation.m里面就将图片旋转90度

disp([i,nimages,round(count/batchSize)])

for j = : size(nscales,) % size(nscales,) 为1

HR_current = imresize(HR,nscales(j,i),'bicubic'); %对图像进行尺度的缩放

[hei,wid,~] = size(HR_current); % 得到此时的高和宽

for x = +step1 : stride : (hei-patchsize+) % 产生的patch (hei-patchsize+)这个value是一个临界值,最后放不了一个patch

for y = +step2 : stride : (wid-patchsize+)

count=count+;

end

end

end

end

numPatches = ceil(count/batchSize)*batchSize; %ceil(1.2)=> ceil(0.2)=> 总共有多少个patch

diffPatches = numPatches - count; % 真实的差了多少个patch

disp([numPatches,numPatches/batchSize,diffPatches]);

disp('-----------------------------');

%------------------------------------------------------------------

%------------------------------------------------------------------

count = ;

imdb.HRlabels = zeros(patchsize, patchsize, nch, numPatches,'single'); %imdb是一个结构体 ***

for i = : nimages

% HR = imread(fullfile(filepaths(cshuffle(i)).folder,filepaths(cshuffle(i)).name));

HR = imread(fullfile(folders{},filepaths(cshuffle(i)).name)); %从文件夹里随机读取一张图片

if nch == && size(HR,) == %rgb2gray

HR = rgb2gray(HR);

end

HR = data_augmentation(HR, naugment(i)); % 图像旋转操作

disp([i,nimages,round(count/)])

for j = : size(nscales,)

HR_current = imresize(HR,nscales(j,i),'bicubic'); %图像进行随机的缩放

[hei,wid,~] = size(HR_current);

HR_current = im2single(HR_current);

for x = +step1 : stride : (hei-patchsize+)

for y = +step2 : stride : (wid-patchsize+)

count = count + ;

subim_label = HR_current(x : x+patchsize-, y : y+patchsize-,:nch);

imdb.HRlabels(:, :, :, count) = subim_label;

if count<=diffPatches %不够一个patch进行填充

imdb.HRlabels(:, :, :, end-count+) = HR_current(x : x+patchsize-, y : y+patchsize-,:nch);

end

end

end

end

end

imdb.set = uint8(ones(,size(imdb.HRlabels,)));

9.求某一个矩阵的指定维度的大小

size(A,dims) = value

# 如xx是一个16*401的矩阵,则求到第一维度的大小16

size(xx,1) =>16

# 如xx是一个16*401的矩阵,则求到第二维度的大小401

size(xx,2) =>401

matlab fscanf用法

matlab fscanf用法 matlab中的fscanf的用法如下: A=fscanf(fid,format)[A, count]=fscanf(fid,format,size) [A, coun ...

Matlab norm 用法小记

Matlab norm 用法小记 matlab norm (a) 用法以及实例 norm(A,p)当A是向量时norm(A,p)   Returns sum(abs(A).^p)^(1/p), for ...

matlab fspecial 用法解释

Matlab 的fspecial函数用法 fspecial函数用于建立预定义的滤波算子,其语法格式为:h = fspecial(type)h = fspecial(type,para)其中type指定 ...

Matlab基本用法

转至:http://blog.sina.com.cn/s/blog_8354dda801012dyn.html 目录: 一.说明 二.数据类型及基本输入输出 三.流程控制 四.循环 五.数组.数组运算 ...

matlab &lpar;&rpar;的用法

经常见到标识符+(),用法比如阵列Y().函数f()..... 时机到了,会总结一下.

MATLAB入门教程

MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...

(转)MATLAB入门教程

MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...

Matlab各种拟合

作者:Z-HE链接:https://zhuanlan.zhihu.com/p/36103034来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1) polyfit 代码 ...

matlab代码学习&lowbar;2018-7-28

1.核范数||A|| * 是指矩阵奇异值的和,英文称呼叫Nuclear Norm.matlab code:[s, u, v] = svd(A); nulear_norm = sum(diag(s)); ...

随机推荐

QFileSystemModel

#include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDi ...

重读gets&lpar;&rpar;与is函数的用法

这是从百度百科上查找的资料: gets(): 从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中.换行符不作为读取串的内容,读取的换行符 ...

F&num;周报2019年第12期

新闻 Amazon.Lambda.RuntimeSupport发布 Forge 3.0架构 Blazor 0.9.0试验版发布 通过微软游戏栈实现更多应用 介绍ASP.NET Core中的gRPC M ...

Shader&lowbar;ShaderForge&lowbar;NGUI&lowbar;流光&amp&semi;波纹&amp&semi;消融

Shader篇 总结:总算解决了NGUI中Shader不能实时更改的问题,原来NGUI中的Texture组件提供了OnRender代码示例如下 /*************************** ...

JAVA实现用户的权限管理

一:写在前面 前两天有个同学问我,那个系统不同的用户登陆不同的页面不同,要写很多个页面啊!而每个用户的在系统中拥有不同的权限,可以访问不同的页面是怎么实现的??那低权限的在浏览器输入高权限的人的url ...

Mysql系列二&colon;Mysql 开发标准规范

原文链接:http://www.cnblogs.com/liulei-LL/p/7729983.html 一.表设计 1. 库名.表名.字段名使用小写字母,“_”分割. 2. 库名.表名.字段名不超过 ...

Codeforces 841A - Generous Kefa

题目链接:http://codeforces.com/problemset/problem/841/A One day Kefa found n baloons. For convenience, w ...

linux basic test

Linux 1◆ 提供连接     2◆ connection baidu.com 3◆ vm tools install Reboot

poj3104(二分)

题目链接:http://poj.org/problem?id=3104 题意:有n件衣服,每一件含有a[i]单位的水,每分钟衣服可以自然蒸发1单位的水,也可以在烘干器上每分钟烘干k单位的水,问将所有衣 ...

matlab中fdyn,Matlab的用法总结相关推荐

  1. matlab i型级联filter,Matlab中filter,conv,impz用法(最新整理)

    <Matlab中filter,conv,impz用法(最新整理)>由会员分享,可在线阅读,更多相关<Matlab中filter,conv,impz用法(最新整理)(5页珍藏版)> ...

  2. matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法

    Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...

  3. MATLAB中randi函数的用法

    MATLAB中randi函数的用法 均匀分布的伪随机整数 语法 X = randi(imax) X = randi(imax,n) X = randi(imax,sz1,...,szN) X = ra ...

  4. matlab中struct2,Matlab中struct的用法

    struct在matlab中是用来建立结构体数组的.通常有两种用法: s = struct('field1',{},'field2',{},...) 这是建立一个空的结构体,field1,field2 ...

  5. MATLAB中freqz函数的用法

    本文引用自乱七八糟<MATLAB中freqz函数的用法>  FREQZ 是计算数字滤波器的频率响应的函数 [H,W] = FREQZ(B,A,N)returns the N-point c ...

  6. Matlab中linprog函数的用法总结

    Matlab中 linprog函数的用法总结 1.简介 在matlab中,linprog函数可以求解线性规划问题,用于寻找目标函数的最小值 matlab中,规划模型的标注写法如下 \[ min\ f\ ...

  7. matlab中的plot的用法

    文章目录 画单个带点的黑色实线: 在一张图片里绘制多副可以使用subplot命令: 标题使用title()命令 图片叠加 hold on,box on;用法 matlab中的plot的用法 画单个带点 ...

  8. Matlab中min函数的用法

    Matlab中min函数的用法 向量中的最小元素 创建一个向量并计算其最小元素. M = min(A) A = [23 42 37 15 52]; M = min(A)M = 15 每个矩阵列中的最小 ...

  9. MATLAB中plot()函数的用法

    文章目录 前言 一.plot()函数 二.代码运行结果 总结 前言 此为本人学习中的一些笔记总结,仅供参考. 提示:以下是本篇文章正文内容,下面案例可供参考 一.plot()函数 提示:关于plot( ...

最新文章

  1. 推荐10个能带来快感的实用windows软件,好评如潮!
  2. DM8168心得之SD卡快速分区制作
  3. 怎么制作铁闸门_红茶拿铁
  4. gramer法则matlab,东南大学几何与代数matlab实验报告(大一专用).doc
  5. 博客园自动显示随笔标签
  6. debian 升级后mysql_教你在Debian和Ubuntu上升级MySQL
  7. busybox制作根文件系统
  8. 数字图像处理matlab 版下载,数字图像处理(MATLAB版)
  9. 共轭梯度法matlab程序精确线搜索,具有精确线性搜索的改进共轭梯度法
  10. 白帽子讲Web安全——世界观安全
  11. 韩立刚Linux基础入门,Linux入门基础笔记1(韩立刚课程)
  12. 【HDU1411】四面体的体积公式
  13. 使用fastdfs上传视频并使用FFmpegFrameGrabberFrameGrabber在上传视频时截图作为封面
  14. php文件上传漏洞攻击与防御
  15. 实用Python程序设计测验:数字统计
  16. 听见丨哈罗单车完成10亿元人民币D2轮融资,复星领投 场景化AI应用服务公司百可录完成A轮融资
  17. render方法的使用
  18. c++实现文件传输之三:断点续传与多线程传输转
  19. 福建厦门计算机春季高考考哪些学校,福建省2020年春季高考总分多少?春季高考本科院校有哪些?...
  20. 穿越到东汉末年的Jackson

热门文章

  1. Java Web 相关面试题总结
  2. ubuntu 在firefox,网页听不了音乐
  3. 如果让我重新设计一款Android App
  4. Zend Framework 跳转方法(render, forward, redirect)区...
  5. 一点想法--- 做一个轻便的程序编辑器
  6. linux shell sshpass 远程服务器 批量修改密码
  7. linux opensuse 集成工具yast 使用方法
  8. java jdk windows环境 下载安装配置环境变量
  9. linux shell脚本 静态检查工具 shellcheck 简介
  10. docker 容器退出自动删除 一次性运行