一、数字图像处理简介

图像处理基础教程链接
1 【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码 834期】
2 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
3 【基础教程】基于matlab图像增强+复原+分割【含Matlab源码 056期】

二、部分源代码

function varargout = data_process(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @data_process_OpeningFcn, ...'gui_OutputFcn',  @data_process_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
endfunction data_process_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;guidata(hObject, handles);function varargout = data_process_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;function zoom_in_Callback(~, ~, ~)
toolsmenufcn ZoomInfunction load_dir_Callback(hObject, ~, handles)
strPath = uigetdir('C:\Documents and Settings\Administrator\桌面', '选择目录');
if ~ischar(strPath)return
end
setappdata(hObject, 'strPath', strPath);  %当前图片目录
str_jpg = dir([strPath '\*.jpg']);
str_bmp = dir([strPath '\*.bmp']);
str_gif = dir([strPath '\*.gif']);
str1 = [str_jpg; str_bmp; str_gif];
strAllPath = struct2cell(str1);
setappdata(hObject, 'strAllPath', strAllPath);  %当前所有图片的信息
if ~isempty(str1)n = find(cell2mat(strAllPath(4, :)) == 1);if ~isempty(n)strAllPath(:, n) = [];end
end
if ~isempty(strAllPath)index = 1;set(hObject, 'UserData', index);  %当前图片的索引值set(handles.pic_name, 'string', strAllPath{1, 1})M = imread(fullfile(strPath, strAllPath{1, index}));imshow(M);h = findall(handles.pic_menu, 'type', 'uimenu');delete(h);clear h;for i = 1 : size(strAllPath, 2)uimenu(handles.pic_menu, 'label', strAllPath{1,i}, 'position', i,...'callback', {@menu_callback, handles});endset(findobj('Type', 'uimenu', 'Position', index), 'Checked', 'on');set(findobj(gcf, 'Type', 'uicontrol', 'Enable', 'inactive'), 'Enable', 'on');set(findobj(gcf, 'Type', 'uimenu', 'Enable', 'off'), 'Enable', 'on');
endfunction menu_callback(obj, ~, handles)
indexPre = get(handles.load_dir, 'userData');
set(findobj('Type', 'uimenu', 'Position', indexPre), 'Checked', 'off');
index = get(obj, 'position');
set(handles.load_dir, 'userData', index);
set(obj, 'Checked', 'on');
strAllPath = getappdata(handles.load_dir, 'strAllPath');
strPath = getappdata(handles.load_dir, 'strPath');
cla;
M = imread(fullfile(strPath, strAllPath{1, index}));
imshow(M);function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
if (~get(handles.zoom_in, 'Value')) && (~get(handles.pic_crop, 'Value'))pos=get(handles.axes1,'currentpoint');xLim=get(handles.axes1,'xlim');yLim=get(handles.axes1,'ylim');if (pos(1,1)>=xLim(1)&&pos(1,1)<=xLim(2))&&(pos(1,2)>=yLim(1)&&pos(1,2)<=yLim(2))set(gcf,'Pointer','hand')elseset(gcf,'Pointer','arrow')end
endfunction figure1_WindowButtonDownFcn(hObject, eventdata, handles)
if strcmp(get(gcf,'Pointer'),'hand') && strcmp(get(handles.picNext, 'Enable'), 'on')if strcmp(get(gcf,'SelectionType'), 'alt')pos = get(gcf, 'currentpoint');set(handles.pic_menu, 'position',[pos(1,1) pos(1,2)], 'visible', 'on')elseif strcmp(get(gcf,'SelectionType'), 'normal')picNext_Callback(hObject, eventdata, handles);end
endfunction picPre_Callback(~, ~, handles)
strAllPath = getappdata(handles.load_dir, 'strAllPath');
strPath = getappdata(handles.load_dir, 'strPath');
indexPre = get(handles.load_dir, 'userData');
if indexPre > 1index = indexPre - 1;
elseindex = size(strAllPath, 2);
end
set(handles.load_dir, 'userData', index);
set(findobj(gcf, 'Type', 'uimenu', 'Position', indexPre), 'Checked', 'off');
set(findobj(gcf, 'Type', 'uimenu', 'Position', index), 'Checked', 'on');
cla;
M = imread(fullfile(strPath, strAllPath{1, index}));
imshow(M);
set(handles.pic_name, 'string', strAllPath{1, index});function picNext_Callback(~, ~, handles)
strAllPath = getappdata(handles.load_dir, 'strAllPath');
strPath = getappdata(handles.load_dir, 'strPath');
indexPre = get(handles.load_dir, 'userData');
if indexPre < size(strAllPath, 2)index = indexPre + 1;
elseindex = 1;
end
set(handles.load_dir, 'userData', index);
set(findobj(gcf, 'Type', 'uimenu', 'Position', indexPre), 'Checked', 'off');
set(findobj(gcf, 'Type', 'uimenu', 'Position', index), 'Checked', 'on');
cla;
M = imread(fullfile(strPath, strAllPath{1, index}));
imshow(M);
set(handles.pic_name, 'string', strAllPath{1, index});
function zoom_in_menu_Callback(hObject, eventdata, handles)
val = get(handles.zoom_in, 'Value');
set(handles.zoom_in, 'Value', ~val);
zoom_in_Callback(hObject, eventdata, handles);function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
switch eventdata.Keycase {'pageup', 'leftarrow', 'uparrow'}picPre_Callback(handles.picPre, eventdata, handles);case {'pagedown', 'rightarrow', 'downarrow'}picNext_Callback(handles.picNext, eventdata, handles);
end

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. 2015,37(06)

【图像处理基础】基于matlab GUI图片浏览器【含Matlab源码 1015期】相关推荐

  1. 【信号处理】基于Matlab GUI数字均衡器设计,源码附上

    [信号处理]基于Matlab GUI数字均衡器设计,源码附上 数字均衡器是一种常用于音频信号处理的技术,可以有效地补偿声音中的频率失真,提高音质.在这篇文章中,我们将介绍如何使用Matlab GUI进 ...

  2. 【过程控制】基于matlab GUI串级控制【含Matlab源码 2385期】

    ⛄一.简介 1 交互系统整体外观展示 该系统基于 MATLAB GUI 与 Simulink 联合开发, 实现对串级控制系统特性的研究与分析.学生在学习串级控 制有关知识后可使用该应用进行知识回顾.界 ...

  3. 【图像处理】基于分形插值算法实现换脸含Matlab源码

    1 简介 2 部分代码 function result = skin(Y,Cb,Cr)a = 25.39;b = 14.15;ecx = 1.72;ecy = 2.43;sita = 2.64;cx ...

  4. 【Kivy自学笔记】Python开发App必备!Kivy基础控件详解(含视频源码)

    文章目录 基础控件 窗口坐标系 尺寸(通用) 位置(通用) Python与kv文件如何实现互相访问(Kivy中的特殊关键字) Button 按钮 Label 标签 Image 图片 TextInput ...

  5. 很棒的图片浏览器代码,源码研究

    重要声明: 文章为原创,代码从网上扒下来,进行整合和Bug修复运用到自己的项目中或仿用户量超大的应用,比如微信.来往.美丽说.淘宝.豆瓣等等. 1. 引入了著名的Universalimageloade ...

  6. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  7. 【图像处理】基于matlab GUI多功能图像处理系统【含Matlab源码 1876期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理]基于matlab GUI多功能图像处理系统[含Matlab源码 1876期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  8. 【图像处理基础】基于matlab霍夫变换直线识别(拟合角平分线)【含Matlab源码 2575期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理基础]基于matlab霍夫变换直线识别(拟合角平分线)[含Matlab源码 2575期] 点击上面蓝色字体,直接付费下载,即可. ...

  9. 【图像去噪】基于matlab GUI butterworth+中值+维纳+小波图像去噪【含Matlab源码 520期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab GUI butterworth+中值+维纳+小波图像去噪[含Matlab源码 520期] 获取代码方式2: ...

  10. 【电力预测】基于matlab GUI灰色模型电力负荷预测【含Matlab源码 769期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [电力负荷预测]基于matlab GUI灰色模型电力负荷预测[含Matlab源码 769期] 获取代码方式2: 通过订阅紫极神光博客付费专 ...

