南京邮电大学图像实验

通信与信息工程学院

2016/2017学年第一学期

实 验 报 告

实验课程名称 数字图像处理与图像通信实验

专 业 电子信息工程

学 生 学 号

学 生 姓 名

指 导 教 师 谢世鹏

指 导 单 位 广播工程电视系

实验一 图像信号的数字化

一、实验目的

通过本实验了解图像的数字化参数取样频率(像素个数) 、量化级数与图像质量的关系。

二、实验内容

1、编写并调试图像数字化程序。要求参数k ,N 可调。其中,k 为亚抽样比例,N 为量化比特数。

2、可选任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。

三、实验方法及编程

在数字系统中进行处理、传输和存储图像,必须把代表图像的连续信号转变为离散信号,这种变换过程称为图像信号的数字化。它包括采样和量化两种处理。本实验对数字图像进行再采样和再量化,以考察人眼对数字图像的分辨率和灰度级的敏感程度。

程序的主体部分如下:

function newbuf=Sample_Quant(oldbuf,k,n)%

% 函数名称:Sample_Quant() 图像数字化算法函数

% oldbuf 原图像数组

% M N 原图像尺寸

% k 取样间隔

% n 量化比特值

% newbuf 存放处理后的图像二维数组

[M,N]=size(oldbuf);

oldbuf=double(oldbuf);

x=1;y=1;

while x

while y

new=(round(oldbuf(x,y)/(2^(8-n))))*(2^(8-n));

for i=0:k-1

for j=0:k-1

if(x+i

newbuf(x+i,y+j)=uint8(new);

end

end

end

y=y+k;

end

if y>=N

y=1;

end

x=x+k;

end

四、实验结果及分析

实验截图如下:

由实验结果可以看出,亚抽样比例k 和量化比特数N 对都会使图像变得模糊,但两者的影响是不相同的。

亚抽样比例k 的大小决定了数字化图像的方块效应是否明显。当k 较大时,数字化图像会有较为明显的块状出现,对于图像的视觉效果影响很大。

量化比特数N 则决定了图像的灰度级,量化比特数为N 时,图像有个2N 灰度级。所以当N 较小时,图像会出现不规则的区域有着相同的灰度值的情况,但是这些区域在原图像中却有着差别较小的不同的灰度值。特别是在原图的灰度渐变的区域,这种效应会变得尤为明显。

实验二 图像灰度级修正

一、实验目的

掌握常用的图像灰度级修正方法,即图像的灰度变换法和直方图均衡化法,加深对灰度直方图的理解。

二、实验内容

1、编程实现图像的灰度变换。改变图像输入、输出映射的灰度参数范围(拉伸和反比) ,观看图像处理结果。

2、修改可选参数gamma 值,使其大于1,等于1和小于1,观看图像处理结果。

3、对图像直方图均衡化处理,显示均衡前后的直方图和图像。

三、实验方法及编程

灰度级修正是图像空间域上的增强方法图像增强,它以图像的灰度映射变换为基础,直接对图像中的像素进行处理。常用到三种基本方式:线性,对数,幂次。

程序的主体部分如下:

Function newbuf=GrayGamma(oldbuf,r)

newbuf=imadjust(oldbuf,stretchlim(oldbuf),[],r);

newbuf=uint8(newbuf);

function newbuf=GrayEqualize(oldbuf)

% 函数名称:

% GrayEqualize() 直方图均衡算法函数

% 参数:

% oldbuf 原图像数组

% newbuf 存放处理后的图像二维数组

[M,N]=size(oldbuf);

NN=M*N;sk=0;

[COUNTS,X]=imhist(oldbuf,256);

for i=1:M

for j=1:N

kk=double(oldbuf(i,j));

for k=1:kk

sk=sk+COUNTS(k);

end

sk=sk/NN*256;

newbuf(i,j)=sk;

end

end

newbuf=uint8(newbuf);

四、实验结果及分析

实验截图如下:

由实验结果可以看出,所选的测试图像的灰度值主要分布于低值的部分。 经过无gamma 值的灰度值变换后,直观地看出:分布于低值部分的直方图分散开来,分布于几乎所有的灰度值,但是对映于各个灰度值的像素个数分布仍是不均匀的。变换后的图像比原图显得明亮、清晰。

经过第二第三幅图像可以进一步看出:gamma 值的灰度值变换则明显受gamma 值的影响:当gamma 值大于1时,直方图有向灰度为0的一端压缩的趋势,gamma 越大,这种趋势越明显。此时的图像比原图清晰,但是原本偏暗的部分更加偏黑,原本较亮的部分则变得发白,总体而言,图像偏暗的部分较多。当gamma 值小于1时,其趋势与gamma 值大于1相反,故整个图像显得发白。

直方图均衡后的图像也显得较为清晰、均匀。它能尽量将直方图变得均衡,分布也更为均匀,各个灰度值所对应的像素个数尽可能相同。

实验三 图像的平滑滤波

一、实验目的

图像平滑主要目的是减少噪声对图像的影响。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波两种最典型、最常用的处理算法进行程序设计,学习如何对已被污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。

二、实验内容

1、编写并调试窗口尺寸为m ×n 的平滑滤波函数。

2、编写并调试窗口尺寸为m ×n 的中值滤波函数。

三、实验方法及编程

在M*N的图像f 上,用m*n大小的滤波器模板进行线性滤波由这个公式给出:

g (x , y )=

m =-a n =-b ∑∑a b f (x +m , y +n ) h (m , n )

程序如下:

function newbuf=AverageFilter(oldbuf,M,N,m)

% 函数名称:

% AverageFilter() 均值滤波算法函数

% 参数:

% oldbuf 噪声图像数组

% M N 噪声图像尺寸

% m 矩形平滑窗口尺寸

% newbuf 存放处理后的图像二维数组

oldbuf=double(oldbuf);

newbuf=zeros(M,N);

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

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

for x=-(m-1)/2:(m-1)/2;

for y=-(m-1)/2:(m-1)/2;

newbuf(i,j)=newbuf(i,j)+oldbuf(i+x,j+y)/(m*m); end

end

end

end

function newbuf=MedianFilter(oldbuf,M,N,m)

% 函数名称:

% MedianFilter() 中值滤波算法函数

% 参数:

% oldbuf 原图像数组

% M N 原图像尺度

% m 滑动窗口尺寸

% newbuf 存放处理后的图像数组

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

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

k=1;

for x=-(m-1)/2:(m-1)/2;

for y=-(m-1)/2:(m-1)/2;

winbuf(k)=oldbuf(i+x,j+y);

k=k+1;

end

end

newbuf(i,j)=SeekMid(winbuf,m);

end

end

winsize=length(winbuf); %取窗口尺寸

for i=1:winsize %编写排序函数

for j=1:winsize-i

if(winbuf(i)>winbuf(j+i))

t=winbuf(i);

winbuf(i)=winbuf(j+i);

winbuf(j+i)=t;

end

end

end

mid=winbuf(ceil(m*m/2));

四、实验结果及分析

实验截图如下:

由实验结果可以看出,对于处理椒盐噪声,中值滤波比均值滤波要好很多。当窗口大小为3×3时,均值滤波能一定程度上降低噪声的污染,但是,仍能看出在噪声点,并没有完全消除噪声,只是将噪声与周围的图像进行了平均,噪声点只是显得模糊了,并没有完全消除。相比之下,中值滤波则效果明显,同为3×3的窗口,几乎能把所有的噪声点消除,效果非常显著。当窗口大小变大时,也能将大部分噪声点消除,但是会带来严重的模糊。

同时我们可以看出,两种方法都使得处理后的图像比原图要模糊,并且随着窗口的变大,图像变得越来越模糊。通过两种方法之间的比较则可以看出,同等窗口下中值滤波带来的模糊比均值滤波要轻一些。

实验四名称:图像的锐化处理

一、实验目的

学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts 算子、Sobel 算子边缘检测处理和Laplace 算子边缘增强处理,是图像的某些特征(如边缘、轮廓等) 得以进一步的增强及突出。

二、实验内容

1、编写梯度算子和Roberts 算子滤波函数。

2、编写Sobel 算子滤波函数。

3、编写拉普拉斯边缘增强滤波函数。

三、实验方法及编程

在实验中,我们对于这三种算子的算法,都有其各自对应的模板,根据这个模板我们可以方便地编写出程序的主体结构。指导书中也有对应的流程框图可供参考。

程序的主体部分如下:

function newbuf=RobFilter(oldbuf,M,N);

% RobFilter()

for i=1:M-1

for j=1:N-1

newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1))+abs(oldbuf(i+1,j)-oldbuf(i,j+1)); end

