数字图像处理实验报告(全部)
数字图像处理实验报告

数字图像处理实验报告1. 引言数字图像处理是使用计算机来处理和优化图像的一种技术。
在本实验中,我们将探索几种常见的数字图像处理方法,并使用Python编程语言和相关库来实现。
2. 实验目的本实验的主要目的是:1.了解图像的基本特性和数字图像处理的基本原理;2.熟悉Python编程语言和相关图像处理库的使用;3.实现常见的图像处理算法并进行实验验证。
3. 实验方法在本实验中,我们使用Python编程语言和以下相关库来实现图像处理算法:•OpenCV:用于图像读取、显示和保存等基本操作;•Numpy:用于图像数据的处理和算术运算;•Matplotlib:用于图像的可视化和结果展示。
以下是实验涉及到的图像处理方法和步骤:1.图像读取和显示:使用OpenCV库读取图像,使用Matplotlib库显示图像;2.图像的灰度化:将彩色图像转换为灰度图像;3.图像的二值化:将灰度图像转换为黑白二值图像;4.图像的平滑处理:使用平滑滤波器对图像进行平滑处理,如均值滤波和高斯滤波;5.图像的边缘检测:使用边缘检测算法对图像进行边缘检测,如Sobel算子和Canny算子;6.图像的直方图均衡化:对灰度图像进行直方图均衡化,增强图像的对比度。
4. 实验过程和结果4.1 图像读取和显示首先,我们使用OpenCV库读取一张图像,并使用Matplotlib库显示该图像:import cv2import matplotlib.pyplot as plt# 读取图像img = cv2.imread('image.jpg')# 显示图像plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.axis('off')plt.show()4.2 图像的灰度化接下来,我们将彩色图像转换为灰度图像:# 灰度化图像gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 显示灰度图像plt.imshow(gray_img, cmap='gray')plt.axis('off')plt.show()4.3 图像的二值化然后,我们将灰度图像转换为黑白二值图像:# 二值化图像_, binary_img = cv2.threshold(gray_img, 128, 255, cv2.THRESH_BINARY)# 显示二值图像plt.imshow(binary_img, cmap='gray')plt.axis('off')plt.show()4.4 图像的平滑处理接下来,我们使用平滑滤波器对图像进行平滑处理,例如使用5x5的均值滤波器和高斯滤波器:# 均值滤波mean_img = cv2.blur(img, (5, 5))# 高斯滤波gaussian_img = cv2.GaussianBlur(img, (5, 5), 0) # 显示平滑处理后的图像plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(cv2.cvtColor(mean_img, cv2.COLOR_BGR2R GB))plt.title('Mean Filter')plt.axis('off')plt.subplot(122)plt.imshow(cv2.cvtColor(gaussian_img, cv2.COLOR_B GR2RGB))plt.title('Gaussian Filter')plt.axis('off')plt.show()4.5 图像的边缘检测然后,我们使用边缘检测算法对图像进行边缘检测,例如使用Sobel算子和Canny算子:# 边缘检测sobel_img = cv2.Sobel(gray_img, cv2.CV_8U, 1, 1, ksize=3)canny_img = cv2.Canny(gray_img, 50, 150)# 显示边缘检测结果plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(sobel_img, cmap='gray')plt.title('Sobel Operator')plt.axis('off')plt.subplot(122)plt.imshow(canny_img, cmap='gray')plt.title('Canny Operator')plt.axis('off')plt.show()4.6 图像的直方图均衡化最后,我们对灰度图像进行直方图均衡化,以增强图像的对比度:# 直方图均衡化equalized_img = cv2.equalizeHist(gray_img)# 显示直方图均衡化结果plt.imshow(equalized_img, cmap='gray')plt.axis('off')plt.show()5. 实验总结通过本实验,我们熟悉了数字图像处理的基本方法和步骤,并使用Python编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
(完整word版)数字图像处理 实验报告(完整版)

数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的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一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下: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 调色板 DIB Pixels 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 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
数字图像处理实验报告(全部)

实验1直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码:I=imread('coins.png');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验2 均值滤波一.实验目的1.熟悉matlab图像处理工具箱及均值滤波函数的使用;2.理解和掌握3*3均值滤波的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
数字图像处理实验报告

