直方图均衡法matlab源码

作者在 2008-06-11 00:35:07 发布以下内容
%图像增强,直方图均衡法 2008/5/10
%image_1 原图像;image_2执行直方图均衡化后的图像
image_1=imread('lena.bmp');
image_2=histeq(image_1);%执行直方图均衡化
imshow(image_1);
figure,imshow(image_2);
figure,imhist(image_1);%显示原图像直方图
figure,imhist(image_2);%显示现在图像直方图
图像 | 阅读 13460 次
文章评论,共3条
vfdff(作者)
2008-06-11 00:37
1
%上机题1-1<br />
clear all<br />
close all<br />
<br />
%第一小问<br />
figure(1)<br />
%产生图像f1(x)(128*128)<br />
f1(128,128) = 0;<br />
f1(50:78,62:66) = 255;&nbsp;&nbsp;&nbsp; %设中白色域<br />
%显示f1原图<br />
subplot(2,2,1);<br />
imshow(f1);<br />
grid on<br />
title('Original Image f1','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('X-Axis');<br />
ylabel('Y-Axis');<br />
%gtext('开始');<br />
%FFT of f1<br />
fft_f1 = fft2(f1,128,128);<br />
fft_f1 = abs(fft_f1);<br />
%显示f1频谱<br />
subplot(2,2,2);<br />
imshow(fft_f1,[]);<br />
grid on<br />
title('Spectrum Image f1','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%f1频谱中心化<br />
fft_shift_f1 = fftshift(fft_f1);<br />
%显示f1中心化频谱<br />
subplot(2,2,3);<br />
imshow(fft_shift_f1,[]);<br />
grid on<br />
title('Spectrum Shift Image f1','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%计算f1中心化对数谱<br />
fft_f1 = fftshift(fft_f1);<br />
fft_log_f1 = abs(fft_f1);<br />
fft_log_f1 = log(1+fft_log_f1);<br />
%显示f1中心化对数谱<br />
subplot(2,2,4);<br />
imshow(fft_log_f1,[]);<br />
grid on<br />
title('Spectrum Shift Log Image f1','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
<br />
%第二小问<br />
%产生图像f2(x)(128*128)<br />
for i=1:1:128<br />
&nbsp;&nbsp;&nbsp; for j=1:1:128<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factor = (-1)^(i+j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f2(i,j) = f1(i,j)*factor;<br />
&nbsp;&nbsp;&nbsp; end<br />
end<br />
%显示f2原图<br />
figure(2)<br />
subplot(2,2,1);<br />
imshow(f2);<br />
grid on<br />
title('Original Image f2','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('X-Axis');<br />
ylabel('Y-Axis');<br />
%gtext('开始');<br />
%FFT of f2<br />
fft_f2 = fft2(f2,128,128);<br />
fft_f2 = abs(fft_f2);<br />
%显示f2频谱<br />
subplot(2,2,2);<br />
imshow(fft_f2,[]);<br />
grid on<br />
title('Spectrum Image f2','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%f2频谱中心化<br />
fft_shift_f2 = fftshift(fft_f2);<br />
%显示f2中心化频谱<br />
subplot(2,2,3);<br />
imshow(fft_shift_f2,[]);<br />
grid on<br />
title('Spectrum Shift Image f2','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%计算f2中心化对数谱<br />
fft_f2 = fftshift(fft_f2);<br />
fft_log_f2 = abs(fft_f2);<br />
fft_log_f2 = log(1+fft_log_f2);<br />
%显示f2中心化对数谱<br />
subplot(2,2,4);<br />
imshow(fft_log_f2,[]);<br />
grid on<br />
title('Spectrum Shift Log Image f2','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
<br />
%第三小问<br />
%产生图像f1(x)(128*128)<br />
f3 = imrotate (f2, 135);<br />
%显示f3原图<br />
figure(3)<br />
subplot(2,2,1);<br />
imshow(f3);<br />
grid on<br />
title('Original Image f3','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('X-Axis');<br />
ylabel('Y-Axis');<br />
%gtext('开始');<br />
%FFT of f3<br />
fft_f3 = fft2(f3,128,128);<br />
fft_f3 = abs(fft_f3);<br />
%显示f3频谱<br />
subplot(2,2,2);<br />
imshow(fft_f3,[]);<br />
grid on<br />
title('Spectrum Image f3','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%f3频谱中心化<br />
fft_shift_f3 = fftshift(fft_f3);<br />
%显示f3中心化频谱<br />
subplot(2,2,3);<br />
imshow(fft_shift_f3,[]);<br />
grid on<br />
title('Spectrum Shift Image f3','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar<br />
%计算f3中心化对数谱<br />
fft_f3 = fftshift(fft_f3);<br />
fft_log_f3 = abs(fft_f3);<br />
fft_log_f3 = log(1+fft_log_f3);<br />
%显示f3中心化对数谱<br />
subplot(2,2,4);<br />
imshow(fft_log_f3,[]);<br />
grid on<br />
title('Spectrum Shift Log Image f3','Color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
colorbar
vfdff(作者)
2008-06-11 00:38
2
%上机题1-2 <br />
clear all<br />
clear all<br />
<br />
%读入图像<br />
f_lena=imread('lena.tif');<br />
<br />
%显示lena原图<br />
figure(1)<br />
subplot(2,2,1);<br />
imshow(f_lena);<br />
grid on<br />
title('Original Image of Lena.tif','color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('X-Axis');<br />
ylabel('Y-Axis');<br />
<br />
%FFT and Shift-FFT of f_lena<br />
fft_lena = fft2(f_lena);<br />
fft_lena_shift = fftshift(fft_lena);<br />
fft_lena_shift= abs(fft_lena_shift);<br />
<br />
%显示lena中心化对数频谱图<br />
subplot(2,2,2);<br />
%imhist(f_lena);<br />
imshow(log(1+abs(fft_lena_shift)),[]);<br />
grid on<br />
title('Spectrum Shift Log Image of Lena.tif','color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
<br />
%ILPF of lena&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
for i = 1:1:256<br />
&nbsp;&nbsp;&nbsp; for j = 1:1:256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (i^2+j^2)&lt;=30^2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fft_lena_ILPF(i,j)=fft_lena(i,j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fft_lena_ILPF(i,j)=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp; end<br />
end<br />
<br />
%显示lena_ILPF滤波结果图<br />
subplot(2,2,3);<br />
ifft_lena_ILPF = ifft2(fft_lena_ILPF);<br />
imshow(ifft_lena_ILPF,[]);<br />
%ifft_lena_ILPF = uint8(ifft_lena_ILPF);<br />
%imhist(ifft_lena_ILPF);<br />
%imshow(ifft_lena_ILPF,[]);<br />
grid on<br />
title('Spectrum Shift Log Image of Lena.tif after ILPF','color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');<br />
<br />
%IHPF of lena&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
for i = 1:1:256<br />
&nbsp;&nbsp;&nbsp; for j = 1:1:256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((i-128)^2+(j-128)^2)&gt;=80^2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fft_lena_IHPF(i,j)=fft_lena(i,j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fft_lena_IHPF(i,j)=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp; end<br />
end<br />
<br />
%显示lena_IHPF频谱图<br />
subplot(2,2,4);<br />
ifft_lena_IHPF = ifft2(fft_lena_IHPF);<br />
imshow(ifft_lena_IHPF,[]);<br />
%ifft_lena_IHPF = uint8(ifft_lena_IHPF);<br />
%imhist(ifft_lena_IHPF);<br />
%imshow(ifft_lena_IHPF,[]);<br />
grid on<br />
title('Spectrum Shift Log Image of Lena.tif after IHPF','color','r');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%设置标题<br />
xlabel('U-Axis');<br />
ylabel('V-Axis');
夜风依旧
2008-06-12 11:01
3
好东西!
游客请输入验证码
浏览1940879次