数字图像处理实验报告-基于Matlab

数字图像处理实验报告-基于Matlab
数字图像处理实验报告-基于Matlab

华东师范大学电子工程系

2017.6

实验1:图像灰度级修正

【实验目的】

掌握常用的图像灰度级修正方法(灰度变换法和直方图均衡化),加深对直方图的理解。观察图像的增强效果,对灰度级修正前后的图像加以比较。

【实验内容】

1)编程实现图像的灰度变换,改变图像的输入、输出映射参数范围(线性拉伸和反比);

2)修改参数gamma值(大于、小于、等于1),观察处理结果;

3)对图像直方图作均衡化处理,显示均衡前后的图像及其直方图。

【实验代码】

original=imread('lena.bmp');

linstr=imadjust(original,[0.3 0.7],[0 1]);%线性拉伸

opposite=imadjust(original,[0 1],[1 0]); %反比

above=imadjust(original,[0 1],[0 1],2); %gamma>1

equal=imadjust(original,[0 1],[0 1],1); %gamma=1

below=imadjust(original,[0 1],[0 1],0.5); %gamma<1

subplot(3,3,1);imshow(original);title('原图像');

subplot(3,3,2);imshow(linstr);title('线性拉伸');

subplot(3,3,3);imshow(opposite);title('反比');

subplot(3,3,4);imshow(above);title('gamma>1');

subplot(3,3,5);imshow(equal);title('gamma=1');

subplot(3,3,6);imshow(below);title('gamma<1');

subplot(3,3,7);imhist(original);title('原图像直方图');

histequal=histeq(original);%对图像均衡化

subplot(3,3,8);imshow(histequal);title('均衡后的图像');

subplot(3,3,9);imhist(histequal);title('均衡图像的直方图');

axis([0 256 0 2000]);

【输出图像】

【实验思考】

根据以下图片以及实验结果可知gamma>1时图像整体变暗,

灰度级整体变小;gamma<1时图像整体变亮,灰度级整体变

小;而gamma=1时,图像维持不变。

实验2:图像的平滑滤波

【实验目的】

平滑的目的是减少噪声对图像的影响。掌握线性滤波和中值滤波两种最典型、最常用的图像平滑方法,对输出结果加以比较、加深理解。

【实验内容】

1)编写并调试窗口为3×3、5×5的平滑滤波函数;如[1 1 1;1 1 1 ;1 1 1]/9、[1 2 1;2 4 2;1 2 1]/16等)

2)编写并调试窗口为3×3、5×5的中值滤波函数。

3)比较均值滤波和中值滤波的优缺点,分析窗口尺寸对滤波结果的影响。附:可供参考的Matlab函数有imnoise、imfilter、medfilt2

【实验代码】

function fliter

I = imread('lena.bmp'); %原始图像读取

J = imnoise(I,'salt & pepper',0.02); %含噪图像加椒盐噪声

subplot(2,3,1);imshow(J);title('含噪图像');

Newbuf1=AverageFilter(J,256,256,3);%3×3标准平均,调用均值滤波函数

subplot(2,3,2);imshow(Newbuf1);title('3×3标准平均');

Newbuf2=AverageFilter(J,256,256,5);%5×5标准平均,调用均值滤波函数

subplot(2,3,3);imshow(Newbuf2);title('5×5标准平均');

W=[1 2 1;2 4 2;1 2 1]/16; %设置加权平均掩膜

Newbuf3=WeighFilter(J,W,256,256,3);%3×3加权平均,调用加权平均函数

subplot(2,3,4);imshow(Newbuf3);title('3×3加权平均');

Newbuf4=MedianFilter(J,256,256,3);%3×3中值滤波,调用中值滤波函数

subplot(2,3,5);imshow(Newbuf4);title('3×3中值滤波');

Newbuf5=MedianFilter(J,256,256,5);%5×5中值滤波,调用中值滤波函数

subplot(2,3,6);imshow(Newbuf5);title('5×5中值滤波');

%标准平均滤波函数

function Newbuf=AverageFilter(Oldbuf,M,N,m)

%Newbuf 滤波后图像矩阵

%Oldbuf 含噪图像矩阵

%M、N 含噪图像像素矩阵行、列

%m 均值滤波窗口大小

f=zeros(M+m-1,N+m-1);

%将原图像像素复制到f矩阵上,空出(m-1)/2大小的边界

