二、图像处理简介

1 数字图像处理及matlab实现知识点总结1-4

2 数字图像处理及matlab实现知识点总结 5-10

三、部分源代码

function varargout = beautiful2(varargin)% BEAUTIFUL2 M-file for beautiful2.fig%      BEAUTIFUL2, by itself, creates a new BEAUTIFUL2 or raises the existing%      singleton*.imaqhwinfo%%      H = BEAUTIFUL2 returns the handle to a new BEAUTIFUL2 or the handle to%      the existing singleton*.%%      BEAUTIFUL2('CALLBACK',hObject,eventData,handles,...) calls the local%      function named CALLBACK in BEAUTIFUL2.M with the given input arguments.%%      BEAUTIFUL2('Property','Value',...) creates a new BEAUTIFUL2 or raises the%      existing singleton*.  Starting from the left, property value pairs are%      applied to the GUI before untitled_OpeningFunction gets called.  An%      unrecognized property name or invalid value makes property application%      stop.  All inputs are passed to beautiful2_OpeningFcn via varargin.%%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one%      instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help beautiful2% Last Modified by GUIDE v2.5 22-Apr-2021 10:13:32% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',       mfilename, ...                   'gui_Singleton',  gui_Singleton, ...                   'gui_OpeningFcn', @beautiful2_OpeningFcn, ...                   'gui_OutputFcn',  @beautiful2_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{:});else    gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before beautiful2 is made visible.function beautiful2_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject    handle to figure% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)% varargin   command line arguments to beautiful2 (see VARARGIN)% Choose default command line output for beautiful2handles.output = hObject;% Update handles structureguidata(hObject, handles);choose=importdata('choose.jpg' );beauty=importdata('beauty.jpg' );save=importdata('save.jpg' );%camera=importdata('camera.jpg' );%shoot=importdata('shoot.jpg' );set(handles.pushbutton1,'CDATA',choose);set(handles.pushbutton2,'CDATA',beauty);set(handles.pushbutton3,'CDATA',save);%set(handles.pushbutton4,'CDATA',camera);%set(handles.pushbutton5,'CDATA',shoot);% UIWAIT makes beautiful2 wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = beautiful2_OutputFcn(hObject, eventdata, handles) %设置背景% varargout  cell array for returning output args (see VARARGOUT);% hObject    handle to figure% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure%设置背景varargout{1} = handles.output;backgroundImage = importdata('background3.jpg'); axes(handles.axes3);  image(backgroundImage); axis off;%摄像头实时画面global vid;vid = videoinput('winvideo');% --- Executes during object creation, after setting all properties.function text1_CreateFcn(hObject, eventdata, handles)% hObject    handle to text1 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    empty - handles not created until after all CreateFcns called% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)  %读取图片% hObject    handle to pushbutton1 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');if isequal(filename,0)    -disp('Users Selected Canceled');elsestr=[pathname filename];im = imread(str);axes(handles.axes1);imshow(im);axes(handles.axes2);imshow(im);end;% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)%美颜% hObject    handle to pushbutton2 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)axes(handles.axes2);img=getimage;I= double(img);IM1=RF(I,30,100); % RF滤波IM2=IM1-I + 128;IM3=imfilter(IM2,fspecial('gaussian',[3 3],100));%高斯模糊opacity = 40;%透明度IM = (I*(100 - opacity)+(I+2*IM3 - 256)*opacity)/100;%合成IM = imfilter(IM,fspecial('gaussian',[1 1],10));%再次高斯滤波 MH=IM; axes(handles.axes2);imshow(IM);guidata(hObject,handles);% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)%保存图片% hObject    handle to pushbutton3 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)[filename,pathname]=uiputfile({'*.bmp';},'保存图片','Undefined.bmp');  % Error checking.if ~isa(obj, 'imaqdevice')    error(message('imaq:getsnapshot:invalidType'));elseif (length(obj) > 1)    error(message('imaq:getsnapshot:OBJ1x1'));elseif ~isvalid(obj)    error(message('imaq:getsnapshot:invalidOBJ'));end% Get single frame.tryend;      if exist('joint_image', 'var') && ~isempty(joint_image)        J = double(joint_image);            if (size(I,1) ~= size(J,1)) || (size(I,2) ~= size(J,2))            error('Input and joint images must have equal width and height.');        end    else        J = I;    end        [h w num_joint_channels] = size(J);    %% Compute the domain transform (Equation 11 of our paper).    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % Estimate horizontal and vertical partial derivatives using finite    % differences.    dIcdx = diff(J, 1, 2);    dIcdy = diff(J, 1, 1);        dIdx = zeros(h,w);    dIdy = zeros(h,w);

五、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)