在matlab中如何编写将处理好的图片存入到一个新建的文件夹里? 谢谢高手帮忙!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在matlab中如何编写将处理好的图片存入到一个新建的文件夹里? 谢谢高手帮忙!相关的知识,希望对你有一定的参考价值。

...,n.jpg
2 循环读图
I=cell(1,n);
for i=1:n
imageName=strcat(num2str(i),'.jpg');
I = imread(imageName);
end
3 处理图像
-----------------------
如果图像很多,那么最好这样,第二步和第三步合并
for i=1:n
imageName=strcat(num2str(i),'.jpg');
I = imread(imageName);
处理当前图像
end
参考技术A 用system(['mkdir ',dirName]);新建一个文件夹,然后cd(dirName)进去这个文件夹,然后就imwrite(im,imageName,'jpg')保存图片本回答被提问者采纳

MATLAB如何保存索引图

就是想用matlaB处理图像,但是图像是真色彩图像,不能直接处理,要先转化成索引图像。转化我会做,但转化好的图像如何保存呢?保存的效果是:在处理的时候能够在MATLAB的存储文件夹中找到该文件,并可以处理。希望大侠们给予帮助......

保存索引图方法如下:

在电脑F\picture下有一彩色图像文件nice.bmp,则可由下述语句读取:
下面是对图像 nice.bmp以y轴为对称轴所做的一个对称变换。
% Transfer1.m
clear all
figure
[x,map]=imread('F:\picture\nice.bmp');% 所得x为一375x420x3的矩阵
[w1,w2,w3]=size(x); % 375 X 420
w22=floor(w2/2);
image(x); %显示出图像
title('HELLO! @This is the first pose of me')%则显示出图像nice.bmp
axis
off;
% 去掉图像中的坐标
colormap(map);
% colormap(),图像查找表函数。函数结构为colormap(map),设置当前的图像查找表到map。
imwrite(x,map,'nice.bmp')
for
i=1:w1
for
j=1:w22
% 图像关于y轴对折
t=x(i,j);
x(i,j)=x(i,w2-j 1);
x(i,w2-j 1)=t;
end
end
figure
image(x);
axis off
title('HELLO!!@@ Can you find any difference of my two picture! ')
colormap(map);
imwrite(x,map,'newpic.bmp')
%把x写到nepic2.bmpz中去

2.
开始时,随便找了个彩色图片,按照上面的步骤运行,结果发现对折后的图片留有印痕,并没有完全

实现对折。后来发现,原来选的图片为真彩图片,而程序当中为索引图片。由于第一次接触图像处理,对于一些概念并不
清楚,用imread对真彩图片进行读取操作是不能返回颜色表的,也就是map为空。于是通过rgb2ind先将原图片转换成索引图片,然后按程序进行,
最终得到结果。

3.这当中也并非一帆风顺,给出的程序也有些小错误(本人菜鸟意见),包括:

(1) 这个程序仅对应于索引图像,至于真彩图像该如何处理,有待高手指点;

(2)figure在程序中仅使用最开始的一个就可以了,第二个多余;

(3)“colormap(map); ”
操作很重要,将它注释掉以后,再进行图像写入操作时,发现颜色一片混乱,这个不太清楚,但个人感觉是颜色表出现不对应情况,等待高手深入解释;

(4)需要说明的是原图片为.bmp文件,过程当中尝试过jpg文件,也需要先转换成索引文件才能出来,但是Matlab中imwrite不能将索引文件直接写成jpg文件(不知为什么?),所以最后还是用bmp文件操作的。

3.最后,给出我的程序及结果:

function[]=main()%

%变换后所得图片:newpic.bmp
%例,在电脑F\picture下有一彩色图像文件nice.bmp,则可由下述语句读取:
%下面是对图像 nice.bmp以y轴为对称轴所做的一个对称变换。
% Transfer1.m
clear all
figure
[x,map]=imread('D:\nice3.bmp');% 所得x为一375x420x3的矩阵
[w1,w2,w3]=size(x); % 375 X 420
w22=floor(w2/2);
%w33=floor(w3/2);
cmap=map;
ax(1)=subplot(1,2,1);

image(x); %显示出图像
title('HELLO! @This is the first pose of me')%则显示出图像nice.bmp
axis
off;
% 去掉图像中的坐标
colormap(map);
% colormap(),图像查找表函数。函数结构为colormap(map),设置当前的图像查找表到map。
imwrite(x,map,'nice3.bmp')
for
i=1:w1
for
j=1:w22
% 图像关于y轴对折
%for k=1:w33

t=x(i,j);
x(i,j)=x(i,w2-j 1);
x(i,w2-j 1)=t;
end
end
%end
%figure

ax(2)=subplot(1,2,2);

image(x);
axis off
title('HELLO!!@@ Can you find any difference of my two picture!
');

linkaxes(ax,'xy');
axis(ax,'image');

colormap(map);
imwrite(x,map,'D:\newpic.bmp') %把x写到nepic.bmpz中去
参考技术A 这个很简单,你不是转化好图像了吗,假设命名为samples,那么你运行下面2步:sample_name = sprintf('sample_%d.mat',1); save(sample_name,'samples');则在你的当前存储文件夹中就会找到名字为sample1.mat的文件了,里面就是存储的samples的数据。追问

那用小波分析的时候,要加载这个图片,怎么出现错误呢?File sample_1.mat doesn':contain one dimensional Signal.请大侠指教。。。

追答

你的错误提示我没有见过,可否把你程序写下

追问

wavemenu
出现小波分析的界面 选择二维小波分析 然后再在文件夹中加载图片 就产生这样的错误了

参考技术B 把变量直接存成MAT文件就行。追问

怎么存呢?命令怎么写?谢谢啊 我是新手啥都不懂,望指教。

追答

在matlab中运行doc load和doc save,看帮助里怎样写的吧

参考技术C 用imwrite命令写相关语句应该可以吧。

以上是关于在matlab中如何编写将处理好的图片存入到一个新建的文件夹里? 谢谢高手帮忙!的主要内容,如果未能解决你的问题,请参考以下文章

matlab 矩阵是如何显示为图像,就是怎样将存入的数据流转化为图片显示?

怎么把matlab中处理的数据存入到excel中

matlab如何保存图片到我上一步通过字符串创建的文件夹里?

Delphi用ADOQuery将图片存入ACCESS,求一个示例。

opencv怎么将图像数据存入矩阵

关于JAVA~~~~ 如何将图片等大对象存入ORACLE中~~求详解!(代码)