f((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:M,1:N);

%将与边界相邻的(m-1)/2行(或列)的像素值复制到边界,以填充边界

f((m-1)/2+1:M+(m-1)/2,1:(m-1)/2)=Oldbuf( : ,1:(m-1)/2);

f((m-1)/2+1:M+(m-1)/2,N+(m-1)/2:N+m-1)=Oldbuf( : ,N-(m-1)/2:N); f(1:(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:(m-1)/2, : );

f(M+(m-1)/2:M+m-1,(m-1)/2+1:N+(m-1)/2)=Oldbuf(M-(m-1)/2:M, : ); g=zeros(M+m-1,N+m-1);

Im=zeros(M,N);

%根据公式计算出处理后g(x,y)的像素值

for x=(m-1)/2+1:M+(m-1)/2

for y=(m-1)/2+1:N+(m-1)/2

for s=-(m-1)/2:(m-1)/2

for t=-(m-1)/2:(m-1)/2

g(x,y)=g(x,y)+f(x+s,y+t)*1/(m*m);

end

end

end

end

Im(1:M,1:N)=g((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2);

%将double型转换为uint8型才可以用imshow正常显示

Newbuf=uint8(Im);

%加权平均滤波函数

function Newbuf=WeighFilter(Oldbuf,W,M,N,m)

%Newbuf 滤波后图像矩阵

%Oldbuf 含噪图像矩阵

%W 掩模

%M、N 含噪图像像素矩阵行、列

%m 掩模模板窗口大小

f=zeros(M+m-1,N+m-1);

%将原图像像素复制到f矩阵上,空出(m-1)/2大小的边界

f((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:M,1:N);

%将与边界相邻的(m-1)/2行(或列)的像素值复制到边界,以填充边界

f((m-1)/2+1:M+(m-1)/2,1:(m-1)/2)=Oldbuf( : ,1:(m-1)/2);

f((m-1)/2+1:M+(m-1)/2,N+(m-1)/2:N+m-1)=Oldbuf( : ,N-(m-1)/2:N); f(1:(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:(m-1)/2, : );

f(M+(m-1)/2:M+m-1,(m-1)/2+1:N+(m-1)/2)=Oldbuf(M-(m-1)/2:M, : ); g=zeros(M+m-1,N+m-1);

Im=zeros(M,N);

%根据公式计算出处理后g(x,y)的像素值

for x=(m-1)/2+1:M+(m-1)/2

for y=(m-1)/2+1:N+(m-1)/2

for s=-(m-1)/2:(m-1)/2

for t=-(m-1)/2:(m-1)/2

g(x,y)=g(x,y)+W(s+(m+1)/2,t+(m+1)/2)*f(x+s,y+t); end

end

end

end

Im(1:M,1:N)=g((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2);

Newbuf=uint8(Im);

%中值滤波函数

function Newbuf=MedianFilter(Oldbuf,M,N,m)

%Newbuf 滤波后图像矩阵

%Oldbuf 含噪图像矩阵

%M、N 含噪图像矩阵像素行、列

%m 中值滤波窗口大小

f=zeros(M+m-1,N+m-1);

%将原图像像素复制到f矩阵上,空出(m-1)/2大小的边界

f((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:M,1:N);

%将与边界相邻的(m-1)/2行(或列)的像素值复制到边界,以填充边界

f((m-1)/2+1:M+(m-1)/2,1:(m-1)/2)=Oldbuf( : ,1:(m-1)/2);

f((m-1)/2+1:M+(m-1)/2,N+(m-1)/2:N+m-1)=Oldbuf( : ,N-(m-1)/2:N); f(1:(m-1)/2,(m-1)/2+1:N+(m-1)/2)=Oldbuf(1:(m-1)/2, : );

f(M+(m-1)/2:M+m-1,(m-1)/2+1:N+(m-1)/2)=Oldbuf(M-(m-1)/2:M, : ); g=zeros(M+m-1,N+m-1);

Im=zeros(M,N);

for x=(m-1)/2+1:M+(m-1)/2

for y=(m-1)/2+1:N+(m-1)/2

j=1;

for s=-(m-1)/2:(m-1)/2

for t=-(m-1)/2:(m-1)/2

a(j)=f(x+s,y+t);%将窗口里的二维元素变成一维元素

j=j+1;

end

end

g(x,y)=SeekMid(a,m);

end

end

Im(1:M,1:N)=g((m-1)/2+1:M+(m-1)/2,(m-1)/2+1:N+(m-1)/2);

Newbuf=uint8(Im);

%找出中值函数

function mid=SeekMid(winbuf,m)

%mid 排序后的中值

%winbuf 待排序窗口

%m 窗口大小

%采用冒泡排序方法将窗口像素值从小到大排列,返回中间像素值

for i=1:m*m-1

for k=1:m*m-i

if winbuf(k)>winbuf(k+1)

temp=winbuf(k);

winbuf(k)=winbuf(k+1);

winbuf(k+1)=temp;

end

end

end

mid=winbuf((m*m+1)/2);

【输出图像】

【实验思考】

1.比较均值滤波和中值滤波的优缺点

均值滤波可以减小图像灰度级的“sharp”变化,可以降低噪声,但是降噪的同时也使边缘部分变得模糊,还可以平滑伪轮廓,去除图像中的不相关的小于掩模尺寸的细节。

中值滤波器的主要功能是使具有不同灰度的点看起来更接近它的相邻点,去除那些相对于其邻域像素更亮或更暗、且区域小于n2/2的孤立像素集。中值滤波对降低某些类型的随机噪声性能优异,模糊程度低。

在处理椒盐噪声时,均值滤波使图像变得模糊,并且噪声去除性能很差,而中值滤波的效果却很好。显然,中值滤波比均值滤波更适合去除椒盐噪声。

2. 分析窗口尺寸对滤波结果的影响

窗口尺寸越大,图像越模糊,图像边缘和与掩膜大小接近的细节受到的影响也越大

实验3:图像的锐化处理

【实验目的】

锐化的目的是加强图像的边界和细节,熟悉Robert、Sobel和Laplace算子进行检测,使图像特征(如边缘、轮廓等)进一步增强并突出。

【实验内容】

1)编写Robert算子滤波函数;

2)编写Sobel算子滤波函数;

3)编写Laplace算子滤波函数;

4)编写限幅和标定函数,给出增强后的图像。

【实验代码】

function EX3

I=imread('rice.bmp');

subplot(2,4,1);imshow(I);title('原始图像');

rob=RobertFilter(I);

subplot(2,4,2);imshow(rob);title('Robert算子滤波结果');

R1=I+rob;

la1=LimitAmplitude(R1);

subplot(2,4,6);imshow(la1);title('Robert算子增强结果');

a2=[-1 -2 -1;0 0 0;1 2 1];

b2=[-1 0 1;-2 0 2;-1 0 1];

sob=SobelFilter(I,a2,b2);

subplot(2,4,3);imshow(sob);title('Sobel算子滤波结果');

R2=I+sob;

la2=LimitAmplitude(R2);

subplot(2,4,7);imshow(la2);title('Sobel算子增强结果');

% s=[0 1 0;1 -4 1;0 1 0];

s=[1 1 1;1 -8 1;1 1 1];

lap=LapFilter(I,s);

cal=Calibration(lap);

subplot(2,4,4);imshow(cal);title('Laplace算子滤波结果');

lap=uint8(lap);

lapr=I-lap;

lapr3=LimitAmplitude(lapr);

subplot(2,4,8);imshow(lapr3);title('Laplace算子增强结果');

%Robert算子滤波

function rob=RobertFilter(F)

a1=[-1 0;0 1];

b1=[0 -1;1 0];%Robert算子模板

[M,N]=size(F);

f=zeros(M+1,N+1);

f(1:M,1:N)=F(1:M,1:N);

f(1:M,N+1:N+1)=F( : ,N:N);

f(M+1:M+1,1:N)=F(M:M, : );%边界填充

g=zeros(M+1,N+1);

for x=1:M

for y=1:N

mod=[f(x,y) f(x,y+1);f(x+1,y) f(x+1,y+1)];

gsx=a1.*mod;

gsy=b1.*mod;

g(x,y)=abs(sum(gsx(:)))+abs(sum(gsy(:)));

end

end

Im=zeros(M,N);

Im(1:M,1:N)=g(1:M,1:N);

rob=uint8(Im);

%Sobel算子滤波

function sob=SobelFilter(F,sx,sy)

%sx,sy为Sobel算子模板

[M,N]=size(F);

[m,n]=size(sx);

f=zeros(M+m-1,N+n-1);

f((m-1)/2+1:M+(m-1)/2,(n-1)/2+1:N+(n-1)/2)=F(1:M,1:N);

f((m-1)/2+1:M+(m-1)/2,1:(n-1)/2)=F( : ,1:(n-1)/2);

f((m-1)/2+1:M+(m-1)/2,N+(n-1)/2:N+m-1)=F( : ,N-(n-1)/2:N);

f(1:(m-1)/2,(n-1)/2+1:N+(n-1)/2)=F(1:(m-1)/2, : );

f(M+(m-1)/2:M+m-1,(n-1)/2+1:N+(n-1)/2)=F(M-(m-1)/2:M, : );%边界填充g=zeros(M+m-1,N+n-1);

for x=(m-1)/2+1:M+(m-1)/2

for y=(n-1)/2+1:N+(n-1)/2

mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y)

f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)];

gsx=sx.*mod;

gsy=sy.*mod;

g(x,y)=abs(sum(gsx(:)))+abs(sum(gsy(:)));

end

end

Im=zeros(M,N);

