基于直方图的图像增强系统实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档