竭诚为您提供优质文档/双击可除数字图像处理实验报告篇一:数字图像处理实验报告实验一数字图像的获取一、实验目的1、了解图像的实际获取过程。
2、巩固图像空间分辨率和灰度级分辨率、邻域等重要概念。
3、熟练掌握图像读、写、显示、类型转换等matlab函数的用法。
二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。
2、编程实现空间分辨率变化的效果。
三、实验原理1、图像读、写、显示I=imread(‘image.jpg’)Imview(I)Imshow(I)Imwrite(I,’wodeimage.jpg’)2、图像类型转换I=mat2gray(A,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵A转化为灰度图像I,amin对应灰度0,amax对应1,也可以不指定该区间。
[x,map]=gray2ind(I,n);按指定的灰度级n将灰度图像转化为索引图像,n默认为64I=ind2gray(x,map);索引图像转化为灰度图像I=grb2gray(Rgb);真彩色图像转化为灰度图像[x,map]=rgb2ind(Rgb);真彩色图像转化为索引图像Rgb=ind2rgb(x,map);索引图像转化为真彩色图像bw=im2bw(I,level);将灰度图像转化为二值图像,level取值在[0,1]之间bw=im2bw(x,map,level);将索引图像转化为二值图像,level取值在[0,1]之间bw=im2bw(Rgb,level);将真彩色图像转化为二值图像,level取值在[0,1]之间四、实验代码及结果1、in=imread(peppers.png);i=rgb2gray(in);[x,map]=gray2ind(i,128); subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map) 、%空间分辨率变化的效果clc,closeall,cleari=imread(cameraman.tif);i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel(256x256) subplot(222),imshow(i1),xlabel(128x128) subplot(223),imshow(i2),xlabel(64x64) subplot(224),imshow(i3),xlabel(32x32) 256x25664x64128x12832x322实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。
数字图像处理实验报告
实 验 内 容
3-2 根据直方图定义,通过结构化编程方式给出 3-1)中灰度图像像素点统计形式的直方图,并与利用 函数调用方式获得的直方图在两个不同窗口中进行比较,两窗口图像名称分别为”编程直方图”、”函 数调用直方图”; 参考函数 imread、size、bar、imhist、image I=imread('panda.jpg'); B=rgb2gray(I); A=uint8(B); [m n]=size(B); s=zeros(m,n); for i=1:m for j=1:n for rank=0:255 if B(i,j)==rank s(rank+1)=s(rank+1)+1; end
在水平和垂直方 列的方式同时显
I=imread('panda.jpg');
subplot(1,3,1);imshow(I)
subplot(1,3,2);imshow(I)
colorbar
subplot(1,3,3);imshow(I)
colorbar('horizontal')
实 验 1)、实验采用的原始图片要求是包含自己头像的照片,图片大小控制在 640×480 之内; 要 2)、实验中的当前工作目录采用 MATLAB 目录下的 work 文件夹。 求
学号
12109940423 指导教师
实验地点
1C06-329
实验成绩
图像灰度统计特性及其相关变换
12 级 1 班 杜云明
实 理解直方图的形成原理,掌握绘制灰度直方图的方法;熟悉图像灰度直方图的变换及直方图均衡化方 验 法;理解图像灰度变换处理在图像增强中的作用;熟悉图像灰度分布统计与图像视觉质量之间的关系; 目 通过工具箱函数调用和结构化编程两种方式实现图像的相关处理,在加深理解基本原理的同时,提高 的 编程实践的技巧和能力。
数字图像处理实验报告
数字图像处理实验报告班级:学号:姓名:实验一DTF变换与余弦变换一、实验内容:用Matlab对某幅图像进行图像的离散付里叶变换、离散余弦变换二、实验目的:1. 掌握傅立叶变换2. 理解频域变换的通用公式3. 掌握离散余弦变换三、实验原理:f=imread(C:\);F=fft2(f);F=fft2(f,P,Q);S=abs(F);Fc=fftshift(F);S2=log(1+abs(Fc));F=ifftshift(Fc);F=ifft2(F);F=real(ifft2(F));dct2f()/idct2()imshow四、源程序:%傅里叶变换clear all;clc;x=imread('C:\Users\K\Desktop\matlab experiment\windows.jpg');y=imread('C:\Users\K\Desktop\matlab experiment\windows1.jpg');subplot(3,2,1);imshow(x);title('x 原图');subplot(3,2,2);imshow(y);title('y 原图');% 傅里叶变换qf=fft2(double(x));lf=fft2(double(y));%取幅度和相位qf1=abs(qf);qf2=angle(qf);lf1=abs(lf);lf2=angle(lf);%进行重建qfr=qf1.*cos(qf2)+qf1.*sin(qf2).*i;lfr=lf1.*cos(lf2)+lf1.*sin(lf2).*i;xr=uint8(abs(ifft2(qfr)));yr=uint8(abs(ifft2(lfr)));subplot(3,2,3);imshow(xr,[]);title('x幅谱与相谱重建'); subplot(3,2,4);imshow(yr,[]);title('y幅谱与相谱重建'); qfrm=qf1.*cos(lf2)+qf1.*sin(lf2).*i;lfrm=lf1.*cos(qf2)+lf1.*sin(qf2).*i;xr1=uint8(abs(ifft2(qfrm)));yr1=uint8(abs(ifft2(lfrm)));subplot(3,2,5);imshow(xr1,[]);title('x幅谱与y相谱重建'); subplot(3,2,6);imshow(yr1,[]);title('y幅谱与x相谱重建');%余弦变换x1=rgb2gray(x);y1=rgb2gray(y);figure(2);subplot(3,2,1);imshow(x1);title('x 原图');subplot(3,2,2);imshow(y1);title('y 原图');dctxchange=dct2(x1);dctychange=dct2(y1);subplot(3,2,3);imshow(log(abs(dctxchange)),[]);title('x图余弦变换幅频');subplot(3,2,4);imshow(log(abs(dctychange)),[]);title('y图余弦变换幅频');subplot(3,2,5);imshow(log(angle(dctxchange)),[]);title('x图余弦变换相频');subplot(3,2,6);imshow(log(angle(dctychange)),[]);title('y图余弦变换相频');%重建dctxchange1=abs(dctxchange);dctxchange2=angle(dctxchange);dctychange1=abs(dctychange);dctychange2=angle(dctychange);figure(2)dctxchanger=dctxchange1.*cos(dctxchange2)+dctxchange1.*sin(dctxch ange2).*i;dctychanger=dctychange1.*cos(dctychange2)+dctychange1.*sin(dctych ange2).*i;dctxchanger=uint8(abs(idct2(dctxchanger)));dctychanger=uint8(abs(idct2(dctychanger)));subplot(221);imshow(dctxchanger,[]);title('x幅谱与相谱重建');subplot(222);imshow(dctychanger,[]);title('y幅谱与相谱重建');dctxchanger=dctxchange1.*cos(dctychange2)+dctxchange1.*sin(dctych ange2).*i;dctychanger=dctychange1.*cos(dctxchange2)+dctychange1.*sin(dctxchange2).*i;dctxchanger1=uint8(abs(idct2(dctxchanger)));dctychanger1=uint8(abs(idct2(dctychanger)));subplot(223);imshow(dctxchanger1,[]);title('x幅谱与y相谱重建');subplot(224);imshow(dctychanger1,[]);title('y幅谱与x相谱重建');五、实验结果:实验二图像点操作一、实验内容:用Matlab对某幅图像进行反变换、对数变换、指数变换、分段线性变换二、实验目的:理解并掌握图像点运算处理三、实验原理:为了突出感兴趣的目标或灰度区间 相对抑制那些不感兴趣的目标或灰度区间常采用分段线性变换法。
数字图像处理实验报告(五个实验全)
数字图像处理实验报告(五个实验全)实验⼀ 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、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
数字图像处理实验报告
数字图像处理实验报告目录1.数字图像处理简介2.实验目的3.实验内容4.实验结果及代码展示5.算法综述6.M atlab优势7.总结8.存在问题一、数字图像处理简介图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。
图像处理是信号处理在图像域上的一个应用。
目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。
此外,基于光学理论的处理方法依然占有重要的地位。
图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。
传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。
然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。
二、实验目的巩固所学知识,提高所学能力三、实验内容利用matlab的GUI程序设计一个简单的图像处理程序,并含有如下基本功能:1. 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题2. 对给定图像进行旋转3.对给定的图像添加噪声(椒盐噪声、高斯噪声)四、实验结果及代码展示1.软件设计界面2.各模块功能展示以及程序代码(1)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题效果展示:代码:a = imread('C:\Documents and Settings\Administrator\桌面\数字图像\舞美.JPG');i = rgb2gray(a);I = im2bw(a,0.5);subplot(3,1,1);imshow(a);title('源图像')subplot(3,1,2);imshow(i);title('灰度图像')subplot(3,1,3);imshow(I);title('二值图像')(2)图像旋转原图效果展示:代码:clc;clear all;close all;Img=imread('D:\My Documents\My Pictures\5.JPG'); Img=double(Img);[h w]=size(Img);alpha=pi/4;wnew=w*cos(alpha)+h*sin(alpha);hnew=w*sin(alpha)+h*cos(alpha);wnew=ceil(wnew);hnew=ceil(hnew); u0=w*sin(alpha);T=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)]; Imgnew2=zeros(hnew,wnew);Imgnew1=zeros(hnew,wnew); for u=1:hnewfor v=1:wnewtem=T*([u;v]-[u0;0]);x=tem(1);y=tem(2);if x>=1&&x<=h&&y>=1&&y<=wx_low=floor(x);x_up=ceil(x);y_low=floor(y);y_up=ceil(y);if (x-x_low)<=(x_up-x)x=x_low;elsex=x_up;endif (y-y_low)<=(y_up-y)y=y_low;elsey=y_up;endp1=Img(x_low,y_low);p2=Img(x_up,y_low);p3=Img(x_low,y_low);p4=Img(x_up,y_up);s=x-x_low;t=y-y_low;Imgnew1(u,v)=Img(x,y);Imgnew2(u,v)=(1-s)*(1-t)*p1+(1-s)*t*p3+(1-t)*s*p2+s*t*p4;endendendfigure;imshow(Imgnew2,[]);B=imrotate(Img,alpha/pi*180);figure;imshow(B,[]);(3)对给定的图像添加噪声(斑点噪声、高斯噪声)效果展示:代码:I= imread('D:\My Documents\My Pictures\5.JPG');figure,subplot(211);imshow(I);title('原图');J1=imnoise(I,'gaussian',0,0.02);subplot(223);imshow(J);title('添加高斯噪声');J=imnoise(I,'speckle',0.04);subplot(224);imshow(J);title('添加斑点噪声');五、算法综述灰度图像:一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验班级:05611002 报学号:1120101383告姓名:张欣数字图像的运算1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码:I=imread('coins.png');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
1.2 3*3均值滤波一.实验目的1.熟悉matlab图像处理工具箱及均值滤波函数的使用;2.理解和掌握3*3均值滤波的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');figure,imshow(I);J=filter2(fspecial(‘average’,3),I)/255;figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像增强(均值滤波)函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察matlab环境下原始图像经3*3均值滤波处理后的结果。
(a)原始图像 (b)3*3均值滤波处理后的图像六.实验报告要求输入一幅灰度图像,给出其图像经3*3均值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行均值滤波,看看对25个点取均值与对9个点取中值进行均值滤波有什么区别?有没有其他的算法可以改进滤波效果。
(a)原始图像 (b)3*3均值滤波处理后的图像1.3 3*3中值滤波一.实验目的1.熟悉matlab 图像处理工具箱及中值滤波函数的使用; 2.理解和掌握中值滤波的方法和应用;二.实验设备:1.PC 机一台;2.软件matlab 三.程序设计在matlab 环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif'); figure,imshow(I); J=medfilt2(I,[5,5]); figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab 图标启动matlab 环境;2. 在matlab 命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab 自带的图像,如:cameraman 图像;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察matlab环境下原始图像经3*3中值滤波处理后的结果。
(a)原始图像 (b)3*3中值滤波处理后的图像六.实验报告要求输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。
看看对25个点取中值与对9个点取中值进行中值滤波有什么区别?(a)原始图像 (b)3*3中值滤波处理后的图像1.4 图像的缩放一.实验目的1.熟悉matlab图像处理工具箱及图像缩放函数的使用;2.掌握图像缩放的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');figure,imshow(I);scale = 0.5;J = imresize(I,scale);figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察matlab环境下图像缩放后的结果。
(a)原始图像 (b)缩放后的图像六.实验报告要求输入一幅灰度图像,给出其图像缩放后的结果,然后改变缩放比率,观察图像缩放后结果柄进行分析。
(a)原始图像 (b)缩放后的图像数字图像的离散余弦变换一.实验目的1.验证二维傅里叶变换的平移性和旋转不变性;2.实现图像频域滤波,加深对频域图像增强的理解;二.实验设备1.PC机一台;2.软件matlab;三.实验内容及步骤(1)产生如图3.1所示图像),(1y x f (128×128大小,暗处=0,亮处=255),用MA TLAB中的fft2函数对其进行FFT :① 同屏显示原图1f 和)(FFT 1f 的幅度谱图;② 若令),()1(),(12y x f y x f yx +-=,重复以上过程,比较二者幅度谱的异同,简述理由;③ 若将),(2y x f 顺时针旋转45度得到),(3y x f ,试显示)(FFT3f 的幅度谱,并与)(FFT 2f 的幅度谱进行比较。
1.%生成图形f1f1=zeros(128,128);f1((64-30):(63+30),(64-10):(63+10))=1; %FFT 变换fft_f1=log(1+abs(fftshift(fft2(f1)))); figure;subplot(121);imshow(f1);title('Image f1');subplot(122);imshow(fft_f1,[]);title('FFT f1');2.%计算f2f2=zeros(128,128); for i=1:128; for j=1:128;f2(i,j)=((-1)^(i+j))*f1(i,j); end endfft_f2A=log(1+abs(fft2(f2)));图3.1 实验图象f 1(x , y )fft_f2B=log(1+abs(fftshift(fft2(f2)))); figure;subplot(131);imshow(f2);title('Image f2');subplot(132);imshow(fft_f2B,[]);title('FFT f2');subplot(133);imshow(fft_f2A,[]);title('FFT f2 Without FFTShift');分析:根据傅里叶变换对的平移性质:),(),(00)//(200v v u u F ey x f N y v M x u j --⇔+π; 当2/0M u =且2/0N v =时,有:yx y x j N y v M x u j e e+++-==)1()()//(200ππ因此可得到:)2/,2/()1)(,(N v M u F y x f yx --⇔-+所以,)),(FFT(2y x f 就是)),((FFT1y x f 频谱中心化后的结果。
3.%计算f3f3=imrotate(f2,-45,'nearest');fft_f3=log(1+abs(fftshift(fft2(f3)))); figure;subplot(121);imshow(f3);title('Image f3');subplot(122);imshow(fft_f3,[]);title('FFT f3');(2)对如图3.2所示的数字图像lena.img (256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。
低通滤波:fid=fopen('D:\matlab7\image\lena.img','r'); data=(fread(fid,[256,256],'uint8'))'; subplot(1,2,1)图3.2 实验图象lena.imgimagesc(data);colormap(gray);title('LENA','Color','r');fft_lena=fft2(data);f=fftshift(fft_lena);for i=1:256for j=1:256if sqrt((i-128)^2+(j-128)^2)>30f(i,j)=0;endendendsubplot(1,2,2);[x,y]=meshgrid(1:1:256);surf(x,y,f)高通滤波:fid=fopen('D:\matlab7\image\lena.img','r'); data=(fread(fid,[256,256],'uint8'))'; subplot(1,2,1)imagesc(data);colormap(gray);title('LENA','Color','r');fft_lena=fft2(data);for i=1:256for j=1:256if sqrt((i-128)^2+(j-128)^2)<2f(i,j)=0;endendsubplot(1,2,2);[x,y]=meshgrid(1:1:256);surf(x,y,f)基于直方图均衡化的图像增强一.实验目的1.了解空间域图像增强的各种方法(点处理、掩模处理); 2.掌握采用直方图均衡化进行图像增强的方法;3. 使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;二.实验设备1.PC 机一台;2.软件matlab ;三.实验内容及步骤对如图3.1所示的两幅128×128、256级灰度的数字图像fing_128.img 和cell_128.img 进行如下处理:(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。