Im(1:M,1:N)=g((m-1)/2+1:M+(m-1)/2,(n-1)/2+1:N+(n-1)/2);

sob=uint8(Im);

%Laplace算子滤波

function lap=LapFilter(F,S)

[M,N]=size(F);

[m,n]=size(S);

f=zeros(M+m-1,N+n-1);

f((m-1)/2+1:M+(m-1)/2,(n-1)/2+1:N+(n-1)/2)=F(1:M,1:N);

f((m-1)/2+1:M+(m-1)/2,1:(n-1)/2)=F( : ,1:(n-1)/2);

f((m-1)/2+1:M+(m-1)/2,N+(n-1)/2:N+m-1)=F( : ,N-(n-1)/2:N); f(1:(m-1)/2,(n-1)/2+1:N+(n-1)/2)=F(1:(m-1)/2, : );

f(M+(m-1)/2:M+m-1,(n-1)/2+1:N+(n-1)/2)=F(M-(m-1)/2:M, : ); g=zeros(M+m-1,N+n-1);

for x=(m-1)/2+1:M+(m-1)/2

for y=(n-1)/2+1:N+(n-1)/2

mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)];

gs=S.*mod;

g(x,y)=sum(gs(:));

end

end

Im=zeros(M,N);

Im(1:M,1:N)=g((m-1)/2+1:M+(m-1)/2,(n-1)/2+1:N+(n-1)/2);

lap=Im;

%限幅函数

function la=LimitAmplitude(F)

f=uint8(F);

[M,N]=size(f);

for x=1:M

for y=1:N

if f(x,y)>=255;

f(x,y)=255;

elseif f(x,y)<=0

f(x,y)=0;

else f(x,y)=f(x,y);%将灰度值限定在0到255之间

end

end

end

end

la=f;

%标定函数

function cal=Calibration(F)

F=double(F);

[M,N]=size(F);

m1=min(min(F));

for x=1:M

for y=1:N

fm(x,y)=F(x,y)-m1;

end

end

m2=max(max(fm));

Fm=double(fm);

for x=1:M

for y=1:N

fs(x,y)=255*(Fm(x,y)/m2);

end

end

cal=uint8(fs);

【输出图像】

实验4:图像的统计特性

【实验目的】

观察序列图像帧内、帧间差值信号的分布曲线,理解图像在空间域和频率域上的统计特性及其在压缩中的重要性。

【实验内容】

1)编写帧内统计函数,计算差值图像(同一行差值、同一列差值),观察统计分布曲线;

2)编写帧间统计函数,计算差值图像(相邻帧的差值),观察统计分布曲线(cla0/1

或girl0/1)。

附:可供参考的Matlab函数有sum、cat、plot

【实验代码】

function EX4

oldbuf=imread('rice.bmp');

I1=imread('CLA1.bmp');

I2=imread('CLA2.bmp');

newbuf1=Intrah(oldbuf,1);%帧内水平差值统计特性

newbuf2=Intrah(oldbuf,0);%帧内垂直差值统计特性

newbuf3=Inter(I1,I2);帧间统计特性

subplot(2,3,1);imshow(oldbuf);title('原始图像');

subplot(2,3,2);draw(newbuf1);title('水平差值统计特性'); subplot(2,3,3);draw(newbuf2);title('垂直差值统计特性'); subplot(2,3,4);imshow(I1);title('CLA1');

subplot(2,3,5);imshow(I2);title('CLA2');

subplot(2,3,6);draw(newbuf3);title('帧间统计特性');

function newbuf=Intrah(oldbuf,pop2) %帧内统计函数

oldbuf=double(oldbuf);

[M,N]=size(oldbuf); %防止溢出将数据类型从uint8型转换为double型newbuf=zeros(1,511);

if pop2==1

for i=1:M

for j=1:N-1

dH=oldbuf(i,j)-oldbuf(i,j+1);%帧内水平灰度差值

newbuf(dH+256)=newbuf(dH+256)+1;

end

end

else

for i=1:M-1

for j=1:N

dV=oldbuf(i,j)-oldbuf(i+1,j);

newbuf(dV+256)=newbuf(dV+256)+1;

end

end

end

function newbuf=Inter(oldbuf,oldbuf1) %帧间统计函数

oldbuf=double(oldbuf);

oldbuf1=double(oldbuf1);

[M,N]=size(oldbuf);

newbuf=zeros(1,511);

for i=1:M

for j=1:N

dt=oldbuf(i,j)-oldbuf1(i,j);%计算帧间差值

newbuf(dt+256)=newbuf(dt+256)+1;

end

end

function draw(D)

D=D/sum(D);

x=-255:255;

plot(x,D);

axis([-100 100 0 0.5]);%为了显示效果好缩小坐标轴范围

【输出图像】

实验6:方块编码

【实验目的】

掌握方块编码的基本方法及压缩性能。

【实验内容】

1)编程实现子块为n×n的方块编码算法;

2)分别取n=4和8的方块尺寸进行实验,计算重建图像的PSNR和压缩比。【实验代码】

1.主程序

I=imread('lena.bmp');

[M,N]=size(I);

subplot(1,3,1);imshow(I);title('原图像');%显示原图像

I=double(I);

newbuf1=BtcCode(I,4);

[PSNR1,Cr1]=Analyze(I,newbuf1,M,N,4);

subplot(1,3,2);imshow(uint8(newbuf1));title(['4*4BTC重建图像,PSNR=',num2str(PSNR1),'压缩比=',num2str(Cr1)]);

newbuf2=BtcCode(I,8);

[PSNR2,Cr2]=Analyze(I,newbuf2,M,N,8);

subplot(1,3,3);imshow(uint8(newbuf2));title(['8*8BTC重建图像,PSNR=',num2str(PSNR2),'压缩比=',num2str(Cr2)]);

2.BtcBlock.m

function outbuf=BtcBlock(inbuf,n)

%btc 方块编码算法函数

%inbuf 子块数组

%n 方块尺寸

%对每个子块的图像数据分别计算xt、a0、a1值,再用分辨率分量

%(a0,a1)替代方块原来的数据,最后放入方块图像数组中并返回该数组inbuf=double(inbuf);

temp=0;%总的像素值

temp0=0;%小于阀值的总像素

temp1=0;%大于阀值的总像素

q=0;%大于阀值的像素的个数

m=n*n;

for i=1:n

for j=1:n

temp=temp+inbuf(i,j);

end

end

xt=temp/m;%平均像素值即阀值

for i=1:n

for j=1:n

if inbuf(i,j)

temp0=temp0+inbuf(i,j);%得出小于阀值的总像素

else

temp1=temp1+inbuf(i,j);%得出大于阀值的总像素

q=q+1;%大于阀值的像素个数

end

end

end

if q~=m

a0=uint8(temp0/(m-q));%得出小于阀值的像素值

end

if q~=0

a1=uint8(temp1/q); %得出大于阀值的像素值

end

for i=1:n

for j=1:n

if inbuf(i,j)

outbuf(i,j)=a0;

