无法保存图像的变化而在GUI使用滑块

1视图(30天)
你好,
我为图像分析构建一个GUI。当我点击加载图片,所有的图像文件夹显示在Axes1。当我点击部分,所有轴1所示的图像分割结果在轴2所示。我使用滑块,浏览器通过一个接一个的图片和相应的分割结果显示在轴2。我使用校正按钮手动定义ROI轴1。修正后的分割结果将显示在轴2。问题是更新后的图片没有保存当我使用滑块。例如,如果我的浏览器通过4 th图像由滑块和使用校正选项,新结果将显示在轴2。然而,如果我浏览第五图像然后回到4 th图像使用滑块,第四届图像未得救的新结果和原始分割结果是轴2所示。我无法保存更新后的结果,显示在轴2如果回到4幅图像使用滑动条。 The pushbutton3 _ Callback refers to the callback when I press the Correction button. Any suggestions would be appreciated.
函数imageSlider_Callback (hObject eventdata处理)
% hObject句柄imageSlider(见GCBO)
% eventdata保留——MATLAB的未来版本中定义
%处理结构处理和用户数据(见GUIDATA)
%提示:获得(hObject,“价值”)返回滑块的位置
%获得(hObject,“最小值”)和(hObject,“马克斯”)来确定范围的滑块
处理= guidata (hObject);
maxNumberOfImages = handles.num_files;
orig_imgs = handles.InputImage;
output_img = handles.seg;
集(hObject,“最小值”,0);
集(hObject,“马克斯”,maxNumberOfImages);
集(hObject,“SliderStep”(1 / maxNumberOfImages 10 / maxNumberOfImages]);
值= int32 (get (hObject,“价值”));
如果值= = 0 | | maxNumberOfImages = = 1
值= 1;
elseif值> maxNumberOfImages
值= maxNumberOfImages;
结束
句柄。值=价值;
guidata (hObject处理);
% %显示
imshow (orig_imgs {value},
“InitialMagnification”,“健康”,“父”,handles.axes1);
imshow (output_img {value},
“InitialMagnification”,“健康”,“父”,handles.axes2);
结束
% - - - - - -执行在创建对象的过程中,设置后所有属性。
函数imageSlider_CreateFcn (hObject eventdata处理)
% hObject句柄imageSlider(见GCBO)
% eventdata保留——MATLAB的未来版本中定义
%处理空——处理才创建毕竟CreateFcns调用
%提示:滑块控件通常有一个浅灰色的背景。
如果isequal (get (hObject,“写成BackgroundColor”),得到(0,“defaultUicontrolBackgroundColor”))
集(hObject,“写成BackgroundColor”,(。9。9。9]);
结束
结束
% - - - - - -执行列表框中选择变化。
% - - - - - -执行在pushbutton3按钮按下。
函数pushbutton3_Callback (hObject eventdata处理)
% hObject句柄pushbutton3(见GCBO)
% eventdata保留——MATLAB的未来版本中定义
%处理结构处理和用户数据(见GUIDATA)
处理= guidata (hObject);
值= handles.value;
corr_image = handles.InputImage;
hr = corr_image {value};
(嗯,矩形)= imcrop(人力资源);
毫米= rgb2gray (MM);
imshow(毫米“父”,handles.axes1);
%,imshow(毫米)
(x, y) = getpts (handles.axes1); x =圆(x), y =圆(y);
% x = 300;y = 340;
一个= imgaussfilt(毫米,2);
b = adapthisteq(一个);
m = regiongrowing_MLT (b, x, y, 12);
m = imfill (m,“黑洞”);
%,imshow (m)
bw = imbinarize (m);
bw = bwareafilt (bw, 1);
%,imshow (bw)
我= imresize(毫米、5);%,使图像变得更小
m1 = imresize (bw, 5);%的快速计算
seg1 = region_seg (m1, 30);%——运行分割
imwrite (seg1“newimage.jpg”);
imshow (seg1“父”,handles.axes2);
handles.seg1 = seg1;
guidata (hObject处理);
结束

答案(0)

标签

s manbetx 845


释放

R2020b

社区寻宝

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

开始狩猎!