欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:9860275       资源大小:23.68KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

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

    2、space 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

    3、() 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); /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;ii

    4、mage.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

    5、 in 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()

    6、.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); uchar r,g,b; float fgray; cacStart = static_cast(getTickCount(); for(int m=0;m100;m+) for(int i=0;iimage.size().heig

    7、ht;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; / 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; / f

    8、gray=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)

    9、; if(!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

    11、-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); gray.at(i,j)=GetMidNum(a); imshow(中值滤波,gray); cacEnd = static_cast(getTickCount(); durationa=(cacEnd-cacStart)/cv:getTickFrequency(); waitKey(); int GetMidNum(int n)

    12、 for (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

    13、 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=sumHisti-1+histi; for(int i=0;i256;i+) grayHisti=saturate_cast(su

    14、mHisti*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

    15、(hist,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);

    16、/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.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(fg

    17、ray); 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.si

    18、ze().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; flo

    19、at 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); imshow(原图,gray); for(int i=1;iimage.s

    20、ize().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; sumHi

    23、sti=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+) sumHis

    24、ti=sumHisti-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;

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


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开