数字图像的变换(实验报告)
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。
2.掌握数字图像处理的基本方法。
3.掌握常用数字滤波器的性质和使用方法。
4.熟练应用数字图像处理软件进行图像处理。
实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。
% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。
图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。
在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。
RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。
% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。
数字图像处理中的滤波是一种常用的图像增强方法。
滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。
% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。
这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。
下面是数字图像处理在人脸识别应用中的一个简单例子。
% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。
数字图像处理实验报告(图像灰度变换处理)
数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
《数字图像处理》实验报告
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
实验二数字图像变换
图像离散余弦变换一
对图像进行离散余弦变化,观察其余弦变换系数及余
弦反变换后恢复图像。
图像选取系统提供的cameraman.tif X=imread(‘cameraman.tif’) Imshow(X)
I = imread('cameraman.tif') ; %装入原始图像
subplot(3,1,1); imshow(I); J = dct2(I) ; %对I 进行二维DCT
实验二
数字图像变换
一、实验目的
了解图像的各种变换方法
运用matlab实现各种变换
二、实验原理
由于图像阵列很大,直接在空间域中进行处理,
涉及计算量很大。因此,往往采用各种图像变
换的方法,如傅立叶变换、沃尔什变换、离散
余弦变换等间接处理技术,将空间域的处理转
换为变换域处理,不仅可减少计算量,而且可
MATLAB提供的函数:FFT、FFT2、FFTn
三、实验内容
例:有一矩形函数f(m,n),矩形区域为1,其余为0,对该 矩形作傅立叶变换。
clear; N=100; f=zeros(50,50); f(15:35,23:28)=1; subplot(2,1,1) imshow(f) subplot(2,1,2) F=fft2(f); imshow(log(abs(F)))
M 1 N 1 2 F(u,v) c(u)c(v) f ( x, y)cos[ (2 x 1)u]cos[ (2 y 1)v] 2N 2M MN x 0 y 0
2 f ( x, y ) MN
M 1 N 1
c(u)c(v) f (u, v)cos[ 2N (2x 1) x]cos[ 2M (2 y 1) y] u 0 v 0
数字图像的变换(实验报告)
数字图像处理——第二次作业【摘要】本次作业通过对图像的灰度级数以及对其像素的点运算,算术运算、几何变换等,学习了MATLAB在数字图像处理中的运用,更深的理解了数字图像处理的原理和方法。
1.把lena 512*512图像灰度级逐级递减8-1显示;实验原理:根据图像分类原理,将给出的实验图像变换成为不同类型的图像。
处理结果如下图所示:128级灰度图64级灰度图32级灰度图16级灰度图8级灰度图4级灰度图2级灰度图实验结果分析:由实验结果可知,在图像灰度转换过程中,其图像的清晰度随着灰度级的降低而降低。
2、把elain图像和lena图像进行加减乘除运算,并按0-255灰度级显示;实验原理:图像的加减乘除运算,即图像的代数运算,是指对两幅或两幅以上的图像进行点对点加、减、乘、除运算而得到目标图像的运算。
图像处理代数运算的4种基本形式分别如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)式中,A(x,y)和B(x,y)为输入图像表达式;C(x,y)为输出图像表达式。
处理结果如下图:相加后的图相乘后的图结果分析:由所得结果可知,两幅图像进行相加运算可以实现图像的叠加,而通过减法运算可以实现混合图像的分离。
乘法运算可以用来获取对图像感兴趣的部分,对于需要保留下来的区域,掩膜图像的值置为1,而在需要被抑制掉的区域,掩膜图像的值置为0。
3.计算lena图像的均值方差;MATLAB提供了计算均值和标准差的函数,分别为函数mean()和函数std()。
在计算得标准差后,再平方可得方差值。
计算结果为:均值=99.0512方差=27964.把lena图像用近邻、双线性和双三次插值法zoom到2048*2048;原理:插值算法是估计在图象像素间的某个位置的像素的取值方法。
1)最近邻点插值法:在待插像素的周围四邻像素中,距离待求插像素最近的像素灰度赋给待插像素。
数字图像处理图像变换实验报告
实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。
点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。
如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。
一旦灰度变换函数确定,该点运算就完全确定下来了。
另外,点运算处理将改变图像的灰度直方图分布。
点运算又被称为对比度增强、对比度拉伸或灰度变换。
点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。
图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。
下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。
数字图像实验-图像变换及能量集中
Imshow(log(abs(J)),[8,10]);
title(‘fft2cgange’);
imshow(I)
J=dct2(I);
imshow(J)
K = idct2(J);
imshow(K)
figure, imshow(K,[0 255])
4.比较压缩前后的图像质量以及不同变换的压缩能力
1.读取图像(A.bmp)
命令:clear, close all
I = imread('C:\PSSENDFILES\L4_2.bmp');
2.显示已读取图像
命令:
imshow(I)
结果:
3.对读取图像进行变换(DFT和DCT)、压缩及显示压缩后图像
程序:
l
I = imread('C:\PSSENDFILES\L4_2.bmp');
4.DFT和DCT变换的压缩能力比较
二、实验目的
1.掌握用Matlab软件读取图像和显示技术。
2.应用Matlab软件实现图像的变换。
3.理解图像的变换域表示和压缩原理。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)
计算机一台(安装MATLAB6.5版本或以上版本)
四、实验试做记录(含程序、数据记录及分析)
数字视频技术课程实验报告实验一实验名称图像变换及能量集中电子工程系教师姓名实验地点实验日期姓名学号姓名学号一实验内容1
数字视频技术课程实验报告
实验一
实验名称
图像变换及能量集中
系别
电子工程系
教师姓名
实验地点
实验日期
姓名/学号
姓名/学号
一、实验内容
实验四数字图像几何变换
实验四数字图像几何变换一、实验目的1.熟悉并掌握图像几何变换的方法以及编程实现方法。
2.对前几次实验总结和回顾。
二、实验内容图像的缩放、旋转、镜像、转置。
三、实验原理图像缩放:图像缩放是指对数字图像的大小进行调整的过程,需要在处理效率以及结果的平滑度和清晰度上做一个权衡。
当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高。
相反地,缩小一个图像将会增强它的平滑度和清晰度。
图像旋转:把原图像像素从原点(x,y)放到目标位置点上(x',y'),这个(x,y)到(x',y')的转换是经过旋转计算而来的,这个图像处理就是旋转。
图像镜像:假设(x0,y0)为原图像上一点,图像水平平移量为tx,垂直平移量为ty,平移后的点为(x1,y1) x1=x0+tx,y1=y0+ty,转换后x0=x1-tx;y0=y1-ty 。
图像转置:是指将图像像素的x坐标y坐标互换。
四、实验步骤图像缩放编程实现图像的缩放时的缩放系数可调,分别用两个变量或一个向量保存水平和垂直方向上的缩放系数,显示图像处理结果。
图像旋转图像的旋转都是基于矩阵像素来显示,在这里我选择的是四十五度,如上图。
图像镜像图像上的每个点在设定一个水平平移量和垂直平移量后平移,变成与原图相反的图像,但是在图像的质量和其他变量不变,如上图。
图像转置转置是互换x y坐标,跟旋转有区别,五、实验总结这一次的实验比较简单,也许是有了前几次的经验了吧。
图像的缩放、旋转、镜像、转置,在日常生活中经常遇见,但是在这次实验中,我们了解到其正真原理,彻底认识了它们,改变了以前对图像缩放、旋转、镜像、转置的认识,更透彻,更正确,更准确。
数字图像实验报告
数字图像实验报告数字图像实验报告引言:数字图像处理是一门涉及计算机科学和电子工程的学科,它通过对图像进行数字化处理,实现对图像的分析、增强和改变。
本实验报告旨在介绍数字图像处理的基本概念和实验结果,以及对实验结果的分析和讨论。
一、实验目的本次实验的主要目的是了解数字图像处理的基本原理和方法,通过实践掌握常见的图像处理技术,并对实验结果进行分析和评估。
二、实验过程1. 图像获取在本次实验中,我们使用了一张自然风光的彩色图像作为实验对象。
这张图像包含了丰富的颜色和细节,能够很好地展示数字图像处理的效果。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理,以便更好地进行后续处理。
预处理包括图像去噪、增强和边缘检测等步骤。
我们使用了常见的滤波算法对图像进行去噪处理,然后使用直方图均衡化技术对图像进行增强,最后使用边缘检测算法提取图像的边缘信息。
3. 图像分割图像分割是将图像分成若干个具有独立特征的区域的过程。
我们使用了基于阈值的分割方法对图像进行分割,通过调整阈值的大小,可以得到不同的分割结果。
4. 特征提取特征提取是从图像中提取出具有代表性的特征,用于进一步分析和处理。
我们使用了常见的特征提取算法,如边缘检测、角点检测和纹理特征提取等,从图像中提取出了边缘、角点和纹理等特征。
5. 图像重建图像重建是将经过处理的图像恢复到原始状态的过程。
我们使用了图像插值算法对图像进行重建,通过插值算法,可以将图像的分辨率提高,从而得到更清晰的图像。
三、实验结果经过以上的处理步骤,我们得到了一系列经过处理的图像。
通过对比原始图像和处理后的图像,我们可以看到图像处理对图像的改变和影响。
在图像去噪和增强的过程中,我们成功地去除了图像中的噪声,并增强了图像的对比度和细节。
在图像分割和特征提取的过程中,我们成功地将图像分割成若干个具有独立特征的区域,并提取出了图像的边缘、角点和纹理等特征。
在图像重建的过程中,我们成功地提高了图像的分辨率,得到了更清晰的图像。
数字图像实验报告
实验报告专业名称班级学号学生姓名实验一图像的基本运算实验内容1、程序:I=imread('lena8.jpg');figure;subplot(2,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围subplot(2,3,2);imshow(J);title('线性扩展');I1=double(I); %将图像转换为double类型I2=I1/255; %归一化此图像C=2;K=C*log(1+I2); %求图像的对数变换subplot(2,3,3);imshow(K);title('非线性扩展');M=im2bw(I,0.5);M=~M;%M=255-I; %将此图像取反%Figuresubplot(2,3,4);imshow(M);title('灰度倒置');N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(2,3,5);imshow(N1);title('二值化阈值0.4');subplot(2,3,6);imshow(N2);title('二值化阈值0.7');结果:2、程序:I=imread('hough.bmp');%I=rgb2gray(I);J=imread('rice.bmp');I=im2double(I); %将图像转换成double型J=im2double(J);K=I+0.3*J; %两幅图像相加subplot(1,3,1);imshow(I);title('物图');subplot(1,3,2);imshow(J);title('背景图');subplot(1,3,3);imshow(K);title('相加后的图');imwrite(K,'lena1.jpg');结果;3、程序:A=imread('lena1.jpg');B=imread('rice.bmp');A=im2double(A);B=im2double(B);C=A-0.3*B;subplot(1,3,1);imshow(A);title('混合图');subplot(1,3,2);imshow(B);title('背景图');subplot(1,3,3);imshow(C);title('分离后的图');结果:4、程序:A=imread('rice.bmp');%A=rgb2gray(A);A=im2double(A);subplot(1,2,1);imshow(A);title('原图');B=zeros(256,256);B(40:200,40:200)=1;K=A.*B;subplot(1,2,2);imshow(K);title('局部图');结果:5、程序:A=imread('lena8.jpg');Bl=imresize(A,1.5); %比例放大1.5倍,默认的采用的是最近邻法进行线性插值B2=imresize (A, [420 384]); %非比例放大至420:384 Cl=imresize (A, 0 . 7) ; %比例缩小0.7倍C1=imresize(A, 0.7) ;C2=imresize(A, [150 180]) ; %非比例缩小到150:180 figure;subplot(2,2,1);imshow(Bl);title('比例放大图');subplot(2,2,2);imshow(B2);title('非比例放大图');subplot(2,2,3);imshow(C1);title('比例缩小图');subplot(2,2,4);imshow(C2);title('非比例缩小图');结果:实验二图像的变换实验内容1、程序:I=imread('1.bmp');%I=imread('LENA.JPG');%imshow(I);figure();subplot(3,2,1);imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅里叶频谱%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置RRfdpl=real(sfftI);IIfdpl=imag(sfftI);a=sqrt(RRfdpl.^2+IIfdpl.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;subplot(3,2,2);imshow(real(a));I=imread('2.bmp');%I=imread('LENA.JPG');%imshow(I);subplot(3,2,3);imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅里叶频谱%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置RRfdpl=real(sfftI);IIfdpl=imag(sfftI);a=sqrt(RRfdpl.^2+IIfdpl.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;subplot(3,2,4);imshow(real(a));I=imread('3.bmp');%I=imread('LENA.JPG');%imshow(I);subplot(3,2,5);imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅里叶频谱%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置RRfdpl=real(sfftI);IIfdpl=imag(sfftI);a=sqrt(RRfdpl.^2+IIfdpl.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;subplot(3,2,6);imshow(real(a));结果:2、程序:I=zeros(256,256);I(88:168,124:132)=1; %图像范围是256*256,前一值是纵向比,后一值是横向比figure(),subplot(2,2,1);imshow(I); %求原始图像的傅里叶变换J=fft2(I);F=abs(J);J1=fftshift(F);subplot(2,2,2);imshow(J1,[5 50]);%对原始图像进行旋转J=imrotate(I,90,'bilinear','crop');subplot(2,2,3);imshow(J);%求旋转后图像的傅里叶频谱J1=fft2(J);F=abs(J1);J2=fftshift(F);subplot(2,2,4);imshow(J2,[5 50]);结果:3、程序:%对lena24.jpg文件计算二维DCT变换RGB = imread('lena24.jpg');figure(1),subplot(1,3,1);imshow(RGB);I = rgb2gray(RGB);%真彩色图像转换成灰度图像J = dct2(I);%计算二维DCT变换subplot(1,3,2);imshow(log(abs(J)),[]);%对图像大部分能量集中在上右角处subplot(1,3,3);J(abs(J) < 10) = 0;%吧变换矩阵镇南关小于10的值置换为0,然后用idc2重构图像K = idct2(J)/255;imshow(K);结果:4、程序:RGB = imread('lena24.jpg');I=rgb2gray(RGB);I = im2double(I); %转换图像矩阵为双精度型T = dctmtx(8); %产生二维00?变换矩阵,%矩阵T及其转置T‘是DCT函数P1*X*P2的参数B = blkproc(I, [8 8],'P1*x*P2',T,T');mask1= [ 1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0];%二值掩模,用来压缩DCT系数B2=blkproc(B,[8 8],'P1.*x',mask1);%只保留DCT变换的10个系数I2=blkproc(B2,[8 8],'P1*x*P2',T',T);%重构图像figure,imshow(I);figure,imshow(B2);figure,imshow(I2);结果:实验三图像的增强实验内容1、程序:clear allclose allI{1}=double(imread('lena8.jpg'));I{1}=I{1}/255;figure(1),subplot(2,4,1),imshow(I{1},[]),hold onI{2}=double(imread('lena1.jpg'));I{2}=I{2}/255;subplot(2,4,5),imshow(I{2},[]),hold onfor m=1:2Index=0;for lemta=[0.5 5]Index=Index+1;F{m}{Index}=I{m}.^lemta;subplot(2,4,(m-1)*4+Index+1),imshow(F{m}{Index},[])endend结果:2、程序:clear allclose all%0.读图像I=double(imread('lena8.jpg'));figure,imshow (I,[])N=32;Hist_image=hist (I(:),N) ; %直方图Hist_image=Hist_image/sum (Hist_image); Hist_image_cumulation=cumsum(Hist_image); %累计直方图figure,stem([0:N-1] ,Hist_image) ;%1.设计目标直方图Index=0:N-1;Index=0:7;%正态分布直方图Hist{1}=exp(-(Index-4).^2/8);Hist{1}=Hist{1}/sum(Hist{1});Hist_cumulation{1}=cumsum(Hist{1});figure,stem([0:7],Hist{1})%倒三角形状直方图Hist{2}=abs(15-2*Index);Hist{2}=Hist{2}/sum(Hist{2});Hist_cumulation{2}=cumsum(Hist{2});figure,stem([0:7],Hist{2})%2.规定化处理for m=1:2Image=I;%2.1 SML处理for k=1:NTemp=abs(Hist_image_cumulation(k)-Hist_cumulation{m});[Tempi,Project{m}(k)]=min(Temp);end%2.2变换后直方图for k=1:NTemp=find(Project{m}==k);if isempty(Temp)Hist_result{m}(k)=0;elseHistresult{m}(k)=sum(Hist_image(Temp));endendfigure,stem([0:31],Hist_result{m});%2.3结果图Step=256/N;for k=1:NIndex=find(I>=Step*(k-1)&I<Step*k);Image(Index)=Project{m}(k);endfigure,imshow(Image,[])end结果:3、程序:clear allclose allI=double(imread('lena8.jpg'));figure,subplot(2,4,1);imshow(I,[]);% 1.均值低通滤波H=fspecial('average',5);F{1}=double(filter2(H,I));subplot(2,4,2);,imshow(F{1},[]);% 2 . gaussian低通滤波H=fspecial('gaussian',7,3); F{2}=double(filter2(H,I)); subplot(2,4,3);,imshow(F{2},[]);% 3.增强图像-原图-均值低通滤波F{3}=2*I-F{1};subplot(2,4,4);,imshow(uint8 (F{3}),[]);% 4.增强图像=原图-高斯低通滤波F{4}=2*I-F{2};subplot(2,4,5);,imshow(uint8 (F{4}),[]);%5. ‘prewitt’边缘算子增强H=fspecial('prewitt');F{ 5}=uint8(I+filter2(H,I));subplot(2,4,6);,imshow(F{5},[]);%6. ‘sobel’边缘算子增强H=fspecial('sobel');F{6}=uint8(I + filter2(H,I));subplot(2,4,7);,imshow(F{6},[]);结果:实验四图像的复原实验内容1、程序:clear;close all;%1.生成含噪图像img = imread('lena8.bmp');figure,subplot(2,3,1);imshow(img);img =double(imnoise(img,'salt & pepper', 0.01));subplot(2,3,2); ,imshow(img,[]);%2.采用均值滤波N=5; %滤波模板大小h=fspecial('average',N);I=filter2(h,img);subplot(2,3,3); ,imshow(I,[])%3.中值滤波I=medfilt2(img,[N N]);subplot(2,3,4); ,imshow(I,[])%4.最大值滤波I=ordfilt2(img,N*N,true(N));subplot(2,3,5); ,imshow(I,[])%5.最小值滤波I=ordfilt2(img,1,true(N));subplot(2,3,6); ,imshow(I,[])结果:2、程序:close allclear all%1.生成波纹噪声图像img = double(imread('lena8.bmp'));figure,subplot(2,3,1);imshow(img,[]);sizec=size(img);w=0.4*2*pi; %噪声的数字频率N=2*pi/w; %噪声每一周期的采样点数img_noise=img+20*ones(sizec(1),1)*sin(w*[1:sizec(2)]); subplot(2,3,2); ,imshow(img_noise,[]);%图像频谱F0=fft2(img);F0=fftshift(F0);subplot(2,3,3); ,imshow(log(abs(F0)),[]);F=fft2(img_noise);F=fftshift(F);subplot(2,3,4); ,imshow(log(abs(F)),[]);%2.设计理想陷波滤波器H=ones(sizec(1),sizec(2));%图像中心点x0=sizec(1)/2+1;y0=sizec(2)/2+1;%噪声所处频率点(x,y)x=x0;y=y0-round(sizec(2)/N);H (x,y-3:y+3)=0;H(x,(y0-y)+y0-3:(y0-y)+y0+3)=0; %3.滤波结果I=ifftshift(F.*H);imgl=ifft2(I);subplot(2,3,5); ; imshow(imgl,[]); 结果:。
数字图像处理实验报告(五个实验全)
数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。
a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。
s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b)b=double(b) 平移后的图像平移后的傅⾥叶频谱c=fft2(b);e=fftshift(c);l=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
数字图像处理图像的傅里叶变换实验报告南昌大学
实验报告五姓名:胡文松学号:6103413007 班级:生医131实验日期:2016.5.16 实验成绩:实验题目:图像的傅里叶变换一.实验目的(1)熟练掌握图像的快速傅里叶变换及其逆变换。
(2)熟练掌握图像的radon变换及其逆变换。
二.实验原理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
傅里叶变换是将时间域的函数f(t)表示为频率域的函数F(ω)的积分。
一般可称函数f (t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅里叶变换对(transform pair)。
图像傅里叶变换,谱对图像的平移是不敏感的,但它随旋转图像以相同的角度旋转。
图像平移后,他们的频谱不变,但旋转后,其频谱也以以相同的角度旋转。
三.实验内容及结果(1)任意选择一副图像,对图像进行旋转,显示原始图像和旋转后的图像,分别对其进行傅里叶变换,分析原图的傅里叶频谱与旋转后的傅里叶频谱的对应关系。
(2)选择一副图像boy.jpg,使用radon函数和iradon函数构建一个简单图像的投影并重建图像。
源程序和结果:I=phantom(256);figure;subplot(2,2,1);imshow(I);title('原始图像')J=fft2(I);F=abs(J);J1=fftshift(F);subplot(2,2,2);imshow(J1,[5 50]);title('原始图像的傅里叶频谱')K=imrotate(I,315,'bilinear','crop');subplot(2,2,3);imshow(K);title('原始图像进行旋转')K1=fft2(K);M=abs(K1);J2=fftshift(M);subplot(2,2,4);imshow(J2,[5 50]);title('旋转后图像的傅里叶频谱')theta=0:1:179;[R1,xp]=radon(I,theta);figure;subplot(2,2,1);imagesc(theta,xp,R1);xlabel('\theta');ylabel('x\prime' );title('18度');I1=iradon(R1,1);subplot(2,2,2);imshow(I1);title('18度');2.用MATLAB中的iradon函数对获得的投影数据进行滤波反投影重建,获得Shepp-Logan 模型的重建图像I1=iradon(R1,10);I2=iradon(R2,5);I3=iradon(R3,2);I4=iradon(R4,1);figure;subplot(2,2,1);imshow(I1);title('18 angles');subplot(2,2,2);imshow(I2);title('36 angles');subplot(2,2,3);imshow(I3);title('90 angles');subplot(2,2,4);imshow(I4);title('180 angles');四.结果分析从实验结果可知(1)图像旋转后,相应的傅里叶频谱也跟着做相应的旋转,且旋转角度是一样的,时域中信号被压缩,到频域中被拉伸。
数字图像处理实验报告
数字图像处理实验报告图像处理课程的目标是培养学生的试验综合素质与能力。
使学生通过实践,理解相关理论学问,将各类学问信息进行新的组合,制造出新的方法和新的思路,提高学生的科学试验与实际动手操作能力[1]。
从影像科筛选有价值的图像,建成影像学数字化试验教育平台,系统运行正常;具备图像上传、图像管理、图像检索与扫瞄、试验报告提交、老师批阅等功能;能满意使用要求[2]。
1.试验内容设计思路1.1项目建设内容和方法数字图像处理的内容:完整的数字图像处理大体上分为图像信息的猎取,存储,传送,处理,输出,和显示几个方面。
数字图像信息的猎取主要是把一幅图像转换成适合输入计算机和数字设备的数字信号,包括摄取图像,光、电转换及数字化。
数字图像信息的存储,数字图像信息的突出特点是数据量巨大,为了解决海量存储问题,数字图像的存储主要研究图像压缩,图像格式及图像数据库技术。
数字图像信息的传送数字图像信息的传送可分为系统内部传送与远距离传送[4]数字图像信息处理包括图像变换,图像增加,图像复原,彩色与多光谱处理图像重建,小波变换,图像编码,形态学,目标表示与描述。
数字图像输出和显示,最终目的是为人和机器供应一幅便于解释和识别的图像,数字图像的输出和显示也是数字图像处理的重要内容之一。
1.2数字图像处理的方法大致可以分为两大类,既空域法和频域法空域法:是把图像看做平面中各个像素组成的集合,然后直接对一维和二维函数进行相应处理,依据新图像生成方法的不同,空域处理法可为点处理法,区处理法,叠代处理法,跟踪处理法,位移不变与位移可变处理法。
点处理法的优点,点处理的典型用途a)灰度处理b)图像二值处理点处理方法的优点a)可用LUT方法快速实现b)节省存储空间。
区处理法,邻域处理法。
它依据输入图像的小邻域的像素值,按某些函数得到输出像素。
区处理法主要用于图象平滑和图像的锐化。
叠代处理法:叠代就是反复进行某些处理运算,图像叠代处理也是如此,拉普拉斯算子或平滑处理的结果是物体轮廓,该图像轮廓边缘太宽或粗细不一,要经过多次叠代把它处理成单像素轮廓——图像细化。
《数字图像处理》图像的几何变换实验报告
《数字图像处理》图像的几何变换实验报告1.实验目的掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其 MATLAB 编程实现方法。
2.实验环境MATLAB 6.5 以上版本、WIN XP 或 WIN2000 计算机3.实验内容与要求(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1、图像缩放clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');Scale = 1.35;J1= imresize(I,Scale,'nearest');J2= imresize(I,Scale,'bilinear');imshow(I),title('Original Image');text(60,20,'李荣桉 1909290239','horiz','center','color','r') figure, imshow(J1), title('Resized Image-- using thenearest neighbor interpolation');text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure, imshow(J2), title('Resized Image-- using thebilinear interpolation');text(60,20,'李荣桉 1909290239','horiz','center','color','r')2、图像旋转clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');Theta = 45;J1= imrotate(I,Theta,'nearest');Theta = -45;J2= imrotate(I,Theta,'bilinear','crop');imshow(I),title('Original Image');text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure, imshow(J1), title('Rotated Image-- using thenearest neighbor interpolation');text(60,20,'李荣桉 1909290239 ','horiz','center','color','r')figure, imshow(J2), title(' Rotated Image-- using thebilinear interpolation'); text(60,20,'李荣桉1909290239','horiz','center','color','r')3、图像水平镜像clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');I1 = flipdim(I,2);I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);text(60,20,'李荣桉 1909290239','horiz','center','color','r')subplot(1,2,2), imshow(I1);text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure(2), subplot(2,1,1), imshow(I);text(60,20,'李荣桉 1909290239','horiz','center','color','r')subplot(2,1,2), imshow(I2);text(60,20,'李荣桉 1909290239','horiz','center','color','r')4、总结通过实验是我掌握图像几何变换的基本原理,能过了解数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB 编程实现方法。
数字图像处理实验报告
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
数字图像处理实验报告
数字图象处理实验报告主要是图象的几何变换的编程实现,详细包括图象的读取、改写,图象平移,图象的镜像,图象的转置,比例缩放,旋转变换等.详细要求如下:1.编程实现图象平移,要求平移后的图象大小不变;2.编程实现图象的镜像;3.编程实现图象的转置;4.编程实现图象的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图象发展旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.本实验的目的是使学生熟悉并掌握图象处理编程环境,掌握图象平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图象文件的读、写操作,及图象平移、镜像、转置和旋转等几何变换的程序实现.3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开辟工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创立高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软根抵类库(MFC)和活动模板类库(ATL),因此它是软件开辟人员不可多得的开辟工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开辟,正由于VC具有明显的优势,于是我选择了它来作为数字图象几何变换的开辟工具.在本程序的开辟过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的表达和灵便的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图象BMP(BIT MAP )位图的文件构造:详细组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=”BM” bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebiXPelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或者更少256色DIB有256个表项或者更少真彩色DIB没有调色板每一个表项长度为4字节(32位)像素按照每行每列的顺序罗列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIBPixels DIB图象数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部份组成.2. BMP文件头BMP文件头数据构造含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保存字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每一个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有假设干个表项,每一个表项是一个RGBQUAD类型的构造,定义一种颜色.详细包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows一个扫描行所占的字节数必须是 4的倍数(即以long为单位),缺乏的以0填充.3.3 BMP(BIT MAP )位图的显示:①普通显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创立显示用位图, 用函数创立兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形发展淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图象所用颜色要少的设备上显示彩色图象.BMP位图显示方法如下:1. 翻开视频函数,普通放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在 函数中 显示位图5. 关闭视频函数 ,普通放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或者打印机上显示DIB. 在显示时不发展缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式发展控制,可以指定每一个像素颜色的位数,而且可以指定是否发展压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创立GDI位图.5. CreateDIBSection函数:该函数能创立一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用颤动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图象的几何变换图象的几何变换,通常包括图象的平移、图象的镜像变换、图像的转置、图象的缩放和图象的旋转等.实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图象处理的一些根本算法程序,来稳固和掌握图象处理技术的根本技能,提高实际动手能力,并通过实际编程了解图象处理软件的实现的根本原理。
《数字图像处理》实验报告
《数字图像处理》实验报告数字图像处理是计算机科学与技术领域中的一个重要分支,它涉及到对图像进行获取、处理、分析和显示等一系列操作。
在本次实验中,我们将学习和探索数字图像处理的基本概念和技术,并通过实验来加深对这些概念和技术的理解。
首先,我们需要了解数字图像的基本概念。
数字图像是由像素组成的二维矩阵,每个像素代表图像中的一个点,像素的灰度值或颜色值决定了该点的亮度或颜色。
在实验中,我们将使用灰度图像进行处理,其中每个像素的灰度值表示了该点的亮度。
在数字图像处理中,最基本的操作之一是图像的获取和显示。
我们可以通过摄像头或者从文件中读取图像数据,然后将其显示在计算机屏幕上。
通过这种方式,我们可以对图像进行观察和分析,为后续的处理操作做好准备。
接下来,我们将学习一些常见的图像处理操作。
其中之一是图像的灰度化处理。
通过将彩色图像转换为灰度图像,我们可以减少图像数据的维度,简化后续处理的复杂度。
灰度化处理的方法有多种,例如将彩色图像的RGB三个通道的像素值取平均值,或者使用加权平均值的方法来计算灰度值。
另一个常见的图像处理操作是图像的平滑处理。
图像平滑可以减少图像中的噪声,并使得图像更加清晰。
常用的图像平滑方法包括均值滤波和高斯滤波。
均值滤波通过计算像素周围邻域像素的平均值来平滑图像,而高斯滤波则使用一个高斯核函数来加权平均邻域像素的值。
除了平滑处理,图像的锐化处理也是数字图像处理中的一个重要操作。
图像的锐化可以增强图像的边缘和细节,使得图像更加清晰和鲜明。
常用的图像锐化方法包括拉普拉斯算子和Sobel算子。
这些算子通过计算像素周围邻域像素的差异来检测边缘,并增强边缘的灰度值。
此外,我们还将学习一些图像的变换操作。
其中之一是图像的缩放和旋转。
通过缩放操作,我们可以改变图像的尺寸,使其适应不同的显示设备或应用场景。
而旋转操作可以将图像按照一定的角度进行旋转,以达到某种特定的效果。
最后,我们将学习一些图像的特征提取和分析方法。
数字图像处理实验报告通用
数字图像处理实验报告通用数字图像处理实验报告通用数字图像处理是现代科学技术发展过程中的一个重要方向,它广泛地涉及到了计算机、数学、物理、电子等多个学科。
数字图像处理实验是数字图像处理领域中不可或缺的重要研究手段之一。
为了更好地展示实验结果和数据,以下是数字图像处理实验报告通用模板,以供参考。
1. 实验目的本次实验的目的是掌握数字图像处理的基本概念、算法以及其应用,在实践中学习数字图像处理的基础操作和技巧。
通过实验,学生可以更深入地理解数字图像处理的原理,并掌握数字图像处理应用的方法和技术。
2. 实验原理数字图像处理是将数字信号处理和图像处理结合起来的技术。
主要基于数字通信和数字信号处理原理,将二维图像进行数字化,并对其进行处理,实现图像的获取、传输、分析和显示等功能。
3. 实验流程(1) 图像获取和预处理:获取需要处理的图像,并进行基本的预处理,包括降噪、锐化、自适应增强等。
(2) 图像增强:通过滤波、直方图均衡化、灰度拉伸等操作,增强图像的亮度、对比度等特征。
(3) 图像变换:包括几何变换(旋转、平移、缩放等)、色彩空间变换(RGB空间、HSV空间等)等。
(4) 特征提取和分类:从图像中提取出感兴趣的特征,进行分类判别、目标检测等。
(5) 结果展示和分析:将处理后的图像结果进行展示和分析,分析图像特征和处理效果。
4. 实验结果(1) 原始图像(2) 预处理后的图像(3) 增强后的图像(4) 变换后的图像(5) 提取出的特征及分类结果(6) 结果展示和分析5. 实验总结通过本次实验,我们对数字图像处理的基本概念、算法和应用有了更深的理解,并掌握了数字图像处理的基础操作和技巧。
对于未来的科学研究和工程技术领域,数字图像处理具有广泛的应用前景,我们有信心在这个领域不断深耕,为社会的发展进步做出更大的贡献。
数字图像实验报告
数字图像实验报告学院:计算机与信息工程学院专业:通信工程学号:1008224072姓名:张清峰实验一图像增强—灰度变换专业:通信工程学号:1008224072姓名:张清峰一、实验目的:1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f 在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
三、实验内容:1、图像数据读出2、计算并分析图像直方图3、利用直接灰度变换法对图像进行灰度变换下面给出灰度变化的MATLAB程序f=imread('C:\ch17\tu\6.jpg');g=imhist(f,256);imshow(g) %显示其直方图k=im2uint8(mat2gray(log(1+double(f))));figure,imshow(k) %使用对数变换减小动态范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理——第二次作业【摘要】本次作业通过对图像的灰度级数以及对其像素的点运算,算术运算、几何变换等,学习了MATLAB在数字图像处理中的运用,更深的理解了数字图像处理的原理和方法。
1.把lena 512*512图像灰度级逐级递减8-1显示;实验原理:根据图像分类原理,将给出的实验图像变换成为不同类型的图像。
处理结果如下图所示:128级灰度图64级灰度图32级灰度图16级灰度图8级灰度图4级灰度图2级灰度图实验结果分析:由实验结果可知,在图像灰度转换过程中,其图像的清晰度随着灰度级的降低而降低。
2、把elain图像和lena图像进行加减乘除运算,并按0-255灰度级显示;实验原理:图像的加减乘除运算,即图像的代数运算,是指对两幅或两幅以上的图像进行点对点加、减、乘、除运算而得到目标图像的运算。
图像处理代数运算的4种基本形式分别如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)式中,A(x,y)和B(x,y)为输入图像表达式;C(x,y)为输出图像表达式。
处理结果如下图:相加后的图相乘后的图结果分析:由所得结果可知,两幅图像进行相加运算可以实现图像的叠加,而通过减法运算可以实现混合图像的分离。
乘法运算可以用来获取对图像感兴趣的部分,对于需要保留下来的区域,掩膜图像的值置为1,而在需要被抑制掉的区域,掩膜图像的值置为0。
3.计算lena图像的均值方差;MATLAB提供了计算均值和标准差的函数,分别为函数mean()和函数std()。
在计算得标准差后,再平方可得方差值。
计算结果为:均值=99.0512方差=27964.把lena图像用近邻、双线性和双三次插值法zoom到2048*2048;原理:插值算法是估计在图象像素间的某个位置的像素的取值方法。
1)最近邻点插值法:在待插像素的周围四邻像素中,距离待求插像素最近的像素灰度赋给待插像素。
该方法最简单,但校正后存在灰度不连续性,图像有明显锯齿状。
2)双线性插值算法双线性插值算法输出的图像的每个像素都是原图中四个像素(2×2)运算的结果,这种算法极大地消除了锯齿现象。
3)双三次插值算法双三次插值算法是上一种算法的改进算法,它输出图像的每个像素都是原图16个像素(16×16)运算的结果。
这种算法是一种很常见的算法,普遍用在图像编辑软件、打印机驱动和数码相机上。
我们用MATLAB提供的interp()函数来进行插值,其调用格式为:ZI=interp2(Z,ntimes,method) 或ZI=interp2(Z,[ ],method)其中,Z为原图像,Z1为插值后的图像,method为插值算法,ntimes为缩放倍数。
也可以直接在方括号中输入插值后图像的大小,如ZI=interp2(Z,[2048*2048],’nearest’);处理结果如下图所示:近邻插值法ZOOM到2048*2048双线性插值法ZOOM 到2048*2048双三次插值法ZOOM 到2048*20485、 把lena 和elain 图像分别进行水平shear (参数可设置为1.5,或者自行选择)和旋转30度,并采用用近邻、双线性和双三次插值法zoom 到2048*2048;原理分析:①这里我们采用仿射变换(affine transformation)来进行水平裁剪。
仿射变换是空间直角坐标变换的一种,它是一种二维坐标到二维坐标的线性变换,保持二维图形的“平直线”和“平行性”,可以通过一系列的原子变换的复合来实现,包括平移、缩放、翻转、旋转和剪切。
“剪切变换”又称“错切变换”,类似于四边形不稳定性的性质。
其中剪切仿射变换的变换矩阵为:1010001shx shy ⎡⎤⎢⎥⎢⎥⎣⎦ 相当于一个横向剪切10010001shy ⎡⎤⎢⎥⎢⎥⎣⎦与一个纵向剪切10010001shx ⎡⎤⎢⎥⎢⎥⎣⎦的复合。
②对图像的“旋转”操作,我们直接调用MATLAB 的imrotate ()函数即可。
y2=imrotate(Y ,angle,'crop');其中,angle 为旋转角度(默认为逆时针),crop 代表旋转后裁剪,即将旋转后的图像超出原图像大小范围的部分裁剪掉。
如果缺省则默认为不裁剪。
处理结果如下图示:水平shear 后的lena.bmp水平shear后用双线性插值法放大到2048*2048的lena.bmp用近邻法旋转30度的lena.bmp用近邻法旋转30度并经过裁剪的lena.bmp旋转30度后用近邻插值法放大到2048*2048的.elain.bmp旋转30度后用双线性插值法放大到2048*2048的elain.bmp旋转30度后用双三次插值法放大到2048*2048的elain.bmp【附录】1.参考文献:[1] 杨杰:《数字图像处理及MATLAB实现——学习与实验指导》,北京,电子工业出版社,2010年版。
[2]冈萨雷斯:《数字图像处理(第三版)》,北京,电子工业出版社,2010年版。
[3]/s/blog_4af655c30100d7ed.html2.源代码:第一题:>> X=imread('E:\大三下\图像处理课件\作业\第二次作业\lena.bmp','bmp');>> [wid,hei]=size(X);>> img2=zeros(wid,hei);>> img4=zeros(wid,hei);>> img8=zeros(wid,hei);>> img16=zeros(wid,hei);>> img32=zeros(wid,hei);>> img64=zeros(wid,hei);>> img128=zeros(wid,hei);>> for i=1:widfor j=1:heiimg128(i,j)=floor(X(i,j)/2);endend>> figure>> imshow(uint8(img128),[0,127])>> title(‘128级灰度图’)>> for i=1:widfor j=1:heiimg64(i,j)=floor(X(i,j)/4);endend>> figure>> imshow(uint8(img64),[0,63])>> title(‘64级灰度图’)>> for i=1:widfor j=1:heiimg32(i,j)=floor(X(i,j)/8);endend>> figure>> imshow(uint8(img32),[0,31])>> title(‘32级灰度图’)>> for i=1:widfor j=1:heiimg16(i,j)=floor(X(i,j)/16);endendfigure>> imshow(uint8(img16),[0,15])>> title(‘16级灰度图’)>> for i=1:widfor j=1:heiimg8(i,j)=floor(X(i,j)/32);endend>> figure>> imshow(uint8(img8),[0,7])>> title(‘8级灰度图’)>> for i=1:widfor j=1:heiimg4(i,j)=floor(X(i,j)/64);endend>> figure>> imshow(uint8(img4),[0,3])>> title(‘4级灰度图’)>> for i=1:widfor j=1:heiimg2(i,j)=floor(X(i,j)/128);endendfigure>> imshow(uint8(img2),[0,1])>> title(‘2级灰度图’)第二题:MATLAB处理程序如下:>> X=imread('E:\大三下\图像处理英文课件\作业\第二次作业\lena.bmp','bmp'); >> Y=imread('E:\大三下\图像处理英文课件\作业\第二次作业\elain1.bmp','bmp'); >> A=X+0.7*Y;>>figure>> imshow(A);>> title('相加后的图')>> S=X-0.3*Y;>>figure>> imshow(S);>> title('相减后的图')>> M=0.01*X.*Y;>>figure>> imshow(M);>> title('相乘后的图')>> D=X./(0.01*Y);Warning: Divide by zero.>> figure>> imshow(D);>>title('相除后的图')第三题:MATLAB处理程序如下:>> [X,MAP]=imread('E:\大三下\图像处理英文课件\作业\第二次作业\lena.bmp','bmp'); >> average=mean2(X) %求均值average =99.0512>> j=std2(X) %求标准差j =52.8776>> D=j^2 %求方差D =2.7960e+003第四题:MATLAB处理程序如下:>> X=imread('E:\大三下\图像处理英文课件\作业\第二次作业\lena.bmp','bmp');>> X1=imresize(X,4,'nearest');>> X2=imresize(X,4,'bilinear');>> X3=imresize(X,4,'bicubic');>> figure(1)>> imshow(X1);Warning: Image is too big to fit on screen; displaying at 25%>> title('近邻插值法ZOOM到2048*2048')>> figure(2)>> imshow(X2);Warning: Image is too big to fit on screen; displaying at 25%>> title('双线性插值法ZOOM到2048*2048')>> figure(3)>> imshow(X3);Warning: Image is too big to fit on screen; displaying at 25%>> title('双三次插值法ZOOM到2048*2048')第五题:(1)关于lena.bmp的shear及ZOOM变化>> X=imread('E:\大三下\图像处理英文课件\作业\第二次作业\lena.bmp','bmp'); >> tform = maketform('affine',[1 1.5 0; 0 1 0; 0 0 1]);>> J = imtransform(X,tform);>>x1=imresize(J,[2048 2048],'nearest');>>x2=imresize(J, [2048 2048], 'bilinear');>>x3=imresize(J, [2048 2048], 'bicubic');>> figure>> imshow(J)Warning: Image is too big to fit on screen; displaying at 67%>>title('水平shear后的lena.bmp')>> figure>> imshow(x1);Warning: Image is too big to fit on screen; displaying at 25%>> title('水平shear后用近邻插值法放大到2048*2048的lena.bmp')>> imshow(x2);Warning: Image is too big to fit on screen; displaying at 25%>> title('水平shear后用双线性插值法放大到2048*2048的lena.bmp')>>imshow(x3);Warning: Image is too big to fit on screen; displaying at 25%>> title('水平shear后用双三次插值法放大到2048*2048的lena.bmp')(2) 关于elain.bmp的旋转及ZOOM变化>> Y=imread('E:\大三下\图像处理英文课件\作业\第二次作业\elain1.bmp','bmp'); >> y1=imrotate(Y,30);>> y2=imrotate(Y,30,'crop');>>y31=imresize(y1,[2048 2048],'nearest');>>y32=imresize(y1, [2048 2048], 'bilinear');>>y33=imresize(y1, [2048 2048], 'bicubic');>> figure>> imshow(y1);>> title('用近邻法旋转30度的lena.bmp')>> imshow(y2);>> title('用近邻法旋转30度并经过裁剪的lena.bmp')>>imshow(y31);Warning: Image is too big to fit on screen; displaying at 17%>> title('旋转30度后用近邻插值法放大到2048*2048的.elain.bmp')>> imshow(y32);Warning: Image is too big to fit on screen; displaying at 17%>> title('旋转30度后用双线性插值法放大到2048*2048的elain.bmp')>> imshow(y33);Warning: Image is too big to fit on screen; displaying at 17%>> title('旋转30度后用双三次插值法放大到2048*2048的elain.bmp')。