马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
数字图像处理实验
图 像 处 理 实 验(一)直 方 图
灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
1、 灰度直方图
(1) 计算出一幅灰度图像的直方图
clear; close all; I=imread('004.bmp');
imhist(I); title('实验一(1) 直方图');
(2) 对灰度图像进行简单的灰度线形变换,
figure
subplot(2,2,1); imshow(I); title('试验2-灰度线性变换');
subplot(2,2,2); histeq(I);
(3) 看其直方图的对应变化和图像对比度的变化。
原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]
公式: g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)
figure
subplot(2,2,1); imshow(I); title(' 实验一(3)用 g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 ');
subplot(2,2,2); J=imadjust(I,[0.3,0.7],[0,1],1); imshow(J)
subplot(2,2,3); imshow(I)
subplot(2,2,4); J=imadjust(I,[0.5 0.8],[0,1],1); imshow(J)
(4) 图像二值化 (选取一个域值,(5) 将图像变为黑白图像)
figure
subplot(2,2,1); imshow(I); title(' 实验一(4)图像二值化 ( 域值为150 ) ');
J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255;
subplot(2,2,2); imshow(I)
clc; I=imread('14499.jpg'); bw=im2bw(I,0.5);%选取阈值为0.5
figure; imshow(bw) %显示二值图象
图象处理变换(二)
1. 傅立叶变换
熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布.
2. 离散余弦变换
熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.
% 图象的FFT变换
clc;
I=imread('005.bmp');
subplot(1,2,1); imshow(I); title('原图');
subplot(1,2,2); imhist(I); title('直方图'); colorbar;
J=fft2(I);
figure;
subplot(1,2,1); imshow(J); title('FFT变换结果');
subplot(1,2,2); K=fftshift(J); imshow(K); title('零点平移');
figure;
imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;
title('系数分布图');
% 图象的DCT变换
RGB=imread('005.bmp');
figure;
subplot(1,2,1);imshow(RGB; title('彩色原图');
a=rgb2gray(RGB;
subplot(1,2,2); imshow(a); title('灰度图');
figure;
b=dct2(a);
imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT变换结果');
figure;
b(abs(b)<10)=0;
% idct
c=idct2(b)/255;
imshow(c);
title('IDCT变换结果');
图象处理变换(三)小波变换
实验内容: 熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图象作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.
程序如下:
clc; close all; clear
a=imread('005.bmp');
subplot(1,2,1); imshow(a); title('原始图象');
subplot(1,2,2); I=rgb2gray(a); imshow(I); title('原始图象的灰度图');
% 进行二维小波变换
[a,b] = wavedec2(I, 2, 'bior3.7');
% 提取各层低频信息
figure;
c = appcoef2( a, b, 'bior3.7', 1 );
subplot(1,2,1); imshow(c, []); title('一层小波变换结果');
d = appcoef2( a, b, 'bior3.7', 2 );
subplot(1,2,2); imshow(d, []); title('二层小波变换结果');
[ 本帖最后由 ChaChing 于 2010-1-1 16:42 编辑 ] |