end

function newbuf=SobFilter(oldbuf,M,N); % SobFilter()

for i=2:M-1

for j=2:N-1

sx=oldbuf(i+1,j-1)+2*oldbuf(i+1,j)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)- 2*oldbuf(i-1,j)-oldbuf(i-1,j+1;

sy=oldbuf(i-1,j+1)+2*oldbuf(i,j+1)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)- 2*oldbuf(i,j-1)-oldbuf(i+1,j-1;

newbuf(i,j)=abs(sx)+abs(sy);

end

end

function newbuf=LapFilter(oldbuf,M,N); % LapFilter()

for i=2:M-1

for j=2:N-1

newbuf(i,j)=5*oldbuf(i,j)-oldbuf(i-1,j)-oldbuf(i+1,j)-oldbuf(i,j-1)-oldbuf(i,j+1); end

end

四、实验结果及分析

实验截图如下:

从上面的图像可以看出:

Robert 梯度算子得出的图像能够得出原图的大部分边缘细节,灰度差别越

大的地方结果越大,所以显示时较为明亮。一些边缘由于灰度差值较小,在得出的结果图像中不容易分辨出来。

Sobel 算子得出的图像则显得明亮而粗壮。所有的边缘细节均被显示出来,特别是人物面部。由于其结果粗壮,面部细节显得非常密集。

Laplace 算子则用以将图像的边缘、细节增强,通过结果结果可以看出,图像的细节明显比原来突出。但是这个方法存在的弊端是,在背景区域,结果图像中有一些噪声的图样也被加强了。

实验五 图像方块编码(BTC)

一、实验目的

通过编程实验,掌握方块编码的基本方法及压缩性能。

二、实验内容

编程实现子块为n ×n 的方块编码基本方法,分别取n =2,4,8方块尺寸进行方块编码实验,计算编码后的均方误差和压缩比。

三、实验方法及编程

本实验采用的方案为:

1m

(1)x T ==∑x i

m i =1

1m -q

(2)a 0=l =x i x i

function outbuf=BtcBlock(inbuf,n)

% btcblock() 方块编码算法函数 % inbuf 方块数组 % n 方块尺寸

% outbuf 存放处理后的方块图像 temp=0; temp0=0; temp1=0; q=0; m=n*n; inbuf=double(inbuf); 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)>=xt) q=q+1;

temp1=temp1+inbuf(i,j); else

temp0=temp0+inbuf(i,j); end end end if q~=m

a0=round(temp0/(m-q)); end if q~=0

a1=round(temp1/q); end for i=1:n for j=1:n

