Matlab的新手,很抱歉,如果这是一个愚蠢的问题。我正在为我的研究过滤一系列图像。我没有遇到实际图像处理的问题,当我去保存修改后的图像时遇到了麻烦。出于某种原因,我只能使用imwrite将修改后的图像保存为.gif文件。如果我尝试将它们保存为.jpg,.bmp等,则该文件不会出现在工作文件夹中。出现相应的通用文件,但实际的.jpg不会出现。另外,当我使用imread重新打开中间文件(实际上保存为.gifs)时,图像只是黑色。但是,如果我在Matlab之外打开.gif文件,它会按预期显示。代码如下。
close all
N=90;
IMAGES=cell(1,N); %creates a cell to store image data
FNAMEFMT='20110805115033(1)_%d.jpg';
for i=1:N
IMAGES{i}=imread(sprintf(FNAMEFMT,i)); %reads original images into IMAGES
end
RESULT=cell(1,N); %to store modified/filtered images
for i=1:N
gray=rgb2gray(IMAGES{i}); %converts to grayscale
binary=im2bw(gray,.5); %converts to bw
filter=bwareaopen(binary,35); %removes small features
RESULT{i}=filter; %saves modified image in RESULTS
end
for i=1:N
WRITEFMT='filter_%d';
imwrite(RESULT{i},sprintf(WRITEFMT,i),'gif'); %writes RESULTS as .gif
end
答案 0 :(得分:0)
如果我尝试将它们保存为.jpg,.bmp等,则该文件不会出现在工作文件夹中。
您需要更改
WRITEFMT='filter_%d';
到
WRITEFMT='filter_%d.jpg';
您输出的文件是jpeg文件(根据imwrite参数'jpg'而不是'gif'),但它们没有文件扩展名。如果您手动添加扩展名,则会以jpgs打开。
对于黑色gif,see if this helps。
导出为jpg后,查看它们
imshow(imread('filter_1.jpg'))