基于直方图的图像增强系统实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.4.2直方图均衡化
实现图4.8的直方图均衡化:先点“选取图像”选择一张图片,然后再点“直方图均衡化”实现的结果如图4.9,直方图对比如图4.10、4.11所示:
实现所对应的程序如下:
function pushbutton 10_Callback(hObject,eventdata,handles)
global img_src;
global IMAGE;
if img_src= =0
msgbox(‘请先打开一幅图像’,‘错误’,‘error’);
else
flag=isrgb(img_src);
if flag= =0;
I1=histeq(img_src);
figure;
subplot(221);imshow(img_src);title(‘原图像’);subplot(222);imhist(img_src);title(‘原直方图’);subplot(223);imshow(I1);title(‘均衡化后的图像’);subplot(224);imhist(I1);title(‘均衡化后的直方图’);else
IMAGE=rgb2gray(img_src);
I1=histeq(IMAGE);
figure;
subplot(221);imshow(IMAGE);title(‘原图像’);
subplot(222);imhist(IMAGE);title(‘原直方图’);
subplot(223);imshow(I1);title(‘均衡化后的图像’);
subplot(224);imhist(I1);title(‘均衡化后的直方图’);
end
end
4.4.3 直方图规定化
实现图4.8的直方图规定化:先点“选取图像”选择一张图片,然后再点“直方图规定化”实现的结果如图4.13,直方图对比如图4.14、4.15所示:
实现所对应的程序如下:
function pushbutton23_Callback(hObject,eventdata,handles)
global img_src;
global IMAGE;
if img_src= =0
msgbox(‘请先打开一幅图像’,‘错误’,‘error’); else
fl=isrgb(img_src);
if fl= =0;
I=img_src;
[M,N]=size(I);
for i=1:8:257
counts(i)=i;
end
Q=img_src;
N=histeq(Q,counts);
figure
subplot(221);imshow(img_src);title(‘原图像’);subplot(222);imhist(img_src);title(‘原直方图’);subplot(223);imshow(N);title(‘均衡化后的图像’);subplot(224);imhist(N);title(‘均衡化后的直方图’);axis([0 260 0 5000]);
else
IMAGE=rgb2gray(img_src);
I=IMAGE
[M,N]=size(I);
for i=1:8:257
counts(i)=i;
end
Q=IMAGE;
N=histeq(Q,counts);
figure
subplot(221);imshow(img_src);title(‘原图像’);subplot(222);imhist(img_src);title(‘原直方图’);subplot(223);imshow(N);title(‘规定化后的图像’);subplot(224);imhist(N);title(‘规定化后的直方图’);
end
end
4.4.4 灰度反转
实现图4.8的灰度反转:先点“选取图像”选择一张图片,然后再点“灰度反转”实现的结果对比如图4.16、4.17所示:
实现所对应的程序如下:
function pushbutton25_Callback (hObject,eventdata,handles)
global img_src;
global IMAGE;
IMAGE=double(img_src);
IMAGE=256_l_IMAGE;
IMAGE=uint8(IMAGE);
axes(handles.axes_dst);
imshow(IMAGE);
4.4.5 边缘提取
实现图4.8的边缘提取。先点“选取图像”选择一张图片,然后再点“边缘提取”实现的结果对比如图4.18所示:
实现所对应的程序如下:
function pushbutton19_Callback(hObject,eventdata,handles)
global img_src;
global IMAGE;
IMAGE=0;
if img_src= =0%
msgbox(‘请先打开一幅图像’‘错误’‘error’);
else
fl=isrgb(img_src);
if fl= =0;
IMAGE=edge(img_src, ‘sobel’) ;
axes(handles.axes_dst);
imshow(IMAGE);
else
IMAGE=edge(rgb2gray(img_src), ‘sobel’);
axes(handles.axes_dst);
imshow(IMAGE);
end
end