else

outbuf(i,j)=a1;

end

end

end

3.BtcCode.m

function newbuf=BtcCode(oldbuf,n)

%调用方块编码算法函数,输出编码后的图像

[M,N]=size(oldbuf);

row_num=M/n;%子块行数

col_num=N/n;%子块列数

row_start=(0:row_num)*n+1;%子块起始行

row_end=(1:row_num)*n;%子块终止行

col_start=(0:col_num-1)*n+1;%子块起始列

col_end=(1:row_num)*n;%子块终止列

for i=1:row_num

for j=1:col_num

f=oldbuf(row_start(i):row_end(i),col_start(j):col_end(j));%此式太长为方便书写定义f

oldbuf(row_start(i):row_end(i),col_start(j):col_end(j))=BtcBlock(f,n) ;%将原图像分成一个个子块,在原图像里一个个对这些子块进行编码,编码后的结果保存原图像里

end

end

newbuf=oldbuf;%编码后的图像

4. Analyze.m

function [PSNR,Cr]=Analyze(I1,I2,M,N,n)

%计算重建图像的PSNR和压缩比

m=n*n;

mse=sum(sum((I1-I2).^2))/(M*N);

PSNR=10*log10((255^2)/mse);

Cr=8/(1+2*8/m);

end

【输出图像】

实验7:JPEG压缩编码

【实验目的】

掌握n×n块的DCT图像变换及频谱特点。

熟悉JPEG基本系统的图像编解码方法。

【实验内容】

1)编程实现n×n块DCT变换的图像频谱显示,块DCT系数按照Zig-Zag扫描并取部分进行图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。

2)对8×8块的DCT系数,采用JPEG默认的量化矩阵进行量化和反量化,计算原图像与重建图像之间的均方根误差RMSE、并显示误差图像。

【实验代码】

1.主程序

F=imread('lena.bmp');

subplot(231);imshow(F);title('?-í???');%显示原图像

F=double(F);

F=F-128;%将原图像减小一半便于处理

%计算原图像的8×8块的DCT系数,并转换为可视频谱图以便观察

dctfre=DctBlock(F,8);

subplot(232);imshow(log(abs(dctfre)*5+1),[]);title('8*8DCT频谱显示'); %[]表示将原图像的最大最小值之间的范围整体映射到0~255之间,即做限幅

DCTch=10;n=8;

[I,e,rmse1]=ZigIDCT(F,dctfre,DCTch,n);

subplot(233);imshow(uint8(I));title(['取',num2str(DCTch),'个DCT系数时的重建图像']);