if (inbuf(i,j)

outbuf(i,j)=a1; end end end

四、实验结果及分析

实验截图如下:

由实验结果可以看出,窗口大小较小(如2×2) 时,编码图像与原图像比几乎相同,很难察觉出误差。而当窗口较大(如8×8) 时,在一些细节较多的部位就能看出有较明显的方块效应。同时,窗口越大,其对码率的压缩效果也越明显。综合考虑,当窗口大于8×8时,方块效应会导致观察上有一定的障碍,故选择2×2或4×4较为合适。

实验六 图像线性预测编码(DPCM)

一、实验目的

通过编程设计,掌握帧内DPCM 的编解码方法(预测、量化) 及其压缩性能。

二、实验内容:

1、编制一维前值预测DPCM 编解码程序,预测系数取(1,0,0,0)。 2、编制二维前值预测DPCM 编解码程序,预测系数取(1/2,1/4,0,1/4)。 3、重建图像f ′(i , j ) 与原图像f (i , j ) 的误差图像,用绝对值表示如下。

d i , j =n f '(i , j ) -f (i , j )

式中的n 为放大因子,以便观察误差的分布情况。本实验采用15个量化分层的主观量化器,其量化电平分别取(0,±5, ±7, ±10, ±17, ±28, ±39, ±52, ±67) 。

三、实验方法及编程

图像的线性预测编码所运用的基本原理是基于二维图像中相邻图像间存在着很强的相关性。

ˆ0表示预测值,假定当前待编码的像素为x 0,a i 表示预测系数,并用x 则x 0的预测值为:

ˆ0=a 1x 1+a 2x 2+a 3x 3+a 4x 4 x

预测误差为:

ˆ0 e =x 0-x

x 0的恢复值为:

'=x ˆ0+e q (e q 为e 的量化值) x 0

程序的主体部分如下:

function newbuf=Dpcm_code(oldbuf,M,N,dim);

% Dpcm_Code() “线性预测编解码器”算法函数 % oldbuf 原图像数组 % M,N 原图像尺度

% dim 选择预测编码维数

% newbuf 存放处理后的图像二维数组

global newbuf; %定义全局变量 for i=1:M for j=1:N

pre_val=Predict_Value(i,j,N,dim); err=oldbuf(i,j)-pre_val;

quan_err=Quant_Value(err);

res_val=Restor_Value(quan_err,pre_val); newbuf(i,j)=Clip_Value(res_val); end end

function newbuf=Error_Code(M,N,dim);

% Error_Code() “传输误码解码器”算法函数 % 参数:

% M,N 原图像尺度

% dim 选择预测编码维数

% newbuf 存放处理后的图像二维数组 global newbuf; wrong=zeros(M,N);

wrong(100,100)=120; for i=1:M for j=1:N

pre_val=Predict_Value(i,j,N,dim); err=wrong(i,j);

quan_err=Quant_Value(err);

res_val=Restor_Value(quan_err,pre_val); newbuf(i,j)=Clip_Value(res_val); end end

function Pvalue=Predict_Value(row,col,N,dim)

% {This function is used to give predicted value as linear predictor. % The prediction formula is as follows:

% 1_D DPCM: ^x[i,j]=128 if j=1 % x'[i,j-1] if j>1 % 2_D DPCM: ^x[i,j]=128 if i=1,j=1 % x'[ i,j-1] if i=1,j>1

% x'[i-1,j ] if i>1,j=1 or N

% 1/2x'[ i,j-1] if i>1,j>1 % 1/8x'[i-1,j-1] (Pirsch's predictor) % 1/4x'[i-1,j ] % 1/8x'[i-1,j+1] global newbuf; switch dim case 1

if col==1

Pvalue=128; else

Pvalue=newbuf(row,col-1); end case 2

if (row==1&&col==1)

Pvalue=128; end

if (row==1&&col>1)

Pvalue=newbuf(row,col-1); end

if (row>1&&col==1)||(row>1&&col==N)

Pvalue=newbuf(row-1,col); end

if (row>1&&col>1&&col

Pvalue=(1/2)*newbuf(row,col-1)+(1/4)*newbuf(row-1,col-1)+(1/4)*newbuf(row-1,col+1);

end end

function Qvalue=Quant_Value(err);

% This function is used as linear quantizer.The quantizer has totally % 15 quantization level : % 0,±5,±10,±17,±28,±39,±52,±67 if (abs(err)

if(abs(err)

i f(abs(err)

if(abs(err)

else

if(abs(err)

else if(abs(err)

else lev=67;

Qvalue=lev; if (err~=0)

Qvalue=lev*(err/abs(err));

end

function Rvalue=Restor_Value(quan_err,pre_val) % This function is used to get restored value of DPCM % x=^x+Quant_Error Rvalue=quan_err+pre_val;

function Cvalue=Clip_Value(res_val)

% This function is used to clip to restored value to 8_bit value % 0 if x255 % x otherwise if (res_val

if(res_val>255) Cvalue=255; else Cvalue=res_val; end end

四、实验结果及分析

由实验结果可以看出,一维和二维预测编码图像与原图均十分接近,两者的差别难以察觉。而从误码图像中可以看出,当在某一位置出现误码后,一维预测编码会将误差延续至整个行,显得很明显。二维预测编码则与之不同,其将误码延续至其后的斜后方,并且随着距离的增加迅速消失,总体而言,影响要小一些。两相比较,可以体现出二维预测编码的一些优势。

实验七名称:JPEG 压缩编码

一、实验目的

(1) 掌握n ×n 子块的DCT 图像变换及频谱特点。 (2) 熟悉JPEG 基本系统的图像编解码方法。

二、实验内容

1、编程实现n ×n 子块DCT 变换的图像频谱显示,8×8子块DCT 变换系数按“Z ”(Zig-Zag)扫描图像重建,计算图像的均方根误差RMSE ,显示误差图像和误差直方图。

2、编程实现JPEG 压缩编码,进行8×8子块的DCT 图像变换,JPEG 量化矩阵的量化与反量化,8×8子块DCT 的图像重建,计算图像的均方根误差RMSE ,显示误差图像和误差直方图。

三、实验方法及编程:

DCT频谱系数在方块中的分布有如下规律:直流系数位于左上角第一个的位置,且值较大。余下的为交流系数,越向右下角系数的值一般越小,属于高频分量。在细节较多的区域,DCT 频谱系数整体显得较亮,而在背景区,除了直流系数和少数低频系数,其余都为0或很小的值,故而显示为黑色。对DCT 系数做反DCT 变换则可复原出原图。若反变换前对DCT 系数进行取舍则可以降低码率,但是,会对图像质量带来一定的影响。

JPEG压缩编码的算法主要计算步骤如下:

(1)通过前向离散余弦变换减少图像数据相关性。 (2)利用人眼的视觉特性对DCT 系数进行量化。 (3)使用差分脉冲编码调制对直流系数进行编码。

(4)对交流系数进行“Z ”形扫描,使用行程长度编码对交流系数进行编码。 (5)熵编码器对上述描述符进行熵编码,可以采用霍夫曼编码,也可以采

用算数编码。 程序的主体部分如下:

f unction newbuf=DctBlock(oldbuf,Block)

% DctBlock() DCT n*n块频谱函数

% oldbuf 原图像数组

% Block DCT n*n当前块选择值

% newbuf 存放处理后的图像二维数组

oldbuf=double(oldbuf);

H=dctmtx(Block);

newbuf=blkproc(oldbuf,[Block Block],'P1*x*P2',H,H');

newbuf=log(abs(newbuf));

subplot(2,2,2);

imshow(newbuf,[]);

function newbuf=DctCode(oldbuf,DCTch)

% DctCode() DCT 8*8 块系数“Z”字扫描图像压缩函数

% oldbuf 原图像数组

% DCTch DCT 8*8 块“Z”扫描当前系数选择值

% newbuf 存放处理后的图像二维数组

zigzag=[1 2 6 7 15 16 28 29 %设置Z 扫描顺序

3 5 8 14 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];

tbuf=ones(8); %定义8*8全1数组

maskbuf=tbuf .* zigzag

扫描的二值掩模

oldbuf=double(oldbuf);

H=dctmtx(8);

dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');

newbuf=blkproc(dctno,[8 8],'P1*(x.*P2)*P3',H',maskbuf,H);

subplot(2,2,2);

21

为双精度

图像之差

imshow(newbuf,[]); eimag(oldbuf,newbuf); function newbuf=JpegCode(oldbuf) % JpegCode() JPEG 近似基准编码 % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 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] ; %标准亮度量化表 oldbuf=double(oldbuf); %原图像数据转换H=dctmtx(8); dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H'); jpegno=blkproc(dctno,[8 8],'round(x./P1)',z); jpegno1=blkproc(jpegno,[8 8],'x.*P1',z); newbuf=blkproc(jpegno1,[8 8],'P1*x*P2',H',H); subplot(2,2,2); imshow(newbuf,[]); eimag(oldbuf,newbuf); function eimag(oldbuf,newbuf) % eimag() e=double(oldbuf)-newbuf; %计算原图像与压缩22

[m,n]=size(e);RMSE=sqrt(sum(e(:).^2) / (m*n)); %计算均方根误差 if RMSE %如果有误差,即rmse

不为0

emax=max(abs(e(:))); %找图像差最大

[h,x]=hist(e(:),emax); %用于生成直方图

数据

if length(h) >= 1 %如果有数据 s=max(h(:));

subplot(2,2,3),bar(x,h/s,'k'); %显示图像差值直方

RMSE=num2str(RMSE); %把数值转换为字

符串

oldbuf=double(oldbuf); %原图像数据转换为双

精度

H=dctmtx(8);

dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');

jpegno=blkproc(dctno,[8 8],'round(x./P1)',z);

jpegno1=blkproc(jpegno,[8 8],'x.*P1',z);

newbuf=blkproc(jpegno1,[8 8],'P1*x*P2',H',H);

subplot(2,2,2);

imshow(newbuf,[]);

eimag(oldbuf,newbuf);

四、实验结果及分析

23

由实验结果可以看出:

当保留的系数很少时,恢复的图像有着严重的方块效应,对观看造成很大的阻碍。而当保留的系数较多时,恢复的图像和原图十分接近,对于观看基本没有影响。

JPEG 是常用的静态图片编码方法,实验时进行了一定的简化。从结果看,其编码的结果较好,对观看影响很小。同时,JPEG 对于码率的压缩也是效果很好的。

实验课程小结和思考 通过实验我学会了很多实用的内容。如在数字系统中进行处理、传输和存储图像,把代表图像的连续信号转变为离散信号的图像信号的数字化过程;利用锐化处理技术来加强图像的目标边界和图像细节;利用方块编码以便高效率地进行图像的数字传输或数字存储。

感谢谢老师的耐心指导,经过这门课的学习,我对图像处理的认识不再局限于但单调的理论知识,而是真正学会了如何利用理论知识来处理现实生活中发生的问题。

24

通信与信息工程学院

2016/2017学年第一学期

实 验 报 告

实验课程名称 数字图像处理与图像通信实验

专 业 电子信息工程

学 生 学 号

学 生 姓 名

指 导 教 师 谢世鹏

指 导 单 位 广播工程电视系

实验一 图像信号的数字化

一、实验目的

通过本实验了解图像的数字化参数取样频率(像素个数) 、量化级数与图像质量的关系。

二、实验内容

1、编写并调试图像数字化程序。要求参数k ,N 可调。其中,k 为亚抽样比例,N 为量化比特数。

2、可选任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。

三、实验方法及编程

在数字系统中进行处理、传输和存储图像,必须把代表图像的连续信号转变为离散信号,这种变换过程称为图像信号的数字化。它包括采样和量化两种处理。本实验对数字图像进行再采样和再量化,以考察人眼对数字图像的分辨率和灰度级的敏感程度。

程序的主体部分如下:

function newbuf=Sample_Quant(oldbuf,k,n)%

% 函数名称:Sample_Quant() 图像数字化算法函数

% oldbuf 原图像数组

% M N 原图像尺寸

% k 取样间隔

% n 量化比特值

% newbuf 存放处理后的图像二维数组

[M,N]=size(oldbuf);

oldbuf=double(oldbuf);

x=1;y=1;

while x

while y

new=(round(oldbuf(x,y)/(2^(8-n))))*(2^(8-n));

for i=0:k-1

for j=0:k-1

if(x+i

newbuf(x+i,y+j)=uint8(new);

end

end

end

y=y+k;

end

if y>=N

y=1;

end

x=x+k;

end

四、实验结果及分析

实验截图如下:

由实验结果可以看出,亚抽样比例k 和量化比特数N 对都会使图像变得模糊,但两者的影响是不相同的。

亚抽样比例k 的大小决定了数字化图像的方块效应是否明显。当k 较大时,数字化图像会有较为明显的块状出现,对于图像的视觉效果影响很大。

量化比特数N 则决定了图像的灰度级,量化比特数为N 时,图像有个2N 灰度级。所以当N 较小时,图像会出现不规则的区域有着相同的灰度值的情况,但是这些区域在原图像中却有着差别较小的不同的灰度值。特别是在原图的灰度渐变的区域,这种效应会变得尤为明显。

实验二 图像灰度级修正

一、实验目的

掌握常用的图像灰度级修正方法,即图像的灰度变换法和直方图均衡化法,加深对灰度直方图的理解。

二、实验内容

1、编程实现图像的灰度变换。改变图像输入、输出映射的灰度参数范围(拉伸和反比) ,观看图像处理结果。

2、修改可选参数gamma 值,使其大于1,等于1和小于1,观看图像处理结果。

3、对图像直方图均衡化处理,显示均衡前后的直方图和图像。

三、实验方法及编程

灰度级修正是图像空间域上的增强方法图像增强,它以图像的灰度映射变换为基础,直接对图像中的像素进行处理。常用到三种基本方式:线性,对数,幂次。

程序的主体部分如下:

Function newbuf=GrayGamma(oldbuf,r)

newbuf=imadjust(oldbuf,stretchlim(oldbuf),[],r);

newbuf=uint8(newbuf);

function newbuf=GrayEqualize(oldbuf)

% 函数名称:

% GrayEqualize() 直方图均衡算法函数

% 参数:

% oldbuf 原图像数组

% newbuf 存放处理后的图像二维数组

[M,N]=size(oldbuf);

NN=M*N;sk=0;

[COUNTS,X]=imhist(oldbuf,256);

for i=1:M

for j=1:N

kk=double(oldbuf(i,j));

for k=1:kk

sk=sk+COUNTS(k);

end

sk=sk/NN*256;

newbuf(i,j)=sk;

end

end

newbuf=uint8(newbuf);

四、实验结果及分析

实验截图如下:

由实验结果可以看出,所选的测试图像的灰度值主要分布于低值的部分。 经过无gamma 值的灰度值变换后,直观地看出:分布于低值部分的直方图分散开来,分布于几乎所有的灰度值,但是对映于各个灰度值的像素个数分布仍是不均匀的。变换后的图像比原图显得明亮、清晰。

经过第二第三幅图像可以进一步看出:gamma 值的灰度值变换则明显受gamma 值的影响:当gamma 值大于1时,直方图有向灰度为0的一端压缩的趋势,gamma 越大,这种趋势越明显。此时的图像比原图清晰,但是原本偏暗的部分更加偏黑,原本较亮的部分则变得发白,总体而言,图像偏暗的部分较多。当gamma 值小于1时,其趋势与gamma 值大于1相反,故整个图像显得发白。

直方图均衡后的图像也显得较为清晰、均匀。它能尽量将直方图变得均衡,分布也更为均匀,各个灰度值所对应的像素个数尽可能相同。

实验三 图像的平滑滤波

一、实验目的

图像平滑主要目的是减少噪声对图像的影响。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波两种最典型、最常用的处理算法进行程序设计,学习如何对已被污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。

二、实验内容

1、编写并调试窗口尺寸为m ×n 的平滑滤波函数。

2、编写并调试窗口尺寸为m ×n 的中值滤波函数。

三、实验方法及编程

在M*N的图像f 上,用m*n大小的滤波器模板进行线性滤波由这个公式给出:

g (x , y )=

m =-a n =-b ∑∑a b f (x +m , y +n ) h (m , n )

程序如下:

function newbuf=AverageFilter(oldbuf,M,N,m)

% 函数名称:

% AverageFilter() 均值滤波算法函数

% 参数:

% oldbuf 噪声图像数组

% M N 噪声图像尺寸

% m 矩形平滑窗口尺寸

% newbuf 存放处理后的图像二维数组

oldbuf=double(oldbuf);

newbuf=zeros(M,N);

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

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

for x=-(m-1)/2:(m-1)/2;

for y=-(m-1)/2:(m-1)/2;

newbuf(i,j)=newbuf(i,j)+oldbuf(i+x,j+y)/(m*m); end

end

end

end

function newbuf=MedianFilter(oldbuf,M,N,m)

% 函数名称:

% MedianFilter() 中值滤波算法函数

% 参数:

% oldbuf 原图像数组

% M N 原图像尺度

% m 滑动窗口尺寸

% newbuf 存放处理后的图像数组

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

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

k=1;

for x=-(m-1)/2:(m-1)/2;

for y=-(m-1)/2:(m-1)/2;

winbuf(k)=oldbuf(i+x,j+y);

k=k+1;

end

end

newbuf(i,j)=SeekMid(winbuf,m);

end

end

winsize=length(winbuf); %取窗口尺寸

for i=1:winsize %编写排序函数

for j=1:winsize-i

if(winbuf(i)>winbuf(j+i))

t=winbuf(i);

winbuf(i)=winbuf(j+i);

winbuf(j+i)=t;

end

end

end

mid=winbuf(ceil(m*m/2));

四、实验结果及分析

实验截图如下:

由实验结果可以看出,对于处理椒盐噪声,中值滤波比均值滤波要好很多。当窗口大小为3×3时,均值滤波能一定程度上降低噪声的污染,但是,仍能看出在噪声点,并没有完全消除噪声,只是将噪声与周围的图像进行了平均,噪声点只是显得模糊了,并没有完全消除。相比之下,中值滤波则效果明显,同为3×3的窗口,几乎能把所有的噪声点消除,效果非常显著。当窗口大小变大时,也能将大部分噪声点消除,但是会带来严重的模糊。

同时我们可以看出,两种方法都使得处理后的图像比原图要模糊,并且随着窗口的变大,图像变得越来越模糊。通过两种方法之间的比较则可以看出,同等窗口下中值滤波带来的模糊比均值滤波要轻一些。

实验四名称:图像的锐化处理

一、实验目的

学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts 算子、Sobel 算子边缘检测处理和Laplace 算子边缘增强处理,是图像的某些特征(如边缘、轮廓等) 得以进一步的增强及突出。

二、实验内容

1、编写梯度算子和Roberts 算子滤波函数。

2、编写Sobel 算子滤波函数。

3、编写拉普拉斯边缘增强滤波函数。

三、实验方法及编程

在实验中,我们对于这三种算子的算法,都有其各自对应的模板,根据这个模板我们可以方便地编写出程序的主体结构。指导书中也有对应的流程框图可供参考。

程序的主体部分如下:

function newbuf=RobFilter(oldbuf,M,N);

% RobFilter()

for i=1:M-1

for j=1:N-1

newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1))+abs(oldbuf(i+1,j)-oldbuf(i,j+1)); end

end

function newbuf=SobFilter(oldbuf,M,N); % SobFilter()

for i=2:M-1

for j=2:N-1

sx=oldbuf(i+1,j-1)+2*oldbuf(i+1,j)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)- 2*oldbuf(i-1,j)-oldbuf(i-1,j+1;

sy=oldbuf(i-1,j+1)+2*oldbuf(i,j+1)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)- 2*oldbuf(i,j-1)-oldbuf(i+1,j-1;

newbuf(i,j)=abs(sx)+abs(sy);

end

end

function newbuf=LapFilter(oldbuf,M,N); % LapFilter()

for i=2:M-1

for j=2:N-1

newbuf(i,j)=5*oldbuf(i,j)-oldbuf(i-1,j)-oldbuf(i+1,j)-oldbuf(i,j-1)-oldbuf(i,j+1); end

end

四、实验结果及分析

实验截图如下:

从上面的图像可以看出:

Robert 梯度算子得出的图像能够得出原图的大部分边缘细节,灰度差别越

大的地方结果越大,所以显示时较为明亮。一些边缘由于灰度差值较小,在得出的结果图像中不容易分辨出来。

Sobel 算子得出的图像则显得明亮而粗壮。所有的边缘细节均被显示出来,特别是人物面部。由于其结果粗壮,面部细节显得非常密集。

Laplace 算子则用以将图像的边缘、细节增强,通过结果结果可以看出,图像的细节明显比原来突出。但是这个方法存在的弊端是,在背景区域,结果图像中有一些噪声的图样也被加强了。

实验五 图像方块编码(BTC)

一、实验目的

通过编程实验,掌握方块编码的基本方法及压缩性能。

二、实验内容

编程实现子块为n ×n 的方块编码基本方法,分别取n =2,4,8方块尺寸进行方块编码实验,计算编码后的均方误差和压缩比。

三、实验方法及编程

本实验采用的方案为:

1m

(1)x T ==∑x i

m i =1

1m -q

(2)a 0=l =x i x i

function outbuf=BtcBlock(inbuf,n)

% btcblock() 方块编码算法函数 % inbuf 方块数组 % n 方块尺寸

% outbuf 存放处理后的方块图像 temp=0; temp0=0; temp1=0; q=0; m=n*n; inbuf=double(inbuf); 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)>=xt) q=q+1;

temp1=temp1+inbuf(i,j); else

temp0=temp0+inbuf(i,j); end end end if q~=m

a0=round(temp0/(m-q)); end if q~=0

a1=round(temp1/q); end for i=1:n for j=1:n

if (inbuf(i,j)

outbuf(i,j)=a1; end end end

四、实验结果及分析

实验截图如下:

由实验结果可以看出,窗口大小较小(如2×2) 时,编码图像与原图像比几乎相同,很难察觉出误差。而当窗口较大(如8×8) 时,在一些细节较多的部位就能看出有较明显的方块效应。同时,窗口越大,其对码率的压缩效果也越明显。综合考虑,当窗口大于8×8时,方块效应会导致观察上有一定的障碍,故选择2×2或4×4较为合适。

实验六 图像线性预测编码(DPCM)

一、实验目的

通过编程设计,掌握帧内DPCM 的编解码方法(预测、量化) 及其压缩性能。

二、实验内容:

1、编制一维前值预测DPCM 编解码程序,预测系数取(1,0,0,0)。 2、编制二维前值预测DPCM 编解码程序,预测系数取(1/2,1/4,0,1/4)。 3、重建图像f ′(i , j ) 与原图像f (i , j ) 的误差图像,用绝对值表示如下。

d i , j =n f '(i , j ) -f (i , j )

式中的n 为放大因子,以便观察误差的分布情况。本实验采用15个量化分层的主观量化器,其量化电平分别取(0,±5, ±7, ±10, ±17, ±28, ±39, ±52, ±67) 。

三、实验方法及编程

图像的线性预测编码所运用的基本原理是基于二维图像中相邻图像间存在着很强的相关性。

ˆ0表示预测值,假定当前待编码的像素为x 0,a i 表示预测系数,并用x 则x 0的预测值为:

ˆ0=a 1x 1+a 2x 2+a 3x 3+a 4x 4 x

预测误差为:

ˆ0 e =x 0-x

x 0的恢复值为:

'=x ˆ0+e q (e q 为e 的量化值) x 0

程序的主体部分如下:

function newbuf=Dpcm_code(oldbuf,M,N,dim);

% Dpcm_Code() “线性预测编解码器”算法函数 % oldbuf 原图像数组 % M,N 原图像尺度

% dim 选择预测编码维数

% newbuf 存放处理后的图像二维数组

global newbuf; %定义全局变量 for i=1:M for j=1:N

pre_val=Predict_Value(i,j,N,dim); err=oldbuf(i,j)-pre_val;

quan_err=Quant_Value(err);

res_val=Restor_Value(quan_err,pre_val); newbuf(i,j)=Clip_Value(res_val); end end

function newbuf=Error_Code(M,N,dim);

% Error_Code() “传输误码解码器”算法函数 % 参数:

% M,N 原图像尺度

% dim 选择预测编码维数

% newbuf 存放处理后的图像二维数组 global newbuf; wrong=zeros(M,N);

wrong(100,100)=120; for i=1:M for j=1:N

pre_val=Predict_Value(i,j,N,dim); err=wrong(i,j);

quan_err=Quant_Value(err);

res_val=Restor_Value(quan_err,pre_val); newbuf(i,j)=Clip_Value(res_val); end end

function Pvalue=Predict_Value(row,col,N,dim)

% {This function is used to give predicted value as linear predictor. % The prediction formula is as follows:

% 1_D DPCM: ^x[i,j]=128 if j=1 % x'[i,j-1] if j>1 % 2_D DPCM: ^x[i,j]=128 if i=1,j=1 % x'[ i,j-1] if i=1,j>1

% x'[i-1,j ] if i>1,j=1 or N

% 1/2x'[ i,j-1] if i>1,j>1 % 1/8x'[i-1,j-1] (Pirsch's predictor) % 1/4x'[i-1,j ] % 1/8x'[i-1,j+1] global newbuf; switch dim case 1

if col==1

Pvalue=128; else

Pvalue=newbuf(row,col-1); end case 2

if (row==1&&col==1)

Pvalue=128; end

if (row==1&&col>1)

Pvalue=newbuf(row,col-1); end

if (row>1&&col==1)||(row>1&&col==N)

Pvalue=newbuf(row-1,col); end

if (row>1&&col>1&&col

Pvalue=(1/2)*newbuf(row,col-1)+(1/4)*newbuf(row-1,col-1)+(1/4)*newbuf(row-1,col+1);

end end

function Qvalue=Quant_Value(err);

% This function is used as linear quantizer.The quantizer has totally % 15 quantization level : % 0,±5,±10,±17,±28,±39,±52,±67 if (abs(err)

if(abs(err)

i f(abs(err)

if(abs(err)

else

if(abs(err)

else if(abs(err)

else lev=67;

Qvalue=lev; if (err~=0)

Qvalue=lev*(err/abs(err));

end

function Rvalue=Restor_Value(quan_err,pre_val) % This function is used to get restored value of DPCM % x=^x+Quant_Error Rvalue=quan_err+pre_val;

function Cvalue=Clip_Value(res_val)

% This function is used to clip to restored value to 8_bit value % 0 if x255 % x otherwise if (res_val

if(res_val>255) Cvalue=255; else Cvalue=res_val; end end

四、实验结果及分析

由实验结果可以看出,一维和二维预测编码图像与原图均十分接近,两者的差别难以察觉。而从误码图像中可以看出,当在某一位置出现误码后,一维预测编码会将误差延续至整个行,显得很明显。二维预测编码则与之不同,其将误码延续至其后的斜后方,并且随着距离的增加迅速消失,总体而言,影响要小一些。两相比较,可以体现出二维预测编码的一些优势。

实验七名称:JPEG 压缩编码

一、实验目的

(1) 掌握n ×n 子块的DCT 图像变换及频谱特点。 (2) 熟悉JPEG 基本系统的图像编解码方法。

二、实验内容

1、编程实现n ×n 子块DCT 变换的图像频谱显示,8×8子块DCT 变换系数按“Z ”(Zig-Zag)扫描图像重建,计算图像的均方根误差RMSE ,显示误差图像和误差直方图。

2、编程实现JPEG 压缩编码,进行8×8子块的DCT 图像变换,JPEG 量化矩阵的量化与反量化,8×8子块DCT 的图像重建,计算图像的均方根误差RMSE ,显示误差图像和误差直方图。

三、实验方法及编程:

DCT频谱系数在方块中的分布有如下规律:直流系数位于左上角第一个的位置,且值较大。余下的为交流系数,越向右下角系数的值一般越小,属于高频分量。在细节较多的区域,DCT 频谱系数整体显得较亮,而在背景区,除了直流系数和少数低频系数,其余都为0或很小的值,故而显示为黑色。对DCT 系数做反DCT 变换则可复原出原图。若反变换前对DCT 系数进行取舍则可以降低码率,但是,会对图像质量带来一定的影响。

JPEG压缩编码的算法主要计算步骤如下:

(1)通过前向离散余弦变换减少图像数据相关性。 (2)利用人眼的视觉特性对DCT 系数进行量化。 (3)使用差分脉冲编码调制对直流系数进行编码。

(4)对交流系数进行“Z ”形扫描,使用行程长度编码对交流系数进行编码。 (5)熵编码器对上述描述符进行熵编码,可以采用霍夫曼编码,也可以采

用算数编码。 程序的主体部分如下:

f unction newbuf=DctBlock(oldbuf,Block)

% DctBlock() DCT n*n块频谱函数

% oldbuf 原图像数组

% Block DCT n*n当前块选择值

% newbuf 存放处理后的图像二维数组

oldbuf=double(oldbuf);

H=dctmtx(Block);

newbuf=blkproc(oldbuf,[Block Block],'P1*x*P2',H,H');

newbuf=log(abs(newbuf));

subplot(2,2,2);

imshow(newbuf,[]);

function newbuf=DctCode(oldbuf,DCTch)

% DctCode() DCT 8*8 块系数“Z”字扫描图像压缩函数

% oldbuf 原图像数组

% DCTch DCT 8*8 块“Z”扫描当前系数选择值

% newbuf 存放处理后的图像二维数组

zigzag=[1 2 6 7 15 16 28 29 %设置Z 扫描顺序

3 5 8 14 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];

tbuf=ones(8); %定义8*8全1数组

maskbuf=tbuf .* zigzag

扫描的二值掩模

oldbuf=double(oldbuf);

H=dctmtx(8);

dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');

newbuf=blkproc(dctno,[8 8],'P1*(x.*P2)*P3',H',maskbuf,H);

subplot(2,2,2);

21

为双精度

图像之差

imshow(newbuf,[]); eimag(oldbuf,newbuf); function newbuf=JpegCode(oldbuf) % JpegCode() JPEG 近似基准编码 % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 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] ; %标准亮度量化表 oldbuf=double(oldbuf); %原图像数据转换H=dctmtx(8); dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H'); jpegno=blkproc(dctno,[8 8],'round(x./P1)',z); jpegno1=blkproc(jpegno,[8 8],'x.*P1',z); newbuf=blkproc(jpegno1,[8 8],'P1*x*P2',H',H); subplot(2,2,2); imshow(newbuf,[]); eimag(oldbuf,newbuf); function eimag(oldbuf,newbuf) % eimag() e=double(oldbuf)-newbuf; %计算原图像与压缩22

[m,n]=size(e);RMSE=sqrt(sum(e(:).^2) / (m*n)); %计算均方根误差 if RMSE %如果有误差,即rmse

不为0

emax=max(abs(e(:))); %找图像差最大

[h,x]=hist(e(:),emax); %用于生成直方图

数据

if length(h) >= 1 %如果有数据 s=max(h(:));

subplot(2,2,3),bar(x,h/s,'k'); %显示图像差值直方

RMSE=num2str(RMSE); %把数值转换为字

符串

oldbuf=double(oldbuf); %原图像数据转换为双

精度

H=dctmtx(8);

dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');

jpegno=blkproc(dctno,[8 8],'round(x./P1)',z);

jpegno1=blkproc(jpegno,[8 8],'x.*P1',z);

newbuf=blkproc(jpegno1,[8 8],'P1*x*P2',H',H);

subplot(2,2,2);

imshow(newbuf,[]);

eimag(oldbuf,newbuf);

四、实验结果及分析

23

由实验结果可以看出:

当保留的系数很少时,恢复的图像有着严重的方块效应,对观看造成很大的阻碍。而当保留的系数较多时,恢复的图像和原图十分接近,对于观看基本没有影响。

JPEG 是常用的静态图片编码方法,实验时进行了一定的简化。从结果看,其编码的结果较好,对观看影响很小。同时,JPEG 对于码率的压缩也是效果很好的。

实验课程小结和思考 通过实验我学会了很多实用的内容。如在数字系统中进行处理、传输和存储图像,把代表图像的连续信号转变为离散信号的图像信号的数字化过程;利用锐化处理技术来加强图像的目标边界和图像细节;利用方块编码以便高效率地进行图像的数字传输或数字存储。

感谢谢老师的耐心指导,经过这门课的学习,我对图像处理的认识不再局限于但单调的理论知识,而是真正学会了如何利用理论知识来处理现实生活中发生的问题。

24


相关文章

  • 电子信息工程专业最适合的考研方向
  • 电子信息工程考研方向解读 1电路与系统 2集成电路工程 3自动控制工程 4模式识别与智能系统 5通信与信息系统 6信号与信息处理 7电子与通信工程 8电力电子与电力传动 9光电信息工程 10物理电子学 11精密仪器及机械简介 12测试计量技 ...查看


  • 电子信息类专业对比
  • 三大电子类专业就业前景解析 发布时间:2009-9-7 0:00:00 作者:佚名 来源:转载 浏览量:329 [字体:大 中 小] 如今,我们正在进入一个数字化时代.3G手机给用户带来全新的体验,我们的电脑屏幕变化多端,数字电视深入人心. ...查看


  • 物联网在中国发展情况
  • 物联网在中国发展情况 "与计算机.互联网产业不同,中国在'物联网'领域享有国际话语权!"中科院上海微系统与信息技术研究所副所长.中科院无锡高新微纳传感网工程中心主任刘海涛自豪的说. 目前,我国的无线通信网络已经覆盖了城乡 ...查看


  • 通信工程主要课程
  • 通信工程主要课程详解 1.课程名称:电路分析 课程简介:本课程主要介绍集总电路中电压.电流的约束关系:独立电流.电压变量的分析方法:大规模电路分析方法:分解方法及单口网络:简单非线性电阻电路的分析:电容元件与电感元件:一.二阶电路:交流动态 ...查看


  • 本专业是计算机硬件与软件相结合
  • 本专业是计算机硬件与软件相结合.面向系统.侧重应用的宽口径专业.通过基础教学与专业训练,培养基础知识扎实.知识面宽.工程实践能力强,具有开拓创新意识,在计算机科学与技术领域从事科学研究.教育.开发和应用的高级人才. 本专业开设的主要课程有: ...查看


  • 2017考研择校:计算机专业院校排名
  • 2017考研择校:计算机专业院校排名 2017考研择校:计算机专业院校排名 中国研究生教育计算机专业排名计算机系统结构前20名(总共47所高校) 1. 清华大学(招生办) ,2. 华中科技大学,3. 西安交通大学,4. 上海交通大学,5. ...查看


  • 南京国家重点实验室
  • 南京的19个国家重点实验室 112.2.239.* 1楼 1 特种纤维复合材料国家重点实验室 中材科技股份有限公司(原玻纤院) 2 固体微结构物理国家重点实验室 南京大学 3 计算机软件新技术国家重点实验室 南京大学 4 现代配位化学国家重 ...查看


  • 浅析图像压缩编码方法
  • Computer 与技术电脑知识与技术Computer Knowledge Knowledge and and Technology Technology 电脑知识 Vol.6,No.23, August 2010, pp.6584-658 ...查看


  • 华侨大学学术期刊分类目录
  • 华侨大学学术期刊分类目录 (自然科学类) 一类期刊 科学通报,EI 收录,清华大学学报(自然科学版),北京大学学报(自然科学版),华中科技大学学报,南开大学学报(自然科学版),浙江大学学报(理学版), 上海交通大学学报,数学学报,数学年刊A ...查看


热门内容