无法自动图像文件与不同的文件名

2视图(30天)
你好,
我有一个GUi,我想保存的图像从第二图像轴(handles.axes2)和自动生成文件名。请查收我的代码如下:
函数pushbutton1_Callback (hObject eventdata处理)
myFolder =“D: \ regionGrowing_MLT”;
%确保文件夹确实存在。用户如果没有警告。
如果~ isfolder (myFolder)
errorMessage = sprintf (错误:以下文件夹不存在:\ n % s \ nPlease指定一个新文件夹。,myFolder);
uiwait (warndlg (errorMessage));
myFolder = uigetdir ();%要求一个新的。
如果myFolder = = 0
%的用户点击取消
返回;
结束
结束
%获得文件夹中所有文件的列表和所需的文件名称模式。
filePattern = fullfile (myFolder,‘* . jpg”);你需要什么模式变化百分比。
theFiles = dir (filePattern);
num_files =长度(theFiles);
一个=细胞(1、num_files);
handles.num_files = num_files;
handles.myFolder = myFolder;
handles.filePattern = filePattern;
handles.theFiles = theFiles;
句柄。InputImage = {};
k = 1:长度(theFiles)
baseFileName = theFiles (k) . name;
fullFileName = fullfile (theFiles (k)。文件夹,baseFileName);
流(1,“现在阅读% s \ n”,fullFileName);
%现在做任何你想做的这个文件的名字,
%,如阅读它作为图像数组与imread ()
imageArray = imread (fullFileName);
imshow (imageArray“父”,handles.axes1);%显示图象。
drawnow;%力显示立即更新。
InputImage = imageArray;
%轴(handles.axes1);
handles.num_files = num_files;
handles.theFiles = theFiles;
句柄。InputImage{结束+ 1}= InputImage;
setappdata (handles.pushbutton1“img”,handles.InputImage);
guidata (hObject处理);
结束
结束
函数pushbutton2_Callback (hObject eventdata处理)
% hObject句柄pushbutton2(见GCBO)
% eventdata保留——MATLAB的未来版本中定义
%处理结构处理和用户数据(见GUIDATA)
InputImage = handles.InputImage;
theFiles = handles.theFiles;
J = InputImage;
handles.seg = {};
% J = getappdata (handles.pushbutton1 img);
i = 1:长度(theFiles)
试一试
{我}= rgb2gray (J{我});
结束
x = 300;y = 340;
一个= imgaussfilt (J {}, 2);
b = adapthisteq(一个);
m = regiongrowing_MLT (b, x, y, 12);
m = imfill (m,“黑洞”);
%,imshow (m)
bw = imbinarize (m);
bw = bwareafilt (bw, 1);
%,imshow (bw)
I = imresize (m, 5);%,使图像变得更小
m1 = imresize (bw, 5);%的快速计算
%次要情节(2 2 1);imshow(我);标题(“输入图像”);
%次要情节(2,2,2);imshow (m1);标题(“初始化”);
%次要情节(2、2、3);标题(“分割”);
赛格= region_seg (m1, 30);%——运行分割
imshow(凹陷,“父”,handles.axes2);
%轴(handles.axes2);
handles.seg{结束+ 1}=凹陷;
setappdata (handles.pushbutton2“img”,handles.seg);
结束
文件名= fullfile (myFolder sprintf (“文件% d.jpg”赛格));
imwrite (InputImage文件名);
guidata (hObject处理);
结束
我想要的结果保存为file1.jpg file2.jpg, file3.jpg,等。不幸的是,我得到以下错误。
D: \ regionGrowing_MLT \ file0.jpgfile0.jpgfile0.jpgfile0.jpgfile0,……
为写作。你可能没有写权限。
错误同时> pushbutton2_Callback(第167行)
imwrite(赛格,文件名);
我附上了一些输入图像。有什么建议,我们将不胜感激。

接受的答案

杰夫•海斯
杰夫•海斯 2021年6月8日
Warid——错误消息的代码
错误在同时> pushbutton2_Callback(第167行)
imwrite(赛格,文件名);
并不完全对应pushbutton2_Callback一行代码。最近的我可以看到
imwrite (InputImage文件名);
请注意, 文件名 是设置为
文件名= fullfile (myFolder sprintf (“文件% d.jpg”赛格));
但在你定义的函数 myFolder 是多少。也许你需要使用 handles.myFolder
3评论
Warid伊斯兰教
Warid伊斯兰教 2021年6月8日
使用处理。myFoldersolved the problem for me. Thank you for your suggestion.

登录置评。

更多的答案(0)

类别

找到更多的在图像处理工具箱帮助中心文件交换

标签

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!