MATLAB课程设计--GUI图像处理 下载本文

实现程序如下:

function uipanel7_SelectionChangeFcn(hObject, eventdata, handles) %图像翻转

% hObject handle to uipanel7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) str=get(hObject,'string'); axes(handles.axes2); global T switch str

case '左右翻转' T=handles.img; f=fliplr(handles.img); imshow(f); handles.img=f;

guidata(hObject,handles); case '上下翻转' T=handles.img;

f=flipud(handles.img); imshow(f); handles.img=f;

guidata(hObject,handles);

29 / 52

end

程序关键部分:通过f=fliplr(handles.img); f=flipud(handles.img);分别实现左右镜像翻转与上下镜像翻转。

(2)图像旋转。

实现图像的逆时针旋转任意角度。

实现程序段如下:

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) global T

axes(handles.axes2); T=getimage;

prompt={'旋转角度:'};

30 / 52

defans={'0'};

p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1});

f=imrotate(handles.img,p1,'bilinear','crop'); imshow(f); handles.img=f;

guidata(hObject,handles);

关键部分:通过p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1}); 来输入旋转参数。

通过函数f=imrotate(handles.img,p1,'bilinear','crop');实现翻转。

4.12特殊处理

(1)底片效果。将图像变为底片,并显示。

实现程序如下:

% --- Executes on button press in pushbutton12.

function pushbutton12_Callback(hObject, eventdata, handles) % hObject handle to pushbutton12 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T

axes (handles.axes2); T=getimage;

f=imcomplement(handles.img); %图像取反′

31 / 52

imshow(f); handles.img=f;

guidata(hObject,handles);

程序段关键部分:通过f=imcomplement(handles.img);实现图像取反,形成底片效果。

(2)边缘信息。采取图像的边缘信息。

实现程序段如下:

% --- Executes on button press in pushbutton16.

function pushbutton16_Callback(hObject, eventdata, handles) % hObject handle to pushbutton16 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global T

axes(handles.axes2); T=getimage;

f=edge(handles.img,'canny'); imshow(f); handles.img=f;

guidata(hObject,handles);

程序关键部分:通过f=edge(handles.img,'canny');是实现边缘信息的获取。

32 / 52