天天看點

【圖像處理基礎】基于matlab GUI圖像局部放大【含Matlab源碼 1016期】

二、數字圖像處理簡介

圖像處理基礎教程連結

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 GUI圖像局部放大【含Matlab源碼 1016期】

五、matlab版本及參考文獻

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

繼續閱讀