ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:23.65KB ,
资源ID:11256453      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11256453.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(天津科技大学数字图像处理实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

天津科技大学数字图像处理实验报告.docx

1、天津科技大学数字图像处理实验报告数字图像处理实验报告专 业:计算机科学技术学 号:*姓 名:马艳松提交日期:2014.6.5 实验一 数字图像的读入与显示一实验目的: 1.熟悉opencv的开发环境设置 2.读取一幅图像,并显示,掌握Imread, imwrite,imshow的使用 3.掌握opencv中图像的表示,及其属性的含义。二实验内容: 配置好visualstudio2010下opnecv开发环境 使用opencv的函数读入一幅图像,并在窗口中显示出来。 三实验步骤:#include stdafx.h#include using namespace cv;using namespac

2、e std;void test1() Mat inputImage=imread(.imagebookbeach.jpg,1); if(!inputImage.empty() cvNamedWindow(test); imshow(test,inputImage); waitKey(); else cout1, 1, =1, 以及-1,比较不同K值时的图像增强效果。(2)打开一幅彩色图像,对每个像素进行访问,分别令R、G、B的值为0,查看处理后的图像,并比较原图像的差异。重点和难点: 掌握灰度图像和彩色图像的像素的值的访问方法。三实验步骤:1r)实验代码void image1Pixel() d

3、ouble durationa,durationb,durationc; double cacStart,cacEnd; Mat image=imread(.imagebookbeach.jpg,1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0); /gray=0.299R+0.587G+0.114b uchar r,g,b; float fgray; cacStart = static_cast(getTickCount(); for(int m=0;m100;m+) for(int i=0;iimage

4、.size().height;i+) for(int j=0;jimage.size().width;j+) b=image.at(i,j)0; g=image.at(i,j)1; r=image.at(i,j)2; fgray=0.299*r+0.587*g+0.114*b; gray.at(i,j)=saturate_cast(fgray); imshow(,gray); cacEnd = static_cast(getTickCount(); durationa=(cacEnd-cacStart)/cv:getTickFrequency(); / the elapsed time in

5、ms waitKey();2)实验代码#include stdafx.h#include using namespace cv;using namespace std;void image1Pixel() double durationa,durationb,durationc; double cacStart,cacEnd; Mat image=imread(.imagebookbeach.jpg,1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0); Mat grayGB(image.size().hei

6、ght,image.size().width,CV_8UC3,Scalar(0); Mat grayRB(image.size().height,image.size().width,CV_8UC3,Scalar(0); Mat grayRG(image.size().height,image.size().width,CV_8UC3,Scalar(0); uchar r,g,b; float fgray; cacStart = static_cast(getTickCount(); for(int m=0;m100;m+) for(int i=0;iimage.size().height;i

7、+) for(int j=0;jimage.size().width;j+) b=image.at(i,j)0; g=image.at(i,j)1; r=image.at(i,j)2; / grayGB.at(i,j)0 = b; grayGB.at(i,j)1 = g; grayGB.at(i,j)2 = 0; /R grayRB.at(i,j)0 = b; grayRB.at(i,j)1 = 0;/ G grayRB.at(i,j)2 = r; grayRG.at(i,j)0 = 0; /B grayRG.at(i,j)1 = g; grayRG.at(i,j)2 = r; / fgray

8、=0.299*r+0.587*g+0.114*b; gray.at(i,j)=saturate_cast(fgray); cvNamedWindow(org); imshow(org,image); cvNamedWindow(gray); imshow(gray,gray); waitKey(); cacEnd = static_cast(getTickCount(); durationa=(cacEnd-cacStart)/cv:getTickFrequency(); void test1() Mat inputImage=imread(.imagebookbeach.jpg,1); if

9、(!inputImage.empty() cvNamedWindow(test); imshow(test,inputImage); waitKey(); else coutfile open error!; getchar(); int _tmain(int argc, _TCHAR* argv) image1Pixel(); test1(); return 0;心得体会:通过本次试验,我了解并大致掌握灰度图像和彩色图像的像素的值的访问方法。由于之前很少练习这方面的内容,试验过程中遇到了一些问题,好在在别人的帮助下和向别人咨询终于了解了这方面知识的大致框架和原理。由此更坚定了我学习下去的信心

10、和动力!实验三 图像的平滑一实验目的: 掌握opencv开发环境中对灰度图像及彩色图像中的像素的访问方法 掌握opencv中对图像进行处理的基本过程。 掌握均值平滑和中值滤波的基本原理二实验内容: (1)打开一幅灰度图像,对图像进行3*3(包括中心点)的邻域平均处理。(2)对原图进行3*3(包括中心点)的中值滤波处理。(3)比较原图像与邻域平均的图像、中值滤波后的图像的差异三实验步骤:1)中值滤波处理 for(int i=1;iimage.size().height-1;i+) for(int j=1;jimage.size().width-1;j+) int a9=gray.at(i-1,j

11、),gray.at(i,j),gray.at(i+1,j), gray.at(i-1,j-j),gray.at(i,j-1),gray.at(i+1,j-1) +gray.at(i-1,j+1),gray.at(i,j+1),gray.at(i+1,j+1); gray.at(i,j)=GetMidNum(a); imshow(中值滤波,gray); cacEnd = static_cast(getTickCount(); durationa=(cacEnd-cacStart)/cv:getTickFrequency(); waitKey(); int GetMidNum(int n) for

12、 (int i=0;i9;i+) for(int j = 0 ;jnj+1) int temp ; temp = nj+1; nj+1 = nj; nj= temp; return n4; void test4_4() int count256;/存放各个像素值对应的个数 float hist256,sumHist256; uchar grayHist256; for (int i=0;i256;i+) counti=0; histi=0; sumHisti=0; grayHisti=0; Mat image=imread(.imagebookbeach.jpg,0); for(int i=0

13、;iimage.size().height;i+) uchar* data=image.ptr(i); for(int j=0;jimage.size().width;j+) countdataj+; for(int i=0;i256;i+) histi=(float)counti)/(image.size().height*image.size().width); sumHist0=hist0; for(int i=1;i256;i+) sumHisti=sumHisti-1+histi; for(int i=0;i256;i+) grayHisti=saturate_cast(sumHis

14、ti*255); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0); for(int i=0;iimage.size().height;i+) uchar* data=image.ptr(i); uchar* grayData=gray.ptr(i); for(int j=0;jimage.size().width;j+) grayDataj=grayHistdataj; cvNamedWindow(tset); imshow(org,image); cvNamedWindow(hist); imshow(his

15、t,gray); waitKey(); int _tmain(int argc, _TCHAR* argv) image1Pixel(); /Test3(); /test4_4(); return 0;2)邻域平均void image1Pixel() double durationa,durationb,durationc; double cacStart,cacEnd; Mat image=imread(.imagebookbeach.jpg,1); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0); /gra

16、y=0.299R+0.587G+0.114b uchar r,g,b; float fgray; cacStart = static_cast(getTickCount(); for(int m=0;m100;m+) for(int i=0;iimage.size().height;i+) for(int j=0;jimage.size().width;j+) b=image.at(i,j)0; g=image.at(i,j)1; r=image.at(i,j)2; fgray=0.299*r+0.587*g+0.114*b; gray.at(i,j)=saturate_cast(fgray)

17、; imshow(,gray); cacEnd = static_cast(getTickCount(); durationa=(cacEnd-cacStart)/cv:getTickFrequency(); / the elapsed time in ms waitKey(); void Test3() int GetMidNum(int n); double durationa,durationb,durationc; double cacStart,cacEnd; Mat image=imread(.imagebookbeach.jpg,1); Mat gray(image.size()

18、.height,image.size().width,CV_8UC1,Scalar(0); Mat grayGB(image.size().height,image.size().width,CV_8UC3,Scalar(0); Mat grayRB(image.size().height,image.size().width,CV_8UC3,Scalar(0); Mat grayRG(image.size().height,image.size().width,CV_8UC3,Scalar(0); /gray=0.299R+0.587G+0.114b uchar r,g,b; float f

19、gray; cacStart = static_cast(getTickCount(); for(int m=0;m100;m+) for(int i=0;iimage.size().height;i+) for(int j=0;jimage.size().width;j+) b=image.at(i,j)0; g=image.at(i,j)1; r=image.at(i,j)2; fgray=0.299*r+0.587*g+0.114*b; gray.at(i,j)=saturate_cast(fgray); imshow(原图,gray); for(int i=1;iimage.size(

20、).height-1;i+) for(int j=1;jimage.size().width-1;j+) gray.at(i,j)= (gray.at(i-1,j)+gray.at(i,j)+gray.at(i+1,j)+ gray.at(i-1,j-j)+gray.at(i,j-1)+gray.at(i+1,j-1) +gray.at(i-1,j+1)+gray.at(i,j+1)+gray.at(i+1,j+1)/9; imshow(邻域平均,gray);实验心得:通过这次试验,我明白了,平滑技术用于平滑图像的噪声,平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均值或中值。但是这些很

21、容易引起边缘的模糊,常用的有均值滤波、中值滤波,在使用时,针对不同的噪声,也需要不同的滤波法,没有哪种方法是绝对好,必须具体情况具体分析。 最后比较三种平滑效果,八点平滑最好,说明对高斯噪声平滑滤波效果较好。中值滤波基本把椒盐噪声都滤去了,说明中值滤波对椒盐噪声平滑效果比高斯噪声好。实验四 图像的直方图均衡化一实验目的: 掌握直方图均衡化的基本步骤及实现方法 掌握opencv中对图像进行处理的基本过程。 二实验内容: (1)打开一幅灰度图像,对图像进行直方图均衡化处理。(2)比较原图像与均衡化的图像的差异。(3)要求自己按照课本介绍的均衡化的步骤在opencv下实现直方图均衡化处理。三实验步骤

22、:void test1() Mat inputImage=imread(.imagebookbeach.jpg,1); if(!inputImage.empty() cvNamedWindow(test); imshow(test,inputImage); waitKey(); else coutfile open error!; getchar(); void test4() int count256; float hist256,sumHist256; uchar grayHist256; for (int i=0;i256;i+) counti=0; histi=0; sumHisti=

23、0; grayHisti=0; Mat image=imread(.imagebookbeach.jpg,0); for(int i=0;iimage.size().height;i+) uchar* data=image.ptr(i); for(int j=0;jimage.size().width;j+) countdataj+; for(int i=0;i256;i+) histi=(float)counti)/(image.size().height*image.size().width); sumHist0=hist0; for(int i=1;i256;i+) sumHisti=s

24、umHisti-1+histi; for(int i=0;i256;i+) grayHisti=saturate_cast(sumHisti*255); Mat gray(image.size().height,image.size().width,CV_8UC1,Scalar(0); for(int i=0;iimage.size().height;i+) uchar* data=image.ptr(i); uchar* grayData=gray.ptr(i); for(int j=0;jimage.size().width;j+) grayDataj=grayHistdataj; cvN

25、amedWindow(org); imshow(org,image); cvNamedWindow(hist); imshow(hist,gray); waitKey(); int _tmain(int argc, _TCHAR* argv) /test1(); test4(); return 0;四实验心得:通过这次的实验,我明白了直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1