subplot(234);imhist(uint8(abs(e)));title(['差值直方图,

RMSE=',num2str(rmse1)]);

scale=4;

[newbuf,err,rmse2]=QuanIQuan(F,dctfre,n,scale);

subplot(235);imshow(uint8(newbuf));title(['scale为',num2str(scale),'时的重建图像']);

subplot(236);imshow(uint8(abs(err)),[]);title(['量化误差图像,

RMSE=',num2str(rmse2)]);

2. ZigIDCT.m

function [I,e,rmse1]=ZigIDCT(oldbuf,dctfre,DCTch,n)

%oldbuf:原始图像数据

%dctfre:DCT系数矩阵

%DCTch:每个分块中需要保留的DCT系数个数

%n:分块的大小

%e:原图像与保留部分DCT系数后的重建图像之间的误差矩阵

% 按Zig-Zag扫描顺序,根据DCTch参数,只保留64个

% DCT系数中的前DCTch个系数,对修改后的DCT系数用逆DCT变换重建图像,得到DCT变

% 换的压缩图像。计算重建图像的均方根误差RMSE ;显示误差图像和误差直方图。

zigzag = [ 1 2 6 7 15 16 28 29

3 5 8 1

4 17 27 30 43

4 9 13 18 26 31 42 44

10 12 19 25 32 41 45 54

11 20 24 33 40 46 53 55

21 23 34 39 47 52 56 61

22 35 38 48 51 57 60 62

36 37 49 50 58 59 63 64];%设置z扫描顺序

mask=zigzag<=DCTch; %根据当前DCTch值得到“Z”字扫描的逻辑值,mask为logic类型%对修改后的DCT系数用逆DCT变换重建图像,得到DCT变换的压缩图像

D=dctmtx(n);

I=blkproc(dctfre,[n n],'P1*(x.*P2)*P3',D',maskbuf,D);%I为重建的压缩图像矩阵

e=oldbuf-I;%e:原图像与保留部分DCT系数后的重建图像之间的误差矩阵

I=I+128;

rmse1=RMSE(e);

end

3.DctBlock.m

function dctfre = DctBlock(oldbuf,n)

%分块DCT函数:根据给定的n值,计算原图像的n×n块的DCT系数,并转换为可视频谱图以便观察

% oldbuf 原始图像数据

% n 分块的大小

% dctfre DCT系数矩阵

D=dctmtx(n);%D是返回N×N的DCT变换矩阵,矩阵A的DCT变换可用D×A×D’来计算dctfre=blkproc(oldbuf,[n,n],'P1*x*P2',D,D'); %D'为D的转置

end

4. QuanIQuan.m

function [newbuf,e,rmse2]=QuanIQuan(oldbuf,dctfre,n,scale)

%量化和反量化函数:根据给定的默认JPEG量化表,

%对每个n×n块的DCT系数进行量化和反量化,显示量化误差图像及其直方图。%oldbuf:原始图像数据

%dctfre:DCT系数矩阵

%n:分块的大小

%scale;量化系数

z= [16 11 10 16 24 40 51 61

12 12 14 19 26 58 60 55

14 13 16 24 40 57 69 56

14 17 22 29 51 87 80 62

18 22 37 56 68 109 103 77

24 35 55 64 81 104 113 92

49 64 78 87 103 121 120 101

72 92 95 98 112 100 103 99];%默认JPEG量化表

Qvalue=blkproc(dctfre,[n n],'round(x./P1)',scale*z);%量化 IQvalue=blkproc(Qvalue,[n n],'x.*P1',scale*z);%反量化

%对经过量化和反量化后的矩阵进行逆DCT变换得到重建图像矩阵

D=dctmtx(n);

newbuf=blkproc(IQvalue,[n n],'P1*x*P2',D',D);

e=newbuf-oldbuf;%e为量化误差矩阵

rmse2=RMSE(e);%求均方根误差

newbuf=newbuf+128;

end

5. RMSE.m

function rmse=RMSE(oldbuf)

%求均方根误差

[M,N]=size(oldbuf);

e=oldbuf.^2;

rmse=sqrt(sum(e(:))/(M*N));

end

【输出图像】

实验8:运动估计

【实验目的】

熟悉运动估计的块匹配(BMA)算法原理,编程实现全搜索算法(三步搜索或钻石搜索算法),了解运动估计在混合编码器中的作用。

【实验内容】

1)编写全搜索算法函数,将运动矢量叠加到当前帧上并显示输出;

2)显示输出预测帧、残差帧和重建图像,计算预测帧的PSNR。

附:可供参考的Matlab函数有hold、quiver

【实验代码】

1.主程序

imgI=imread('CLA1.bmp');%定义参考帧

imgP=imread('CLA2.bmp');%定义当前帧

subplot(231);imshow(imgI);title('参考帧');

subplot(232);imshow(imgP);title('当前帧');

imgI=double(imgI);

imgP=double(imgP);

mbSize=16;% 块尺寸为16*16

p=7;%搜索窗口为(2p+1)*(2p+1)

[motionVect,EScomputations,blk_center,costs]=ME_ES(imgP,imgI,mbSize,p );%基于块的全搜索算法

imgMV(motionVect,imgP,blk_center);%画运动矢量图

imgComp=motionComp(imgI,motionVect,mbSize);%根据运动矢量计算预测帧,并传输残差帧

psnr=imgPSNR(imgP,imgComp);%计算峰值信噪比

subplot(234);imshow(uint8(imgComp));title(['预测

帧,PSNR=',num2str(psnr)]);

imgErr=imgP-imgComp;%残差帧

cal=Calibration(imgErr);%标定,显示更好效果

subplot(235);imshow(cal);title('残差帧');

ChongJian=imgComp+imgErr;%根据运动矢量指明的位置及残差帧重建图像

subplot(236);imshow(uint8(ChongJian));title('重建帧');

2.ME_ES.m

function [motionVect,EScomputations,blk_center,costs] = ME_ES(imgP, imgI, mbSize, p)

%function:FS算法:全搜索(Full Search/Exhaustive Search)

%img:当前帧

%imgI:参考帧

%mbSize:MB尺寸

%p:搜索窗口大小(2p+1)×(2p+1)

%motionVect:整像素精度MV

%EScomputations:搜索每个宏块所需的平均点数

[row,col]=size(imgP);

blk_center=zeros(2,row*col/(mbSize^2));%定义每个宏块中心点位置

motionVect=zeros(2,row*col/(mbSize^2));%定义每个宏块运动矢量

costs=ones(2*p+1,2*p+1)*65537;

computations=0;%搜索的点数之和

mbCount=1;

for i = 1:mbSize:row-mbSize+1 %当前帧起始行搜索范围,步长是块数

for j = 1:mbSize:col-mbSize+1 %当前帧起始列搜索范围,步长是块数

for m=-p:p

for n=-p:p

ref_blk_row=i+m;%参考帧搜索框起始行

ref_blk_col=j+n;%参考帧搜索框起始列

%如果参考块的行列范围的任意一点在已经搜索过的宏块之外,则跳过,搜索下一点

if

(ref_blk_row<1||ref_blk_row+mbSize-1>row||ref_blk_col<1||ref_blk_col+ mbSize-1>col)

continue;

end

%否则计算该点SAD值

costs(m+p+1,n+p+1)=costSAD(imgP(i:i+mbSize-1,j:j+mbSize-1),imgI(ref_b lk_row:ref_blk_row+mbSize-1,ref_blk_col:ref_blk_col+mbSize-1));

computations=computations+1;

end

end

blk_center(1,mbCount) = i+ mbSize/2-1;%记录中心点行坐标

blk_center(2,mbCount) = j+ mbSize/2-1;%记录中心点列坐标

[minc,dx,dy]=minCost(costs); %找出有最小代价的块的下标

motionVect(1,mbCount)=dx-p-1;%垂直运动矢量

motionVect(2,mbCount)=dy-p-1;%水平运动矢量

mbCount=mbCount+1;

costs=ones(2*p+1,2*p+1)*65537;%重新赋值

end

end

EScomputations=computations/(mbCount-1);

end

3. motionComp.m

function [imgComp] = motionComp(imgI, motionVect, mbSize)

%求预测帧的函数:由给定的运动矢量进行运动补偿计算预测帧

%imgI:参考帧

%motionVect:MV(dx为垂直分量,dy为水平分量)

%mbSize:MB尺寸

%imgComp:运动补偿后的图像

[row,col]=size(imgI);

mbCount=1;

for i = 1:mbSize:row-mbSize+1

for j = 1:mbSize:col-mbSize+1

ref_blk_row=i+motionVect(1,mbCount);%参考帧搜索块起始行

ref_blk_col=j+motionVect(2,mbCount);%参考帧搜索块起始列

imgComp(i:i+mbSize-1,j:j+mbSize-1)=imgI(ref_blk_row:ref_blk_row+mbSiz e-1,ref_blk_col:ref_blk_col+mbSize-1);

mbCount=mbCount+1;

end

end

end

4. minCost.m

function [minc,dx,dy] = minCost(costs)

%求具有最小SAD值的函数:找出具有最小代价的块的下标

%costs:包含当前宏块所有运动估计误差代价的SAD矩阵

%dx:MV的垂直分量

%dy:MV的水平分量

[row,col]=size(costs);

minc=costs(1,1);

dx=1;

dy=1;

for i=1:row

for j=1:col

if(costs(i,j)

minc=costs(i,j);

dx=i;

dy=j;

end

end

end

end

5. costSAD.m

function cost = costSAD(currentBlk,refBlk)

%function:SAD计算函数:对给定的两个块计算SAD值

%currentBlk:当前块

%refBlk:参考块

%mbSize:MB尺寸

%cost:两个块之间的误差代价(SAD)

cost=sum(sum(abs(currentBlk-refBlk)));

end

大学数字图像处理模拟试卷及答案 (1)

(注:以下两套模拟题仅供题型参考,请重点关注选择填空以及判断题、名词解释,蓝色下划线内容肯定不考) 《数字图像处理》模拟试卷(A 卷) 一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号填在题前的括号内。答案选错或未作选择者,该题不得分。每小题1分,共10分) ( d )1.一幅灰度级均匀分布的图象,其灰度范围在[0,255],则该图象的信息量为: a. 0 b.255 c.6 d.8 ( b )2.图象与灰度直方图间的对应关系是: a.一一对应 b.多对一 c.一对多 d.都不对 ( d )3.下列算法中属于局部处理的是: a.灰度线性变换 b.二值化 c.傅立叶变换 d.中值滤波 ( b )4.下列算法中属于点处理的是: a.梯度锐化 b.二值化 c.傅立叶变换 d.中值滤波 ( ) 5.一曲线的方向链码为12345,则曲线的长度为 a.5 b.4 c.5.83 d.6.24 ( c )6. 下列算法中属于图象平滑处理的是: a.梯度锐化 b.直方图均衡 c. 中值滤波 https://www.360docs.net/doc/e511775721.html,placian增强 ( )7.下列图象边缘检测算子中抗噪性能最好的是: a.梯度算子 b.Prewitt算子 c.Roberts算子 d. Laplacian算子 ( c)8.采用模板[-1 1]主要检测____方向的边缘。 a.水平 b.45° c.垂直 d.135° ( d )9.二值图象中分支点的连接数为: a.0 b.1 c.2 d.3 ( a )10.对一幅100′100像元的图象,若每像元用8bit表示其灰度值,经霍夫曼编码后压缩图象的数据量为40000bit,则图象的压缩比为: a.2:1 b.3:1 c.4:1 d.1:2 二、填空题(每空1分,共15分) 1.图像锐化除了在空间域进行外,也可在频率域进行。 2.图像处理中常用的两种邻域是4-邻域和8-邻域。 3.直方图修正法包括直方图均衡和直方图规定化两种方法。 4.常用的灰度差值法有最近邻元法、双线性内插法和三次内插法。 5.多年来建立了许多纹理分析法,这些方法大体可分为和结构分析法两大类。 6.低通滤波法是使高频成分受到抑制而让低频成分顺利通过,从而实现图像平滑。 7.检测边缘的Sobel算子对应的模板形式为和。 8.一般来说,采样间距越大,图象数据量少,质量差;反之亦然。 三、名词解释(每小题3分,共15分) 1.数字图像是将一幅画面在空间上分割成离散的点(或像元),各点(或像元)的灰度值经量化用离散的整数来表示,形成计算机能处理的形式。 2.图像锐化是增强图象的边缘或轮廓。 3.从图象灰度为i的像元出发,沿某一方向θ、距离为d的像元灰度为j同时出现的概率

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

《MATLAB与数值分析》第一次上机实验报告

电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建

一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下:

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

数字图像处理试卷及答案2015年

中南大学考试试卷 2015-- 2016 学年1学期 时间100分钟 2015 年11月4日 数字图像处理 课程32学时2学分考试形式:也卷 专业年级: 电子信息2013级 总分100分,占总评成绩 70% 注:此页不作答题纸,请将答案写在答题纸上 一、填空题(本题20分,每小题1分) 1. 图像中像素具有两个属性: _空间位置 ______ 和—灰度 ______ 。 2. _红(R )_、_绿(G )_、 _____________ 蓝(B )_这三种颜色被称为图像的三基色。 3. 对于一个6位的灰度图像,其灰度值范围是 __0-63 _________ 。 4. RGB 模型中黑色表示为 _____ (0,0,0) _____ 。 5. 直方图修正法包括 —直方图均衡 ___________ 和 _直方图规定化_ 两种方法。 6. 常用的灰度内插法有最近邻内插法、 _双线性内插法_和 三次内插法。 7. 依据图像的保真度,图像压缩可分为一无损压缩_和一有损压缩。 8. 图像压缩是建立在图像存在 _编码冗余,空间和时间冗余(像素间冗余) , 视觉心理冗余三种冗余基础上。 9. 根据分割时所依据的图像特性的不同,图像分割方法大致可以分为阈值分割法、边缘检 ________ 测法和一区域分割法一三大类。 10. 傅立叶频谱中,与图像的平均灰度值对应的系数是 F (0 , 0) _________ 。 二、选择题(本题20分,每小题2分) 1. 图像与灰度直方图间的对应关系是: (b ) a. ------- 对应 b. 多对一 c. 一对多 d. 都不对 2. 下列算法中属于图像平滑处理的是: (c ) a.梯度锐化 b. 直方图均衡 c. 中值滤波 https://www.360docs.net/doc/e511775721.html,placian 增强 3. 下列图像边缘检测算子中抗噪性能最好的是: (b ) a.梯度算子 b.Prewitt 算子 c.Roberts 算子 d. Laplacian 算子 6. 维纳滤波器通常用于:(c ) a.去噪 b. 减小图像动态范围 7. 采用幕次变换进行灰度变换时,当幕次 4. 5. 采用模板]-1 1 ]主要检测__ a.水平 b.45 0 c. 一幅256*256的图像,若灰度级为 a. 256Kb b.512Kb c.1Mb 方向的边缘。(c ) 垂直 d.135 16,则存储它所需的总比特数是 d. 2M c.复原图像 d.平滑图像

matlab第一次实验报告

Matlab第一次实验报告 2012029010010 尹康 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 程序代码: n=input('input the number of pionts:'); a=input('input a:'); b=input('input b:'); x=[]; y=[]; x(1)=input('input x1:'); y(1)=input('input y1:'); %输入点数、初始值以及系数for i=2:n x(i)=a*x(i-1)-b*(y(i-1)-x(i-1)^2); y(i)=a*x(i-1)+b*(y(i-1)-x(i-1)^2); %根据已输入的数据进行迭代end figure;plot(x,y,'linewidth',2) axis equal %横纵坐标等比例 text(x(1),y(1),'1st point') %标记初始点 运行结果:

心得体会及改进:在输入某些数据时,所绘曲线可能是一条折线(如:n=5,a=b=x1=1,y1=2)甚至只有一个点(如:n=5,a=b=x1=y1=1),此时可能出现曲线与坐标轴重合或无法看到点的情况,为了更清晰地展现曲线,可以使线宽适当加宽并标记初始点。 2.编程实现奥运5环图,允许用户输入环的直径。 程序代码: 函数circle: %在指定的圆心坐标处,用指定颜色、宽度的线条绘出指定半径、圆心角的弧 function f=circle(r,x,y,color,linw,alp1,alp2) alp=linspace(alp1,alp2); X=r*cos(alp)+x; Y=r*sin(alp)+y; plot(X,Y,color,'linewidth',linw) end 主程序代码: r=input('input r:');

数字图像处理实验报告

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日 1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一 图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要 求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图 像。 4) 运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点, 显 示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要 求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。 2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p 表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1:

数字图像处理试卷A答案

电子科技大学网络教育考卷(A 卷)答案 一、名词解释(每题2分,共10分) 1. 一幅图像可定义为一个二维函数f(x,y),这里x 和y 是空间坐标,而在任何一对空间坐标(x,y)上的幅值f 称为该点图像的强度或灰度。当x,y 和幅值f 为有限的、离散的数值时,称该图像为数字图像。 2. 对数变换是一种灰度变换方法,其一般表达式是s=clog(1+r)。其中c 是一个常数,并假设r≥0。此种变换使一窄带低灰度输入图像值映射为一宽带输出值。相对的是输入灰度的高调整值。可以利用这种变换来扩展被压缩的高值图像中的暗像素。 3. CMY 是一种颜色模型,常用于打印机。CMY 表示青、品红、黄,等量的颜料原色(青、品 红和黄色)可以产生黑色。实际上,为打印组合这些颜色产生的黑色是不纯的。因此,为 了产生真正的黑色(在打印中起主要作用的颜色)加入了第四种颜色——黑色,提出了 CMYK 彩色模型。 4. 空间分辨率是图像中可辨别的最小细节.涉及物理意义时可以用每单位距离可分辨的最 小线对数目,当不涉及物理意义时也可用图像的像素数目表示。 5. 令H 是一种算子,其输入和输出都是图像。如果对于任何两幅图像f 和g 及任何两个标 量a 和b 有如下关系,称H 为线性算子: 。 二、判断正误 × × × × √ 三、单项选择题 1、D 2、D 3、C 4、C 5、A 6、B 7、D 8、B 9、D 10、D 四、简答题 (每题5分,共10分) 1. 什么是直接逆滤波?这种方法有何缺点?如何改进? 直接逆滤波方法是用退化函数除退化图像的傅里叶变换(G(u,v))来计算原始图像的傅里叶变换估计:? (,)(,)/(,)F u v G u v H u v =。但考虑到噪声的影响,我们即使知道退化函数,也不能准确地复原未退化的图像。 (,)(,)(,)?(,)(,)F u v H u v N u v F u v H u v += 因为N(u,v)是一个随机函数,而它的傅里叶变换未知。还有更糟的情况。如果退化是零或非常小的值,N(u,v)/H(u,v)之比很容易决定^ F (u,v)的估计值。—种解决退化是零或者很小值问题的途径是限制滤波的频率使其接近原点值。 2. 伪彩色图像处理(也称假彩色)是根据特定的准则对灰度值赋以彩色的处理。伪彩色的主要应用是为了人眼观察和解释一幅图像或序列图像中的灰度目标。人类可以辨别上千种颜色和强度,而相形之下只能辨别几十种灰度。 3、彩色模型(也称彩色空间或彩色系统)的用途是在某些标准下用通常可接受的方式简化彩色规范。本质上,彩色模型是坐标系统和子空间的规范。位于系统中的每种颜色都由单个点

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

数字图像处理考试

符号 a1 a2 a3 a4 a5 a6 概率 0、1 0、4 0、06 0、1 0、04 0、3 解:霍夫曼编码: 原始信源 信源简化 符号 概率 1 2 3 4 a2 0、4 0、4 0、4 0、4 0、6 a 6 0、3 0、3 0、3 0、3 0、4 a 1 0、1 0、1 0、2 0、3 a4 0、1 0、1 0、1 a 3 0、06 0、1 a5 0、04 霍夫曼化简后得信源编码: 从最小得信源开始一直到原始得信源 编码得平均长度: 压缩率: 冗余度: 1、 简述灰度分辨率、空间分辨率与图像质量得关系。: 空间分辨率就是瞧原图像转化为数字图像得像素点数,越多图像质量越高;灰度分辨率,即每一个像素点得灰度级数,灰度级越大,图像越清晰、 (0.4)(1)(0.3)(2)(0.1)3(0.1)(4)(0.06)(5)(0.04)(5) 2.2/avg L bit =+++++=()符号

2、简述采样与量化得一般原则:空间坐标得离散化叫做空间采样, 而灰度得离散化叫做灰度量化。图像得空间分辨率主要由采样所决定,而图像得幅度分辨率主要由量化所决定。 3、图像锐化与图像平滑有何区别与联系?:图象锐化就是用于增强边缘,导致高频分量增强,会使图象清晰;图象平滑用于去噪,对图象高频分量即图象边缘会有影响。都属于图象增强,改善图象效果。 4、伪彩色增强与假彩色增强有何异同点?: 伪彩色增强就是对一幅灰度图象经过三种变换得到三幅图象,进行彩色合成得到一幅彩色图像;假彩色增强则就是对一幅彩色图像进行处理得到与原图象不同得彩色图像;主要差异在于处理对象不同。 1、对于椒盐噪声,为什么中值滤波效果比均值滤波效果好?:均值滤波器就是一种最常用得线性低通平滑滤波器,可抑制图像中得加性噪声,但同时也使图像变得模糊;中值滤波器就是一种最常用得非线性平滑滤波器,可消除图像中孤立得噪声点,又可产生较少得模糊。一般情况下中值滤波得效果要比邻域平均处理得低通滤波效果好,主要特点就是滤波后图像中得轮廓比较清晰.因此,滤除图像中得椒盐噪声采用中值滤波。 2.什么就是区域?什么就是图像分割?:图像分割就就是把图像分成若干 个特定得、具有独特性质得区域并提出感兴趣目标得技术与过程。它就是由图像处理到图像分析得关键步骤. 3.写出颜色RGB模型转换到HIS模型得变换公式;并说明HSI模型各分 量得含义及取值范围对应得颜色信息。书上 4.灰度图像:当点足够小,观察距离足够远时,人眼就不容易分开各个小点, 从而得到比较连续,平滑得灰度图像. 5.GIF格式:GIF格式就是一种公用得图像文件格式,它就是8位文件格 式,所以最多只能存储256色图像,不支持24位得真彩色图像.GIF文件中得图像数据均经过压缩,采用得压缩算法就是改进得LZW算法,所提供得压缩率通常在1:1到1:3之间,当图像中有随机噪声时效果不好 6.图像直方图:一幅图得灰度统计直方图就是一个1-D得离散函数,即Pf (fk)=nk/n,k=0、1、、、,L—1。可以设置一个有L个元素得数组,通过对不同灰度值像素个数得统计来获得图像得直方图。 7.中值滤波:它实现一种非线性得平滑滤波、1、将模板在图像中漫游, 并将模板中心与图像中某个像素位置重合.2、读取模板下各对应像素得

武汉科技大学 数字图像处理实验报告讲解

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

郑州大学数字图像处理考试题

数字图像处理习题集 1.图像的概念及分类; 2.决定图像质量的主要因素有哪些? 3.图像可用数学函数I= f (x, y, z, λ, t)表示,请解释函数中各 参量的含义。 4.说明图像技术的层次,并叙述各层次的主要研究内容; 5.简述图像处理的主要目的及主要处理技术; 6.什么是彩色三要素,解释各要素的含义; 7.简述三基色原理; 8.简述RGB彩色模型及HIS彩色模型的概念及定义; 9.叙述数字图像采样及量化的概念,什么是图像的空间分辨率及灰度 分辨率,并说明空间分辨率及灰度分辨率的大小对图像质量的影响; 10.叙述灰度、颜色、色度、亮度、饱和度、层次、对比度、清晰度等 基本概念。 11.叙述像素、邻域等基本概念。 12.叙述BMP格式图像的文件存储结构。 13.说明数字图像每行所占字节数与图像宽度的关系; 14.叙述将一副数字图像缩小一半的图像处理运算方法; 15.叙述将一副数字图像放大k倍的图像处理运算方法,如果采用k×k 子块填充的放大运算方法,其缺点是什么,采用何种算法可以改善; 16.说明双线性插值法进行图像放大的基本算法; 17.说明有哪几种图像镜像的方式,并叙述各自的算法; 18.以据,请将该图像缩小为原图的2/3。 19.以据,请采用双线性差值法将该图像放大为 20.以的图像数据,请分别给出该图像的水平、垂直、对 。 21.图式如下,

???? ???????????????????=??????????11001''y x y d c x b a y x 请分别用该公式的形式表示出图像平移、镜像、旋转等的运算公式。 22. 列举代数运算的种类及各种代数运算的主要应用。 23. 说明图像加、减运算有哪些应用; 24. 简述直方图的概念; 25. 以下为一幅3位灰度图像的图像数据,请绘制出该图像的灰度直方 26. 叙作用。 27. 请编写一段C 语言程序,用于计算数字图像的直方图; 28. 请说明有那些常用的图像点运算算法。 29. 请说明对图像进行阈值变换有何应用; 30. 常用的线性变换有哪些种类; 31. 叙述常用的图像对比度增强方法,以及他们的优缺点。 32. 以下为一幅4位灰度图像的图像数据,请分别采用基本线性增强及 强运算。 33. 以数据,请对该幅图像进行直方图均 及计算结果。 34. 叙; 35. 简述图像噪声的概念; 36. 分别按照噪声产生原因、噪声频谱、噪声与信号的关系、概率密度 函数等方式对图像噪声进行分类;

数字图像处理实验报告

- 院系:计算机科学学院专业:计算机科学与技术年级: 2012级 课程名称:数字图像处理组号: 姓名(学号): 指导教师:高志荣 2015年 5月 25日

实验原理(算法流程)2.运行结果 1-1-1图查看2012213500.png图片的基本信息和显示图片过程 1-1-2图将2012213500.png图片保存为2012213500.bmp图片3.实验分析

实验原理(算法流程) 先用imread()函数将2012213500.png存入I数组中,可见1-1-1图右上角的Workspace中的I。然后用imfinfo()函数和ans函数读取该图像的大小、类型等信息,具体在1-1-1图的Command Window中可见。至于图片格式的转换,就是用rgb2gray()函数将保存在I数组中的数据转换成灰度格式保存在原来的数组I中。最后将变换所得到的数据保存于2012213500.bmp文件中。 实验(2): 1.代码实现 I=imread(2012213500.bmp');%读取灰度图片 subplot(221),imshow(I,[]),title('256*256,256') I=I(1:2:end,1:2:end);%图片采样 subplot(222),imshow(I,[]),title('128*128,256') I=I(1:2:end,1:2:end);%图片采样 subplot(223),imshow(I,[]),title('64*64,256') I=I(1:2:end,1:2:end);%图片采样 subplot(224),imshow(I,[]),title('32*32,256') 2.运行结果 1-2 图图片空间分辨率对图片的影响 3.实验分析 由1-2图可以看出,在保持灰度级数一定的条件下,随着图片空间分辨率的减半,即256*256,128*128,64*64,32*32的图像,图中的各个区域边缘处的棋盘模式越来越明显,并且全图的像素颗粒越来越粗。证明了空间分辨率是影响图片清晰度的因素之一。 实验(3): 1.代码实现 I=imread('2012213500.bmp');%读取灰度图片 subplot(221),imshow(I,256),title('256*256,256')%灰度级为256 subplot(222),imshow(I,50),title('256*256,50') %灰度级为50 subplot(223),imshow(I,10),title('256*256,10') %灰度级为10 subplot(224),imshow(I,5),title('256*256,5') %灰度级为5

MATLAB全实验报告

《数学实验》报告 实验名称 Matlab 基础知识 学院 专业班级 姓名 学号 2014年 6月

一、【实验目的】 1.认识熟悉Matlab这一软件,并在此基础上学会基本操作。 2.掌握Matlab基本操作和常用命令。 3.了解Matlab常用函数,运算符和表达式。 4.掌握Matlab工作方式和M文件的相关知识。 5.学会Matlab中矩阵和数组的运算。 二、【实验任务】 P16 第4题 编写函数文件,计算 1! n k k = ∑,并求出当k=20时表达式的值。P27第2题 矩阵A= 123 456 789 ?? ?? ?? ?? ?? ,B= 468 556 322 ?? ?? ?? ?? ?? ,计算A*B,A.*B,并比较两者的区别。 P27第3题 已知矩阵A= 52 91 ?? ?? ?? ,B= 12 92 ?? ?? ?? ,做简单的关系运算A>B,A==B,AB)。 P34 第1题 用 111 1 4357 π =-+-+……公式求π的近似值,直到某一项的绝对值小于-6 10为止。 三、【实验程序】 P16 第4题 function sum=jiecheng(n) sum=0; y=1; for k=1:n for i=1:k y=y*i; end sum=sum+y; end sum P27第2题 >>A=[1 2 3;4 5 6;7 8 9] >>B=[4 6 8;5 5 6;3 2 2] >>A*B

P27第3题 >> A=[5 2;9 1];B=[1 2;9 2]; >>A>B >>A==B >>A> (A==B)&(A> (A==B)&(A>B) P34 第1题 t=1; pi=0; n=1; s=1; while abs(t)>=1e-6 pi=pi+t; n=n+2; s=-s; t=s/n; end pi=4*pi; 四、【实验结果】 P16 第4题 P27第2题

matlab实验报告

实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m

数字图像处理实验报告

数 字 图 像 处 理 II 实 验 报 告 课程名称:数字图像处理 II 专业:印刷工程班级: 学生姓名:学号: 指导教师:

一.直方图的定义、性质?打开图像,调整直方图,然后看有什么效果? 答:直方图定义:颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。 直方图的性质:直方图中的数值都是统计而来,描述了该图像中关于颜色的数量特征,可以反映图像颜色的统计分布和基本色调;直方图只包含了该图像中某一颜色值出现的频数,而丢失了某象素所在的空间位置信息;任一幅图像都能唯一的给出一幅与它对应的直方图,但不同的图像可能有相同的颜色分布,从而就具有相同的直方图,因此直方图与图像是一对多的关系;如将图像划分为若干个子区域,所有子区域的直方图之和等于全图直方图;一般情况下,由于图像上的背景和前景物体颜色分布明显不同,从而在直方图上会出现双峰特性,但背景和前景颜色较为接近的图像不具有这个特性。 在PS上进行调整: 原图: 调整直方图:

二.说明什么是平滑与锐化?说明分别的原理及其应用中各个参数的意义? 答:平滑:压制、弱化或消除图像中的细节、突变、边缘和噪声, 平滑原理:图像平滑是对图像作低通滤波,可在空间域或频率域实现。空问域图像平滑方法主要用低通卷积滤波、中值滤波等;频率域图像平滑常用的低通滤波器有低通梯形滤波器、低通高斯滤波器、低通指数滤波器、巴特沃思低通滤波器等。 锐化:图像锐化(image sharpening)就是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,亦分空域处理和频域处理两类。 锐化原理:图像锐化技术,使图像的边缘变的清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。 在水下图像的增强处理中除了去噪,对比度扩展外,有时候还需要加强图像中景物的边缘和轮廓。而边缘和轮廓常常位于图像中灰度突变的地方,因而可以直观地想到用灰度的差分对边缘和轮廓进行提取。 模糊的参数和作用 1 动感模糊 作用:模拟了摄像中拍摄运动物体时间接曝光的功能,从而使图像产生一种动态效果。 参数:①角度:控制图像的模糊方向。 ②距离:控制图像的模糊强度。 2 高斯模糊 作用:根据高斯钟形曲线调节像素色值,控制模糊效果,甚至能造成难以辨认的

相关文档
最新文档