最新文章

  1. 深度神经网络的分布式训练概述:常用方法和技巧全面总结
  2. iOS之从N个数里面取M个数的组合算法
  3. c语言字符屏幕,C语言字符屏幕函数 - 编程资料 - Powered 万人网络编程学院 bcxy.yinese.com...
  4. 数据库方面的操作示例
  5. JAXB注解 java 关于xml的注解,自动生成xml文件 - @XML***
  6. 使用Junit对Android应用进行单元测试
  7. arXiv上引用文章在bibtex下的引用格式
  8. scipy的安装教程
  9. 扫盲:什么是steam令牌验证器?哪些行为会触发steam交易限制
  10. 关于ssh整合后struts2拦截器不起作用(blog-1)
  11. Chrome 的人都需要知道的「神器」扩展:「油猴」使用详解
  12. emlog海报生成插件
  13. 上海国拍服务器位置,上海国拍系统的重大漏洞
  14. 虚拟现实的起源、趋势及应用
  15. python换照片底色_Python 利用OpenCV给照片换底色的示例代码
  16. 赵运泓: 12:3下周黄金行情走势分析
  17. 为什么App安装要做个性化
  18. 8个字说明什么是领导力
  19. java 解析m3u8的实例_使用java线程池批量下载m3u8。合并mp4.
  20. 2022年全球市场电视遥控器总体规模、主要生产商、主要地区、产品和应用细分研究报告

热门文章

  1. django 标签的使用
  2. Ubuntu 批量修改图片大小
  3. STM32L476应用开发之二:模拟量数据采集
  4. Repeater 控件的嵌套使用
  5. 新鲜出炉,Amazon SDE 面经(电面+Onsite)
  6. 图片垂直居中 和 float
  7. Android学习笔记---常用技巧(图片的旋转)
  8. 题目:[汪老师结婚]婚礼上的袭击
  9. 将2^n (n=1000000) 转化为10进制输出
  10. 深度学习:Imagenet Object Classification方法