实验1 图像增强算法
一、实验目的
1、了解在空域图像增强中常用的典型算法:线性对比度展宽、直方图均衡化。使学生通过对图像采用线性对比度展宽、直方图均衡化的方法进行处理,获得图像画质的改善。
2、掌握线性对比度展宽方法的工作原理和算法实现。
3、掌握直方图均衡化方法的工作原理和算法实现。
二、实验内容
1、实现线性对比度展宽算法。
测试代码:
fa = 5;fb = 30;
ga = 80;gb = 100;
ImPath='.\im\pict1.png';
J=ContrastWidening(ImPath,fa,fb,ga,gb);
figure,imshow(ImPath);
figure,imshow(J);
处理流程如下:
(备注:将执行正确的代码粘贴在此处,核心代码要求有注释)
function J=ContrastWidening(ImPath,fa,fb,ga,gb)
% fa = 5;fb = 30;
% ga = 80;gb = 100;
% ImPath='.\im\pict1.png';
% J=ContrastWidening(ImPath,fa,fb,ga,gb);
% figure,imshow(ImPath);
% figure,imshow(J);
F=imread(ImPath);
[m,n,c]=size(F)
if(c>1)
F=rgb2gray(F);
end
G=zeros(m,n);
k1=ga/fa;
k2=(gb-ga)/(fb-fa);
k3=(255-gb)/(255-fb);
m=round(m);
n=round(n)
for i=[1:m]
for j=[1:n]
if(F(i,j)<fa)
G(i,j)=k1*F(i,j);
elseif(F(i,j)>=fa&&F(i,j)<fb)
G(i,j)=k2*(F(i,j)-fa)+ga;
else
G(i,j)=k3*(F(i,j)-fb)+gb;
end
end
end
J=uint8(G)
end
2、实现灰度图像的直方图均衡化算法
测试代码:
F = imread('.\im\pict1.png');
[G]=imhisteq(F);
figure,imshow(G);
处理流程如下:
(备注:将执行正确的代码粘贴在此处,核心代码要求有注释)
function [G]=imhisteq(F)
[M,N,C]=size(F);
if(C>1)
F=rgb2gray(F);
end
h=imhist(F,256)';
hs=h/(M*N);
hp0=cumsum(hs);
hp1=hp0*255;
hp1(1)=0;
hp2=round(hp1);
F=double(F);
for i=[1:M]
for j=[1:N]
G(i,j)=hp2(F(i,j)+1);
end
end
G=uint8(F);
end
3、实现彩色图像的直方图均衡化算法(算法流程可以参考灰度图像的直方图均衡化算法)。
参考处理图像: f11.jpg、f13.jpg
测试代码:
F=imread('.\im\f11.jpg');
[G] = imhisteq_C(F);
figure,imshow(F);figure,imshow(G);
(备注:将执行正确的代码粘贴在此处,核心代码要求有注释)
function [G]=imhisteq_C(F)
[M,N,C]=size(F);
for k=[1:C]
F2=F(:,:,k);
h=imhist(F2,256)';
hs=h/(M*N);
hp0=cumsum(hs);
hp1=hp0*255;
hp1(1)=0;
hp2=round(hp1);
F2=double(F2);
for i=[1:M]
for j=[1:N]
G(i,j,k)=hp2(F2(i,j)+1);
end
end
end
G=uint8(G);
end