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

handles.img=f;

guidata(hObject,handles); case'减弱' T=getimage;

prompt={'输入参数:'}; defans={'1'};

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

f=imdivide(handles.img,p1); imshow(f); handles.img=f;

guidata(hObject,handles); end

该程序段主要通过 f=immultiply(handles.img,p1); p=inputdlg(prompt,'input',1,defans); 分别实现图像对比度的增强与减弱。

4.4 用鼠标选取图像感兴趣区域,显示和保存该选择区域。

通过imcrop(x)函数来实现对图片某一区域的截取,截取的图片在右框中显示。结合“保存为?”,可把截图处理后的图片保存在指定路径。

实现程序段如下:

13 / 52

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

axes(handles.axes2); T=getimage;

x=imcrop(handles.img); %截图 imshow(x); handles.img=x;

guidata(hObject,handles);

4.5 图像转化为灰度图像。

由于在matlab中较多的图像处理函数支持对灰度图像进行处理,故对图像进行灰度转化十分必要。可利用rgb2gray(X)函数对其他图像进行灰度图像的转化。 转化实例如下:

实现程序段如下:

% --- Executes on button press in radiobutton16.

function radiobutton16_Callback(hObject, eventdata, handles) % hObject handle to radiobutton16 (see GCBO)

14 / 52

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

% Hint: get(hObject,'Value') returns toggle state of radiobutton16 global T

axes(handles.axes2); T=getimage;

x=rgb2gray(handles.img); %RGBí???×a???a?ò?èí??? imshow(x); handles.img=x;

guidata(hObject,handles);

4.6对图像进行放大和缩小整数倍的操作。

通过imresize(X,n,mode)函数对图像X进行放大或者缩小。N放大缩小倍数,mode为采用的方式。

通过处理后可发现保存的图片的比原图放大了(缩小了)。 实现的程序段如下:

function uipanel9_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to uipanel9 (see GCBO)

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

str=get(hObject,'string'); axes(handles.axes2); switch str

case'最近邻插值' T=getimage;

prompt={'输入参数:'}; defans={'2'};

15 / 52

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

f=imresize(handles.img,p1,'nearest'); imshow(f); handles.img=f;

guidata(hObject,handles);

case'双线性插值' T=getimage;

prompt={'输入参数:'}; defans={'1'};

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

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

guidata(hObject,handles); end

4.7图像直方图统计和直方图均衡。

(1)通过histeq(X)函数实现直方图均衡。

因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。

16 / 52