欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码实现
嘿同学们,欢迎来尝试我的第一个应用程序设计器应用程序!这个应用程序能够加载、编辑和保存图像数据,让你轻松进行各种图像处理操作。每个操作步骤都可以通过“接受”按钮进行更新,而且你还可以使用“后退”按钮来回退到之前的步骤。
这个应用程序的功能非常丰富,让我们来看看有哪些内容包含在里面吧!
首先,你可以使用变换功能对图像进行旋转、翻转和分辨率的更改。无论是想调整图像的方向,还是改变其大小,这些功能都能满足你的需求。
接下来,转换功能可以帮助你将图像进行不同的格式转换。你可以将彩色图像转换为黑白图像,或者将图像转换为二进制和索引图像。这些转换过程非常简单,只需轻轻点击几下即可完成。
如果你想对图像进行滤波和去噪处理,这个应用程序的滤波器和噪声功能是非常实用的。你可以使用中值滤波器来处理脉冲噪声,或者使用高斯滤波器来消除具有高斯法向坐标的噪声。
除此之外,应用程序还提供了图像分割功能,可以帮助你将图像按照不同的特征进行切割和分离。这对于图像分析和处理来说非常重要,能够提供更多的操作和选择性。
最后,应用程序还包括色度键控功能,让你能够根据图像的色彩信息来进行选择性的处理和编辑。这有助于实现更精确的修改,让你能够更好地控制图像的色彩效果。
通过这个应用程序设计器应用程序,你可以轻松地处理、编辑和优化图像。不论是进行基本的变换和转换,还是使用滤波器、噪声处理、图像分割和色度键控等高级功能,你都能在这个应用程序中找到一切所需。赶快尝试一下吧,你会爱上这个功能强大的图像处理工具!
当然可以换其他图片:
部分代码:
RUN=1;
while (RUN==1)
%vstupne udaje row a column faktoru
prompt = {'row (0-5%):','column (0-5%):'};
dlg_title = 'Enter values for a median filter:';
num_lines = 1;
def = {'2','2'};
answer = inputdlg(prompt,dlg_title,num_lines,def);
if (isempty(answer))
return;
end
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
if (M1>=0 && M1<=5 && M2>=0 && M2<=5)
RUN = 0;
end
end
[~,~,D] = size(app.inputImage);
if D==3
w = waitbar(0, 'Median filtering ...');
% M1 = (M1 * mm);
% M2 = (M2 * nn);
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
hsize=[str2double(answer{1}) str2double(answer{2})];
app.inputImage_median_filter(:,:,1) = medfilt2(app.inputImage(:,:,1));
waitbar(1/3, w);
app.inputImage_median_filter(:,:,2) = medfilt2(app.inputImage(:,:,2));
waitbar(2/3, w);
app.inputImage_median_filter(:,:,3) = medfilt2(app.inputImage(:,:,3));
app.inputImage = app.inputImage_median_filter;
app.imageList{end+1} = app.inputImage;
imshow(app.inputImage_median_filter, 'Parent', app.modifiedImageAxes);
close(w);
else
w = waitbar(0, 'Median filtering ...');
% M1 = (M1 * mm);
% M2 = (M2 * nn);
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
hsize=[str2double(answer{1}) str2double(answer{2})];
app.inputImage_median_filter = medfilt2(app.inputImage);
app.inputImage = app.inputImage_median_filter;
app.imageList{end+1} = app.inputImage;
imshow(app.inputImage_median_filter, 'Parent', app.modifiedImageAxes);
close(w);
end
RUN=1;
while (RUN==1)
%vstupne udaje row a column faktoru
prompt = {'row (0-5%):','column (0-5%):'};
dlg_title = 'Enter values for a median filter:';
num_lines = 1;
def = {'2','2'};
answer = inputdlg(prompt,dlg_title,num_lines,def);
if (isempty(answer))
return;
end
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
if (M1>=0 && M1<=5 && M2>=0 && M2<=5)
RUN = 0;
end
end
[~,~,D] = size(app.inputImage);
if D==3
w = waitbar(0, 'Median filtering ...');
% M1 = (M1 * mm);
% M2 = (M2 * nn);
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
hsize=[str2double(answer{1}) str2double(answer{2})];
app.inputImage_median_filter(:,:,1) = medfilt2(app.inputImage(:,:,1));
waitbar(1/3, w);
app.inputImage_median_filter(:,:,2) = medfilt2(app.inputImage(:,:,2));
waitbar(2/3, w);
app.inputImage_median_filter(:,:,3) = medfilt2(app.inputImage(:,:,3));
app.inputImage = app.inputImage_median_filter;
app.imageList{end+1} = app.inputImage;
imshow(app.inputImage_median_filter, 'Parent', app.modifiedImageAxes);
close(w);
else
w = waitbar(0, 'Median filtering ...');
% M1 = (M1 * mm);
% M2 = (M2 * nn);
M1 = str2double(answer{1})/100;
M2 = str2double(answer{2})/100;
hsize=[str2double(answer{1}) str2double(answer{2})];
app.inputImage_median_filter = medfilt2(app.inputImage);
app.inputImage = app.inputImage_median_filter;
app.imageList{end+1} = app.inputImage;
imshow(app.inputImage_median_filter, 'Parent', app.modifiedImageAxes);
close(w);
end
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]黄文慧.图像处理并行编程方法的研究与应用[D].华南理工大学[2023-09-27].DOI:CNKI:CDMD:2.1013.150589.
[2]李同钧.支持遥感图像处理与分析的数据库系统应用与研究[D].中国科学技术大学,2005.DOI:10.7666/d.y731070.
[3]苏强.医学图像分割的若干算法研究及相应图像处理软件的设计开发[D].北京师范大学[2023-09-27].