二、數字圖像處理簡介
圖像處理基礎教程連結
1 【基礎教程】基于matlab圖像處理(表示方法+資料結構+基本格式+類型轉換+讀取+點運算+代數運算)【含Matlab源碼 834期】
2 【基礎教程】基于matlab圖像處理(讀寫+顯示+運算+轉換+變換+增強+濾波+分析+統計)【含Matlab源碼 144期】
3 【基礎教程】基于matlab圖像增強+複原+分割【含Matlab源碼 056期】
三、部分源代碼
function varargout = piczoom(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @piczoom_OpeningFcn, ...
'gui_OutputFcn', @piczoom_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function piczoom_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
%m為圖檔的縱向像素數,n為圖檔的橫向像素數,mapData為修正後的圖像資料
global m n mapData
%讀取圖檔到主坐标軸axes1
axes(handles.axes1);
cData = imread('pic1.jpg');
hImage = image(cData);
axis off;
%設定目前坐标軸為右上角的小坐标軸axes2
axes(handles.axes2);
%初始化全局變量m和n
m = size(cData, 1);
n = size(cData, 2);
%擴充圖檔資料,使得滑鼠在圖檔邊緣附近時,不至于出錯
mapData = 255 * ones(m+40, n+40, size(cData, 3), 'uint8');
mapData(21:m+20, 21:n+20, :) = cData;
%将圖檔資料存到handles結構體中
handles.hImage = hImage;
%更新handles
guidata(hObject, handles);
function varargout = piczoom_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
global m n mapData
%擷取滑鼠目前所在的點
pos = get(handles.axes1, 'CurrentPoint');
posX = pos(1, 1);
posY = pos(1, 2);
%若滑鼠在坐标軸區域内,更新小坐标軸axes2
四、運作結果
五、matlab版本及參考文獻
1 matlab版本
2014a
2 參考文獻
[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.
[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.
[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.