中国地质大学数字图像处理报告.
数字图像处理实验报告
数字图像处理实验报告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编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
中国地质大学遥感图像处理上机实习报告
遥感图像处理课程实习报告学生姓名:王蜀越班学号:学号:指导教师:王红平、许凯中国地质大学信息工程学院2017年7月1日目录目录 ............................................................................................................................................... - 1 - 实习一:影像融合........................................................................................................................ - 2 -1.1【实习目的】 (2)1.2【实习步骤】 (2)1.3【实习过程】 (2)实习二:几何校正........................................................................................................................ - 6 -2.1【实习内容】 (6)2.2【实习步骤】 (6)2.3【实习过程】 (6)实习三:影像分类(一).......................................................................................................... - 10 -3.1【实习内容】 (10)3.2【实习步骤】 (10)3.3【实习过程】 (10)实习四:影像分类(二).......................................................................................................... - 14 -4.1【实习内容】 (14)4.2【实习步骤】 (14)4.3【实习过程】 (14)心得与感想 ................................................................................................................................. - 18 -实习一:影像融合1.1 【实习目的】1.掌握遥感影像融合的基本原理、内容和要点;2.掌握在ENVI中遥感影像融合的操作方法、步骤;3.进一步熟悉ENVI软件的操作。
图像处理3
数字图像处理上机报告题目:数字图像处理上机报告(第3次)学校:中国地质大学(武汉)指导老师:傅华明姓名:张慧班级序号: 071112-11 日期: 2013年10月20日目录3-1图象复原 (3)3-2几何校正 (12)3-3图象重建 (22)3-4实验总结 (25)备注:所有题目的运行效果可通过运行Taskxxx.m文件观察,使用时请保证文件夹所有内容完整,此外关于第一题的证明在Test.m中。
3-1图象复原:题目要求:已知p03-03-01为原图象,p03-03-02为经过高通滤波以后的退化图象,请采用逆滤波方法,假设高通滤波器为(1)高斯滤波器(2)巴特沃茨滤波器。
每组滤波器采用3组高通截止频率。
并计算均方误差最小,说明那一组参数复原的图象复原效果最好?关于题目本身存在的问题:在实际编程过程中,我曾尝试过多种高通滤波器的逆滤波方法,试图将图像还原,但都以失败而告终。
最后,尝试了将题目给出的两幅图像做FFT变换并观察、对比其二维和三维频谱图,发现p03-03-02的图像并非由原图像通过高通滤波得到。
该过程经过了老师的认可,证明过程如下:证明代码:(Test.m)clear;p03_03_01 = imread('p03_03_01.bmp');p03_03_02 = imread('p03_03_02.bmp');Fp03_1 = fft2(double(p03_03_01));Fp03_1 = fftshift(Fp03_1);Fp03_2 = fft2(double(p03_03_02));Fp03_2 = fftshift(Fp03_2);subplot(1,2,1);imshow(p03_03_01);title('p03_03_01');subplot(1,2,2);imshow(p03_03_02);title('p03_03_01');figure;subplot(1,2,1);imshow(uint16(abs(Fp03_1)));title('p03_03_01二维频谱');subplot(1,2,2);imshow(uint16(abs(Fp03_2)));title('p03_03_02二维频谱');figure;subplot(1,2,1);mesh(abs(Fp03_1));title('p03_03_01三维频谱图');%显示三维频谱图subplot(1,2,2);mesh(abs(Fp03_2));title('p03_03_02三维频谱图');%显示三维频谱图证明结果分析:由以上三组图的对比很容易看出,二图相比,p03-03-02频谱的高频部分明显弱于p03-03-01频谱,就低频分量而言:p03-03-01与p03-03-02处于同一数量级,且几乎相等。
数字图像处理实习报告
数字图像处理实习报告
本次实习主要任务是进行数字图像处理相关工作,包括图像的预处理、特征提取、图像分割和图像识别等方面的工作。
实习过程中,我主要负责了图像处理算法的编写与优化,以及实验数据的收集与分析。
通过这次实习,我对数字图像处理技术有了更深入的了解,并且提升了自己的编程能力和团队协作能力。
在图像处理算法的编写与优化过程中,我主要使用了Python
语言和常用的图像处理库,如OpenCV和PIL等。
我研究了不同的图像处理算法,并对其进行了实验验证,优化了算法的性能和效果。
通过这些工作,我深入了解了图像处理算法的实现原理和优化方法,提升了自己在图像处理领域的技术水平。
在实验数据的收集与分析过程中,我主要负责了实验数据的采集和整理工作。
我使用了各种图像采集设备,包括相机、摄像头等,对不同场景下的图像进行了采集和整理。
然后我利用Python和Matlab等工具对实验数据进行了分析和结果展示,
为后续的图像处理算法提供了重要的支持和参考。
总的来说,这次实习让我对数字图像处理有了更深入的了解,提升了自己的技术能力和实践能力。
我在实习过程中遇到了不少困难和挑战,但通过团队合作和自我努力,最终都得以克服,取得了一定的成果。
通过这次实习,我深刻地感受到了数字图像处理技术的重要性和广阔的应用前景,也对自己未来的发展方向有了更清晰的认识。
希望通过这次实习的经历,我能够为将来的学习和工作打下坚实的基础。
中国地质大学武汉遥感数字图像处理课程设计报告
遥感数字图像处理课程设计报告学生姓名:孙国欢班学号:113131-05指导老师:高伟、王红平中国地质大学(武汉)信息工程学院2016年2月目录§1课设要求加深对遥感图像处理课程教授的典型算法的理解,使用高级程序语言完成算法的设计与实现。
不得直接在商用软件上做二次开发。
§2 课设内容(一)课程实验(20分)1、图像数据显示此次实习要求在Demo原型系统中增加对图像数据的显示,具体说明如下:a) 至少支持Tiff格式图像的显示b) 完成RGB合成显示、灰度显示和索引显示的功能c) 完成至少2种的增强显示方式:如:正规化显示、均衡化显示、自适应显示等。
d) 完成基本统计量计算以及直方图统计功能。
(二)课程设计内容(60分)1. 图像几何校正图像几何校正的实现是在准备的控制点数据基础之上,计算图像的转换系数,进而对图像进行重采样,完成图像的几何校正算法。
此部分功能要求:a) 要求实现多项式校正的算法,至少完成一阶多项式,对多阶多项式可尝试。
b) 重采样方式要求完成最邻近、双线性和三次立方卷积3种重采样方法c) 要求对重采样方式和多项式阶数能够设置2.实现影像空域滤波的功能。
主要功能如下:a)能选择输入影像数据文件;b)能定制滤波核大小和数值;c)能选取输出的影像数据文件。
3. 图像分类a) 要求实现至少一种分类算法。
b) 监督分类的AOI区选取可借助于其他系统选取的AOI区信息c) 若采用非监督分类,要求使用ISODATA算法予以实现d) 要求能以不同颜色来区分显示不同类的像元§3 算法原理此次课设主要针对遥感数字图像处理课程中教授的遥感数字图像处理的方法与原理进行计算机高级程序语言的实现。
首先要支持Tiff图像显示:先理解tiff图像存储格式,TIFF文件以.tif为扩展名。
其数据格式是一种3级体系结构,从高到低依次为:文件头、一个或多个称为IFD的包含标记指针的目录和数据。
数字图像处理距离变换
中国地质大学课程设计课程名称数字图像处理教师姓名傅华明学生姓名学生学号学生班级数字图像处理报告——基于matlab 实现1.实验要求:按照公式(8.3.9)对图象p6-05求取距离变换图象,并显示处理后图象距离变换是把任意图形转换成线性图最有效的方法之一。
它是求二值图形中各1像素到0像素的最短距离的处理。
对二值图像f (i ,j ),距离变换k 次的图像为g k (i ,j ),当f (i ,j )=1时,g 0(i ,j )=C (非常大);当f (i ,j )≈0时,g 0(i ,j )=0。
对图像f (i ,j )进行如下处理:⎪⎩⎪⎨⎧≈=+++++-+-=+0),(01),(}1)1,(,1),1(,1),1(,1)1,(),,(min{),(1j i f j i f j i g j i g j i g j i g j i g j i g k k k k k k对全部i ,j ,有gk +1(i ,j )=gk (i ,j )时,gk 便是所求的距离变换图像。
2.实验代码:clear;close all ;I=imread('p6-05.tif');imshow(I);title('原图');[m n]=size(I);m=double(m);n=double(n);Min=double(min(I(:)));w = strel('square',4);g=zeros(m,n);while sum(I(:))~=m*n*Min %不断腐蚀再腐蚀图像不会有变化为止for i=1:mfor j=1:nif I(i,j)~=Ming(i,j)=g(i,j)+1; %记录这个点腐蚀多少次才到最小值endendendI=imerode(I,w);% figure(1)% imshow(I);endfigure;imshow(mat2gray(g));title('距离变换后图像');3.实验结果如下:在经过距离变换后,最大值点的集合就形成骨架,及位于图形中心部分的线状得集合。
《数字图像处理》实验报告
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
中国地质大学武汉遥感数字图像处理课程设计报告
遥感数字图像处理课程设计报告学生姓名:孙国欢班学号:113131-05指导老师:高伟、王红平中国地质大学(武汉)信息工程学院2016年2月目录§1课设要求加深对遥感图像处理课程教授的典型算法的理解,使用高级程序语言完成算法的设计与实现。
不得直接在商用软件上做二次开发。
§2 课设内容(一)课程实验(20分)1、图像数据显示此次实习要求在Demo原型系统中增加对图像数据的显示,具体说明如下:a) 至少支持Tiff格式图像的显示b) 完成RGB合成显示、灰度显示和索引显示的功能c) 完成至少2种的增强显示方式:如:正规化显示、均衡化显示、自适应显示等。
d) 完成基本统计量计算以及直方图统计功能。
(二)课程设计内容(60分)1. 图像几何校正图像几何校正的实现是在准备的控制点数据基础之上,计算图像的转换系数,进而对图像进行重采样,完成图像的几何校正算法。
此部分功能要求:a) 要求实现多项式校正的算法,至少完成一阶多项式,对多阶多项式可尝试。
b) 重采样方式要求完成最邻近、双线性和三次立方卷积3种重采样方法c) 要求对重采样方式和多项式阶数能够设置2.实现影像空域滤波的功能。
主要功能如下:a)能选择输入影像数据文件;b)能定制滤波核大小和数值;c)能选取输出的影像数据文件。
3. 图像分类a) 要求实现至少一种分类算法。
b) 监督分类的AOI区选取可借助于其他系统选取的AOI区信息c) 若采用非监督分类,要求使用ISODATA算法予以实现d) 要求能以不同颜色来区分显示不同类的像元§3 算法原理此次课设主要针对遥感数字图像处理课程中教授的遥感数字图像处理的方法与原理进行计算机高级程序语言的实现。
首先要支持Tiff图像显示:先理解tiff图像存储格式,TIFF文件以.tif为扩展名。
其数据格式是一种3级体系结构,从高到低依次为:文件头、一个或多个称为IFD的包含标记指针的目录和数据。
数字图像处理第六专题报告
中国地质大学(武汉)数字图像处理上机实习(第六专题)姓名:班级序号:学号:指导老师:傅华明一、实验题目6.采用分裂合并法对下图实施图象分割。
将天空部分提取出来。
二、实验内容(1)算法设计区域分裂合并算法的基本思想是先确定一个分裂合并的准则,即区域特征一致性的测度,当图像中某个区域的特征不一致时就将该区域分裂成4 个相等的子区域,当相邻的子区域满足一致性特征时则将它们合成一个大区域,直至所有区域不再满足分裂合并的条件为止。
当分裂到不能再分的情况时,分裂结束,然后它将查找相邻区域有没有相似的特征,如果有就将相似区域进行合并,最后达到分割的作用。
在一定程度上区域生长和区域分裂合并算法有异曲同工之妙,互相促进相辅相成的,区域分裂到极致就是分割成单一像素点,然后按照一定的测量准则进行合并,在一定程度上可以认为是单一像素点的区域生长方法。
区域生长比区域分裂合并的方法节省了分裂的过程,而区域分裂合并的方法可以在较大的一个相似区域基础上再进行相似合并,而区域生长只能从单一像素点出发进行生长(合并)。
(2)程序代码1.判断是否分裂图像function v = split_test(B,mindim,fun)k = size(B,3);v(1:k) = false;for I = 1:kquadregion = B(:,:,I);if size(quadregion,1) <= mindimv(I) = false;continueendflag = feval(fun,quadregion);if flagv(I) = true;endend2.是否继续分裂function flag = predicate(region)sd = std2(region);m = mean2(region);[M,N] = size(region);i = 1:M;j = 1:N;f = region(i,j);flag = max(abs(f-m) < sd);3.脚本文件I=imread('C:\Users\Administrator\Desktop\数字图像\6\p5-06.tif'); subplot(3,1,1);imshow(I);title('原图');f = double(I);[M,N]=size(f);Q = 2^nextpow2(max(M,N));f = padarray(f,[Q - M, Q - N],'replicate','post');%f为输入图像,mindim为分裂最小子区域的大小%fun 为实现相同性质逻辑谓语P的函数%split_test 为标准方差阈值fun = @predicate;mindim = 8;S = qtdecomp(f,@split_test,mindim,fun);Lmax = full(max(S(:)));g = zeros(size(f));MARKER = zeros(size(f));for K = 1:Lmax[vals,r,c] = qtgetblk(f,S,K);if ~isempty(vals)for I = 1:length(r)xlow = r(I);ylow = c(I);xhigh = xlow + K - 1; yhigh = ylow + K -1;region = f(xlow:xhigh,ylow:yhigh);flag = feval(fun,region);if flagg(xlow:xhigh,ylow:yhigh) = 1;MARKER(xlow,ylow) = 1;endendendendg = bwlabel(imreconstruct(MARKER,g));g = g(1:M,1:N);[m,n] = size(g);g2=zeros(m,n);for i = 1:mfor j=1:ng2(i,j)=g(i,j)*255;endendg = uint8(g2);subplot(3,1,2),imshow(g),title('rgb image after split-merge');level = graythresh(g);BW = im2bw(g,level);subplot(3,1,3),imshow(~BW),title('bw image after convert white to black');(3)运行结果。
数字图像处理第四专题报告
中国地质大学(武汉)数字图像处理上机实习(第四专题)姓名:班级序号:学号:指导老师:傅华明一、实验题目一、图象复原3,已知p03-03-01为原图象,p03-03-02为经过高通滤波以后的退化图象,请采用逆滤波方法,假设高通滤波器为(1)高斯滤波器(2)巴特沃茨滤波器。
每组滤波器采用3组高通截止频率。
并计算均方误差最小,说明那一组参数复原的图象复原效果最好?二、几何校正1,将图象p03-06-01修正为菱形三、图象重建(根据傅立叶反变换实施图象重建)图3二、实验内容0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 1 1 1 1 1 1 1 1 0 0 0 00 0 1 1 1 1 1 1 1 1 1 1 0 0 00 0 1 1 0 0 0 0 0 0 1 1 0 0 00 0 1 1 0 0 0 0 0 0 0 0 0 0 00 0 1 1 0 1 1 1 1 1 1 1 1 0 00 0 1 1 0 1 1 1 1 1 1 1 1 0 00 0 1 1 0 0 0 0 0 1 1 0 0 0 00 0 1 1 0 0 1 1 0 1 1 0 0 0 00 0 1 1 0 0 1 1 0 1 1 0 0 0 00 0 1 1 1 1 1 0 0 1 1 0 0 0 00 0 0 1 1 1 0 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0一、图象复原:已知p03-03-01为原图象,p03-03-02为经过高通滤波以后的退化图象,请采用逆滤波方法,假设高通滤波器为(1)高斯滤波器(2)巴特沃茨滤波器。
每组滤波器采用3组高通截止频率。
并计算均方误差最小,说明那一组参数复原的图象复原效果最好?(1)算法设计先进行傅立叶变换后低通滤波,再傅立叶反变换得到退化图象,再傅立叶变换,最后逆滤波。
数字图像处理实验报告(五个实验全)
数字图像处理实验报告(五个实验全)实验⼀ 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、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
数字图像处理 实验报告(完整版)
数字图像处理实验一 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显示出来观察图像的特征。
数字图像处理实验报告2
实验二: 数字图像的空间域滤波——平滑滤波1. 1. 实验目的2.掌握图像滤波的基本定义及目的。
3.理解空间域滤波的基本原理及方法。
4.掌握进行图像的空域滤波的方法。
1. 2. 实验基本原理2.空间域增强空间域滤波是在图像空间中借助模板对图像进行领域操作, 处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。
空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制, 同时保证其他分量不变, 达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。
各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。
平滑的目的可分为两类: 一类是模糊, 目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。
锐化的目的是为了增强被模糊的细节。
结合这两种分类方法, 可将空间滤波增强分为四类:线性平滑滤波器(低通)非线性平滑滤波器(低通)线性锐化滤波器(高通)非线性锐化滤波器(高通)1)空间滤波器都是基于模板卷积, 其主要工作步骤是:2)将模板在图中移动, 并将模板中心与图中某个像素位置重合;3)将模板上的系数与模板下对应的像素相乘;4)将所有乘积相加;5)将和(模板的输出响应)赋给图中对应模板中心位置的像素。
3.平滑滤波器1)线性平滑滤波器线性低通平滑滤波器也称为均值滤波器, 这种滤波器的所有系数都是正数, 对3×3的模板来说, 最简单的是取所有系数为1, 为了保持输出图像任然在原来图像的灰度值范围内, 模板与象素邻域的乘积都要除以9。
MATLAB 提供了fspecial 函数生成滤波时所用的模板, 并提供filter2和imfilter 函数用指定的滤波器模板对图像进行运算。
函数fspecial 的语法格式为:h=fspecial(type);h=fspecial(type,parameters);其中参数type 指定滤波器的种类, parameters 是与滤波器种类有关的具体参数。
数字图像处理实验报告
数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。
本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。
实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。
实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。
在Python中,我们可以使用OpenCV库来实现图像的读取和显示。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。
常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
数字图像处理实验总结报告
数字图像办理实验报告数字图像办理实验报告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等高级语言编写数字图像办理的一些基本算法程序,来稳固和掌握图像办理技术的基本技术,提升实质着手能力,并经过实质编程认识图像办理软件的实现的基来源理。
数字图像处理实验报告总结
数字图像处理实验报告总结一、实训目的通过实训,使我们进一步掌握图形图像处理的基本方法和基本技能;熟练使用photoshop软件,并能用它来完成图形图像的设计、制作和处理。
培养我们能按要求设计和制作一般性的商标和网页设计,并能对即成的图像做进一步处理,创造出一定水平和价值的作品,使我们的实践动手能力和创新能力得到提高,同时为今后的图形图像比赛奠定好基础。
二、教学实验内容与精心安排我们的Photoshop实训时间为本学期的第18周。
我们的实训一共有5个项目:ppt设计、logo设计、展板设计、专业网页设计和个人艺术照片设计。
老师让我们自由分组。
我虽然上课时认真听老师讲解,但没有记笔记的习惯,导致有很多学过的东西运用不上,最后,雷柱、李娟、杨月霞和我组成了一组,我们综合各自的优势对本次的实训任务进行了分工。
杨月霞负责logo设计、雷柱负责个人艺术照设计、我负责展板设计、ppt设计和网页设计由我们一起完成。
星期一的晚上我们在课堂上一起展开教学实验,因为教室里无法联网,所以我们无法展开网络上的资料收集,于是我们都就是各自了解了自己对项目的整体设计。
星期三的3、4文言我们按时走进了教学实验楼,为各自的项目都搞资料的搜集。
我们之间相互协助,很快,我们就只要搞最后的设计了。
星期四从中午12点已经开始,我们一直挤至下午5点,费和了好多心思,终于把所有的教学实验项目顺利完成了,看著我们自己辛勤工作的成果,心里真的很高兴。
三、实训心得这几天来,涂抹老师没像是以前听课那样存有详尽的传授和细心的提示信息,仅靠我们自己对PhotoShop自学的基础去自己顺利完成制作。
这次教学实验不仅仅就是对我们的实地考察,也就是一个自我总结,补漏伯粉的难得的机会。
经过这五天的自学,稳固和加强了我们的基本知识和基本技能,尤其就是Photoshop的基本知识和操作技能。
Photoshop作品要做的好就必须有一个好的创意。
我觉得学习photoshop不是在于把所有的工具都要深入去了解,只要把自己常用的会用就可以了,因为只有有创意,才可以做出一副好的作品来。
数字图像处理实验报告
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
数字图像处理实验报告第二次
中国地质大学(武汉)机电学院电信专业
数字图像处理上机实习
(专题1—专题3)
学生姓名:
班级:071123
学号:
指导老师:傅华明
一 、实验题目
1:图象灰度变换【24号做的是(0)和(4)】
(0)显示灰度图象p02-01~p02-06及直方图;
(1)对灰度图象p02-01进行直方图均衡化;
(2)对灰度图象p02-02进行平方的灰度变换;
(3)对灰度图象p02-03进行平方根的灰度变换;
(4)对灰度图象p02-04的灰度范围进行适当展宽;
(5)对灰度图象p02-05取反;
(6)对灰度图像p02-06的偏黑部分实施灰度展宽,对偏亮的部分实施灰度压缩;
2:图象平滑【24号做的是(4)】
(4)对p02-04jy 、p02-04gs 进行5*5方形窗口的最大均匀性平滑滤波,并比较其效果; ## 对灰度图像p1~p6等添加椒盐噪声,完成后图象分别记为p1jy~p6jy 等;对灰度图像p1~p6等添加高斯噪声,完成后图象分别记为p1gs~p6gs 等;采用直接调用Matlab 函数的方法实现。
3:图象锐化【24号做的是(4)】
(4)利用3*3的Krisch 算子对p02-04实施图象锐化,二维梯度模板为:
H1=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----3333*03555, H2=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡-----5335*03533 H3=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----5553*03333, H4=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡-----3353*05335。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告一、引言数字图像处理是计算机科学与工程领域中的一个重要研究方向。
通过使用数字化技术,对图像进行采集、传输、存储和处理,可以实现对图像的增强、恢复、分析和识别等功能。
本实验旨在通过对数字图像处理算法的实践应用,探索图像处理的原理和方法。
二、实验目的本实验的主要目的是掌握数字图像处理的基本概念和算法,并通过实际操作加深对图像处理原理的理解。
具体目标包括:1. 学习使用图像处理软件,如Photoshop或Matlab等。
2. 掌握图像增强的方法,如直方图均衡化、滤波和锐化等。
3. 理解图像压缩和编码的原理,如JPEG和PNG等格式。
4. 了解图像分割和边缘检测的基本算法,如阈值分割和Canny边缘检测等。
三、实验过程1. 图像增强图像增强是指通过一系列算法和技术,改善图像的质量和视觉效果。
在实验中,我们可以使用直方图均衡化算法来增强图像的对比度和亮度。
该算法通过将图像的像素值映射到一个更大的范围内,使得图像的亮度分布更加均匀。
2. 图像滤波图像滤波是指通过一系列滤波器对图像进行处理,以实现去噪、平滑和锐化等效果。
在实验中,我们可以使用平滑滤波器(如均值滤波器和高斯滤波器)来去除图像中的噪声。
同时,我们还可以使用锐化滤波器(如拉普拉斯滤波器和Sobel滤波器)来增强图像的边缘和细节。
3. 图像压缩和编码图像压缩是指通过减少图像的数据量来减小图像文件的大小,从而实现存储和传输的效率提升。
在实验中,我们可以使用JPEG和PNG等压缩算法来对图像进行压缩和编码。
JPEG算法通过对图像的频域进行离散余弦变换和量化,实现对图像的有损压缩。
而PNG算法则采用无损压缩的方式,通过对图像的差值编码和哈夫曼编码,实现对图像的高效压缩。
4. 图像分割和边缘检测图像分割是指将图像分成若干个区域,以实现对图像的目标提取和图像分析的目的。
而边缘检测是指通过检测图像中的边缘和轮廓,实现对图像的形状分析和目标识别。
matlab图像处理
中国地质大学课程设计课程名称数字图像处理教师姓名傅华明学生姓名学生学号学生班级数字图像处理报告——基于matlab 实现一.实验要求:对图象p04-01实施预测编码和解码,并将原图象与解码图象进行方差计算,考察解码后图象的视觉效果。
预测模型为:二.实验步骤:根据;'N N N x x e -=对N e 进行量化得到'N e ,然后传输,由;''''N N N x x e -=其中'N x 是预测值,编码解码预测方法相同。
1.读入图像2.获取图像空间坐标,灰度范围3.将每个灰度按上式进行编码和解码处理4.得到编码,解码后的图像,并与原图像进行对比。
I=imread('p04-01.tif');I2=I;I=double(I);fid=fopen('mydata.dat','w');[m n]=size(I);J1=ones(m,n); %产生m 行n 列的单位矩阵J1(1:m,1)=I(1:m,1);J1(1,1:n)=I(1,1:n);J1(1:m,n)=I(1:m,n);J1(m,1:n)=I(m,1:n);for k=2:m-1for L=2:n-1J1(k,L)=I(k,L)-(I(k,L-1)/2+I(k-1,L)/2); %实施预测编码endendJ1=round(J1); %对J1取整cont=fwrite(fid,J1,'int8');cc=fclose(fid);fid=fopen('mydata.dat','r');I1=fread(fid,cont,'int8');tt=1;for L=1:nfor k=1:mI(k,L)=I1(tt);tt=tt+1;endendI=double(I);J=ones(m,n);),1(5.0)1,(5.0),(y x f y x f y x f -+-=J(1:m,1)=I(1:m,1);J(1,1:n)=I(1,1:n);J(1:m,n)=I(1:m,n);J(m,1:n)=I(m,1:n);for k=2:m-1for L=2:n-1J(k,L)=I(k,L)+(J(k,L-1)/2+J(k-1,L)/2);endendcc=fclose(fid);J=uint8(J);subplot(2,2,1);imshow(I2);title('原始图像');subplot(2,2,2);imshow(J1);title('编码后图像');subplot(2,2,3);imshow(J);title('解码后图像')J=double(J);s=double(0);a=double(0);for k=1:mfor l=1:na=(J(k,l)-I(k,l))*(J(k,l)-I(k,l));s=s+a;endend%%%%%%%%计算方差值%%%%%%%%%%%%%%%%%%%%%% disp('原图像和解码后的图像的灰度值方差如下:\n')s=s/m/n三.运行结果如下:四.实验结果分析对图像进行预测编码处理后可以得到较好的压缩效果,解码后的图像与原图像几乎一致,所以用该方法可以实现较好的恢复效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学(武汉) 数字图像处理实习报告书姓名:专业:班级:学号:指导老师:第1题:实验内容及目的:根据灰度图象得到一副彩色图像(变换函数自定),分别显示1幅彩色图象的R ,G ,B 分量(每个分量用8 bit 表示),和这幅彩色图象的H ,S ,I 分量(每个分量也各用8 bit 表示)。
通过本题学会灰度图和彩色图之间的转换,了解RGB 空间和HIS 空间之间的关系。
实验原理:图像由若干个像素点组成。
灰度图像矩阵的每个元素对应一个灰度值,伪彩色图像矩阵的每个元素对应R 、G 、B 分量的值。
将一幅灰度图变为一幅彩色图相当于在灰度值与RGB 分量之间建立函数关系。
HIS 彩色空间由H (色调)、S (饱和度)、I (辉度)分量构成。
RGB 分量和HIS 分量的对应关系如下:根据对应函数将RGB 分量转化为HIS 分量并显示,即可得到所需的HIS 分量图。
思路分析:用MA TLAB 处理图像首先要将灰度图像读入。
读入后将图像矩阵中的元素转化为uint8类型处理。
将灰度图变为彩色图就是在灰度值与R 、G 、B 分量之间建立关系,所以要先生成R 、G 、B 分量的矩阵,这就要知道原灰度图的大小(用size ()函数实现)。
建立R 、G 、B 分量的矩阵后,采用循环根据原图像的灰度值对其进行赋值。
最后用cat ()函数合并三个分量得到生成的彩色图。
读入彩色图像并转为uint8类型,根据彩色图像的构成将R 、G 、B 分量从图像矩阵中分量出来并显示。
显示图像的HIS 分量时,首先将图像转化为double 类型处理。
然后分离出RGB 分量,根据RGB 分量和HIS 分量之间的转化关系得到HIS 分量,此时的HIS 分量时double 类型,所以将这三个分量合并后转化为8bit 类型。
将转化后的矩阵再分离出HIS 分量即可得到8bit ⎩⎨⎧≤-≥=--+--+-=-=++=-.,2;, ],))(()()]()[(21[cos );,,min(31 ;3/)(21B G B G H B G B R G R B R G R B G R I S B G R I θπθθ类型的HIS分量图。
代码:clear all;close all;X=imread('fudiao.jpg'); %读入图像subplot(121);imshow(X);title('灰度图像'); %显示原始图像X=im2uint8(X); %将图像转化为int8类型[M,N]=size(X); %求得矩阵的维度%生成RGB矩阵R=zeros(M,N);G=zeros(M,N);B=zeros(M,N);%建立灰度值与RGB分量之间的变换关系for p=1:Mfor k=1:Nif(X(p,k)<128)R(p,k)=128;elseif(X(p,k)<192)R(p,k)=4*X(p,k)-511;elseR(p,k)=255;endif(X(p,k)<64)B(p,k)=255;elseif(X(p,k)<128)B(p,k)=511-4*X(p,k);elseB(p,k)=0;endif(X(p,k)<64)G(p,k)=4*X(p,k);elseif(X(p,k)<192)G(p,k)=255;elseG(p,k)=1023-4*X(p,k);endendendZ=cat(3,R,G,B); %合并三个分量Subplot(122);imshow(Z); %显示伪彩色图title('伪彩色图像');%%%%%%%%%%%%%%显示一幅图的RGB分量和HIS分量clear all;close all;X=imread('tower.jpg');X=im2uint8(X); %将图像转化为int8类型figure(1);title('原始图像'); %显示原始图像imshow(X);XR=X(:,:,1); %分离出RGB分量XG=X(:,:,2);XB=X(:,:,3);figure(2);subplot(2,3,1);imshow(XR);%显示RGB分量图title('R分量');subplot(2,3,2);imshow(XG);title('G分量');subplot(2,3,3);imshow(XB);title('B分量');%HSI分量X=im2double(X);XR=X(:,:,1);XG=X(:,:,2);XB=X(:,:,3);%根据RGB分量和HIS分量间的变换关系求得HIS分量num=0.5*((XR-XG)+(XR-XB));den=sqrt((XR-XG).^2+(XR-XB).*(XG-XB)); theta=acos(num./(den+eps));if(XG>=XB)H=theta;elseH=2*pi-theta;endI=(XR+XG+XB)./3;num=min(min(XR,XG),XB);den=XR+XG+XB;den(den==0)=eps;S=1-3.*num./den;M=cat(3,H,S,I);%合并三个分量M=im2uint8(M);%将图像转化为8bit类型%分离HIS分量H=M(:,:,1);S=M(:,:,2);I=M(:,:,3);subplot(2,3,4);imshow(log(H)+1,[]);%显示HI S分量图title('H分量');subplot(2,3,5);imshow(S);title('S分量');subplot(2,3,6);imshow(I);title('I分量');调试:灰度图像伪彩色图像R 分量G 分量B 分量H 分量S 分量I 分量第2题:实验内容及目的:编程实现图像傅立叶变换,并且显示图像的频谱图,编程实现傅里叶变换的,分离性,平移,旋转,卷积性质。
通过本题了解图像傅立叶变换的性质和作用。
实验原理:离散傅立叶变换是将图像从时域转化到频域的一种方法。
二维离散傅立叶变换的公式如下:由它的定义式可以看出二维离散傅立叶变换具有可分离性。
F(u,v)=∑x ∑y f(x,y)exp[- j2π(ux/M+vy/N)]=∑x {∑y f(x,y) exp[- j2πvy/N]} exp[- j2πux/M]=∑x F(x,v) exp[- j2πux/M]其中F(x,v)=∑y f(x,y) exp(- j2πvy/N)。
根据上式推出,计算一幅图像的二维傅里叶变换可以先计算行变换再计算列变换。
由定义式可推出:f(x,y)exp[j2π(u0x+v0y)/N] ⇔ F(u-u0,v-v0)1100(,)(,)exp[2()],0,1,2,..,1,0,1,2,..,1N M x y ux vy F u v f x y j u M v N M N π--===-+=-=-∑∑11001(,)(,)exp[2()],0,1,2,..,1,0,1,2,..,1M N u v ux vy f x y F u v j x M y N NM M Nπ--===+=-=-∑∑f(x-x0,y-y0) ⇔ F(u,v)exp[-j2π(ux0+vy0)/N]证明傅立叶变换的平移性可以将图像矩阵与一指数相乘再对其进行傅里叶变换,观察结果是否是将原图像的傅立叶变换移动到新的位置。
对f(x,y)的平移不影响其傅里叶变换的幅值。
傅里叶变换具有旋转性,即时域图旋转某一角度后,其傅里叶变换也旋转同样的角度。
傅里叶变换的卷积性:如果f(x,y)⇔F(u,v), g(x,y) ⇔ G(u,v)则f(x,y)*g(x,y) ⇔ F(u,v)G(u,v)思路分析:读入所要处理的图像,用fft2函数对其进行傅立叶变换,显示变换后的频谱图以及幅度谱。
验证傅立叶变换的可分离性。
先对图像做一次一维傅里叶变换,对得到的结果再进行一次一维傅立叶变换,得到的结果与图像的二维傅立叶变换比较。
验证傅立叶变换的平移性。
先给图像补零以便于后面平移。
我在图像的右侧补32列0。
将图像右移16列,对其进行傅立叶变换并与变换前的幅度谱进行对比。
验证傅立叶变换的旋转性。
将时域图旋转90度后进行傅立叶变换,得到的结果与旋转前的幅度谱比较。
验证傅立叶变换的卷积性。
由于图像太大,所以我自己产生了一个64×64的黑白图,用conv2函数让这个黑白图与自身做卷积,得到的结果再做傅立叶变换,画出得到的频谱图。
将这个黑白图补零成128×128的图,对其进行傅立叶变换,再把得到的结果与自身相乘,画出得到的频谱图。
比较卷积的傅立叶变换频谱图和傅立叶变换的乘积的频谱图。
代码:clear all;clc;I=imread('girl.bmp'); %读入图像I=im2double(I);Ifft=fft2(I); %对图像做离散傅里叶变换figure(1);imshow(I);title('原始图像'); %显示原始图像figure(2);subplot(121);imshow(Ifft);title('频谱图'); %显示离散傅立叶变换后的频谱图subplot(122);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('幅度谱'); %显示变换后的幅度谱%可分离性Ifft=fft(fft(I).').';figure(3);subplot(221);imshow(Ifft);title('进行两次一维变换后的频谱图');subplot(222);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('进行两次一维变换后的幅度谱');Ifft=fft2(I);subplot(223);imshow(Ifft);title('二维傅立叶变换后的频谱图');subplot(224);Ifft=fftshift(Ifft);imshow(log(abs(Ifft)+1),[]);title('二维傅立叶变换后的幅度谱');%平移性[M N]=size(I);A=zeros(M,32);I2=[I A];figure(5);subplot(221);imshow(I2);title('原始图');I2=fft2(I2);fft_I2=fftshift(I2);subplot(222);imshow(log(abs(fft_I2)+1),[]);title('原幅度谱');B=zeros(M,16);I3=[B I B];subplot(223);imshow(I3);title('平移后的图');I3=fft2(I3);fft_I3=fftshift(I3);subplot(224);imshow(log(abs(fft_I3)+1),[]);title('平移后的幅度谱'); %旋转性X=imrotate(I,90);figure(6);imshow(X);title('旋转90度后的图像');Ifft=fft2(X);Ifft=fftshift(Ifft);figure(7);imshow(log(abs(Ifft)+1),[]);title('旋转90度后的幅度谱');%卷积性C=zeros(64,64);%生成图像矩阵C(25:45,25:45)=1;%给25行到45行,25列到45列的值赋1C_OUT=conv2(C,C);%C和C做卷积CFFT=fft2(C_OUT);%对生成的卷积做傅立叶变换figure(8);subplot(121);imshow(CFFT);%显示卷积的傅立叶变换title('卷积的傅立叶变换');%给图像矩阵补零D=zeros(128,128);%生成128×128的零矩阵D(1:64,1:64)=C;%零矩阵的左上角放置图像矩阵Dfft=fft2(D);%对补零后的图像做傅立叶变换DFFT2=Dfft.*Dfft;subplot(122);imshow(DFFT2);%显示傅立叶变换的乘积title('傅立叶变换的乘积');figure(9);subplot(121);imshow(C_OUT);title('卷积的时域图');subplot(122);imshow(ifft2(DFFT2));title('傅里叶变换乘积的时域图');原始图像频谱图幅度谱进行两次一维变换后的频谱图进行两次一维变换后的幅度谱二维傅立叶变换后的频谱图二维傅立叶变换后的幅度谱原始图原幅度谱平移后的图平移后幅度谱旋转90度后的图像旋转90度后的幅度谱卷积的傅立叶变换傅立叶变换的乘积卷积的时域图傅里叶变换乘积的时域图第3题:实验内容及目的:用直接灰度变换改变图像(求反,增强对比度,动态范围压缩,灰度切分),显示一副灰度图像的8个位面图。