OPENCV毕业实习报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实习成绩评定表
学生姓名: 高强
学号: 0805090204
班级: 计科 2 班
各
总
类
项
分
别
分
值
值
评分标准
实际得分 总得分
按时参加实习活动,无旷课、迟到、 10
早退等情况。
遵守实习单位纪律和安排,无违反实
实
习单位规定的情况;听从指导教师的
习
10
30
安排,参加各项活动,无不服从教师
表
管理的现象。
现
术和检测技术。
(二) 实习内容:
本次实习内容其实很简单,就是学习和掌握 OpenCV 的用法。 OpenCV 是 Intel 开源计算机视觉库,它由一系列 C 函数和少量 C++ 类构成,实现 了图像处理和计算机视觉方面的很多通用算法。 要利用 OpenCV 进行开发,首先需要安装配置程序运行环境,下面以 VS2005 为例介绍 安装配置的方法: 1. 安装 VS2005 和 OpenCV; 2. 配置 Windows 环境变量。检查 C:\Program Files\OpenCV\bin 是否已经被加入到
-1-
武汉工程大学计算机科学与工程学院 毕业实习报告
cvNamedWindow( "Image", 1 );//创建窗口用来显示图像,第一个参数为窗口的 标题 cvShowImage( "Image", pImg ); //显示图像,第一个参数为窗口的标题,第二个参数为要显示图像的指针 cvWaitKey(0); //等待按键,后面的参数为等待的时间,单位为 ms,为 0 则意为一直等到你按键 为止,若改为 1000 则为图像显示 1 秒后消失 cvDestroyWindow( "Image" );//销毁窗口 cvReleaseImage( &pImg ); //释放图像 2. 图像的创建,保存和复制 IplImage* pImg = cvCreateImage(cvGetSize(pImg),pImg->depth, pImg->nChannels); //用 cvCreateImage 创建图像并用 pImg 指向该图像,第一个参数为图像的大小, 第二个参数为图像的深度,第三个参数若为 1 则为彩色图,3 则为黑白图 cvCopy(pImg, pImg2, NULL);//将 pImg 指针所指图像复制到 pImg2 所指图像 cvSaveImage(argv, pImg2);//把图像写入文件,arvg 指新图像的地址或指针 3. 图像的基本绘制 CvPoint //二维坐标系下的点,类型为整型,有 x、y 两个 int 成员 CV_RGB(r,g,b) //颜色函数,rgb 分别为红色分量、绿色分量、蓝色分量 cvLine(pImg,cvPoint(50,50),cvPoint(50,400),CV_RGB(0,0,0)) //在 pImg 图像上画直线,直线以两点(50,50)和 50,400)确定,颜色为黑色 cvRectangle(pImg,pt1,pt2,CV_RGB(0,0,0),1) //在 pImg 图像上画矩形,矩形以左上角 pt1 点和右下角 pt2 确定,颜色为黑色, 最后一个参数若为-1 则为填充为边框颜色的实心矩形,若为 1 则为空心矩形,即 只有一个边框 cvEllipse(pImg,pt1,cvSize(a,b),0,0,360,CV_RGB(0,0,0)) //在 pImg 图像上画(椭)圆(弧),以 pt1 为圆心,ab 为两个半轴长(为圆的话 则 ab 相等),后面的三个参数分别为偏转角度 0 度、起始角度 0 度、结束角度 360 度,最后一个为画笔颜色 CvFont x; cvInitFont(&x,CV_FONT_HERSHEY_SIMPLEX,1,1); cvPutText(pImg2, "gaoq",cvPoint(200,200),&x,CV_RGB(255,0,0)); //先声明一个字体结构变量 x,然后用 cvInitFont 给 x 初始化字体的类型和大小 粗细等,最后用 cvPutText 函数在 pImg2 图像上以 x 的字体输出字符串 gaoq,颜 色为红色(红色分量为 255 最大,其它为 0,为红色) 4. 图像的边缘检测与云检测 cvCanny(pDstImg,pDstImg,10,30) //边缘检测函数,云检测的基础,前两个 pDstImg 分别为源路径和目的路径,后 面两个是阈值参数,根据情况自行设定 void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_value, int threshold_type ); //二值化函数,其参数分别为原始数组,输出数组,阈值,最大值,阈值类型, (云检测也可用 for 循环等知识自己形成二值化图像,然后再用边缘检测函数勾 勒出边缘,由于这个比较复杂,下面给出具体的代码)
武汉工程大学 计算机科学与工程学院
毕业实习报告
专
业 计算机科学与技术(计算机科学)
班
级
08 计科 02 班
学
号
0805090204
学生姓名
高强
指导教师
金国祥(教授)
实习时间
2012 学年第二学期
2012.2.20 至 2012.3.9
实习成绩
说明:
武汉工程大学计算机科学与工程学院 制
1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实 习答辩、实习成绩评定、给出实习评语等工作。
的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、 实习答辩的情况等。 5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格 处理。实习答辩小组应由 2 人及以上教师组成,其中校内指导教师必须 参加,否则视作无效答辩。 6、 实习报告正文字数应不少于 5000 字,实习日记字数不少于 200 字/天。 7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可 由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的 情况自行填写以上内容。 8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实 习报告一起装订,作为参加实习答辩和评定成绩的依据。
总得分
答辩小组成员(签字):
备注
指导教师评语
年 月日
指导教师: 日 期:
(签字) 年月日
武汉工程大学计算机科学与工程学院 毕业实习报告
一、实习目的与任务
学习和掌握 Intel 开源计算机视觉库——OpenCV 的基本用法,能够利用它进行基 本的图像绘制,甚至边缘检测,云检测等。
二、实习地点
湖北省武汉市江夏区武汉工程大学流芳校区机电大楼 419 机房
按期圆满完成规定的任务,工作量饱
10 满;能运用所学知识和技能去发现与
解决实际问题,工作中有创新意识。
实习报告文字通顺,内容翔实,论述 15 充分、完整,结构严谨合理。能运用
所学专业知识对问题加以分析。
实
正确处理相关的数据,分析处理科学;
习
15 具有收集、加工各种信息及获得新知
40 报
识的能力。
告
实习报告字数符合相关要求,实习报
三、实习要求和内容
(一) 实习要求:
1. 会安装 OpenCV 和 VC6(或者 VS2005)并进行正确配置; 2. 能够用 OpenCV 进行图像的读入、显示、创建、复制和保存等; 3. 能够用 OpenCV 进行图像的简单绘制,比如直线、三角形、矩形、圆形、椭圆,
并能够在图像中添加文本框和给图像上色; 4. 能够用 OpenCV 进行图像的边缘检测、云检测,以及能够初步理解条形码生成技
5
告工整规范,整齐划一。
实习日记(笔记)次数及内容符合要 5
求。
在规定时间内能就实习的内容进行全
实
15 面完整的阐述,言简意明,重点突出,
习 30
答
条理清晰。
辩
在规定时间内能准确、完整、流利地 15
回答教师所提出的问题。
备注
总评成绩: 补充说明:
分
指导教师:
日 期:
年
毕业实习答辩记录表
(签字) 月日
学生姓名: 答辩地点:
高强
答辩内容记录:
学号: 0805090204 机电大楼 417
班级: 计科 2 班
各项 总分值
分值
评分标准
答 辩 成
30 绩
在规定时间内能就实习的内容进行 15 全面完整的阐述,言简意明,重点突
出,条理清晰。
在规定时间内能准确、完整、流利地 15
回答教师所提出的问题。
实际 得分
void CloudDetect(IplImage *pSrcImg, IplImage *pDstImg, int winWidth = 3, double ThAvg = 0.4, double ThVar = 0.4);
static void Normalization(double *data, int size, double *dst = NULL) {
环境变量 PATH,如果没有,请加入。加入后需要注销当前 Windows 用户(或重启) 后重新登陆才生效(注意,此步骤可以省略,但如果省略的话,要记得把 OpenCV 的 bin 里的文件拷贝到 VS2005 所在的工程文件夹中); 3. 配置 VS2005。首先,打开 VS2005 的工具-》选项-》项目和解决方案-》VC++目录, 在 库 文 件 里 面 添 加 OpenCV 的 Lib 库 , 在 包 含 文 件 里 面 添 加 OpenCV 的 cxcore\include,cv\include,cvaux\include,ml\include,otherlibs\highgui, otherlibs\cvcam\include,接着在工程属性里面加入 cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib 等需要的库即可。 配置完 OpenCV 后就可以开始进行开发了。首先我们需要了解图像的特点,图像有两 种,灰度(黑白)图和彩色图,而不管是黑白还是彩色,都有一个色彩深度的概念,即一 种颜色有多少个灰度级,一般有 8 位,16 位,32 位之分,8 位即 2 的 8 次方(256)个灰 度级,比如 8 位灰度图中的像素只有 0-255 个灰度级,而 8 位彩色图中的像素则由红绿蓝 三种颜色组成,每种颜色有 0-255 个等级 。了解了这些之后,我们再来逐个讲解用 OpenCV 画图的重难点。 1. 图像的读入和显示 IplImage* pImg;//声明 IplImage 指针用来载入图像 pImg = cvLoadImage( argv, 1); //利用 cvLoadImage 函数来载入图像,其中第一个参数为要载入的图像的地址, 第二个参数为载入图像的类型(1 为彩色图像)
2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于 学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做 适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。
3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。 4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间
-2-
Biblioteka Baidu 武汉工程大学计算机科学与工程学院 毕业实习报告
#include <stdio.h> #include <time.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib")
double max = data[0]; double min = data[0]; int i; for ( i = 1; i < size; i++ ) {
if ( max < data[i] ) {
max = data[i]; } if ( min > data[i] ) {
min = data[i]; } } double sub = max-min; if ( sub < 0.00001 ) { return; } double *pNor = (dst == NULL) ? data : dst; for ( i = 0; i < size; i++ ) { pNor[i] = (data[i]-min) / sub; } }
学生姓名: 高强
学号: 0805090204
班级: 计科 2 班
各
总
类
项
分
别
分
值
值
评分标准
实际得分 总得分
按时参加实习活动,无旷课、迟到、 10
早退等情况。
遵守实习单位纪律和安排,无违反实
实
习单位规定的情况;听从指导教师的
习
10
30
安排,参加各项活动,无不服从教师
表
管理的现象。
现
术和检测技术。
(二) 实习内容:
本次实习内容其实很简单,就是学习和掌握 OpenCV 的用法。 OpenCV 是 Intel 开源计算机视觉库,它由一系列 C 函数和少量 C++ 类构成,实现 了图像处理和计算机视觉方面的很多通用算法。 要利用 OpenCV 进行开发,首先需要安装配置程序运行环境,下面以 VS2005 为例介绍 安装配置的方法: 1. 安装 VS2005 和 OpenCV; 2. 配置 Windows 环境变量。检查 C:\Program Files\OpenCV\bin 是否已经被加入到
-1-
武汉工程大学计算机科学与工程学院 毕业实习报告
cvNamedWindow( "Image", 1 );//创建窗口用来显示图像,第一个参数为窗口的 标题 cvShowImage( "Image", pImg ); //显示图像,第一个参数为窗口的标题,第二个参数为要显示图像的指针 cvWaitKey(0); //等待按键,后面的参数为等待的时间,单位为 ms,为 0 则意为一直等到你按键 为止,若改为 1000 则为图像显示 1 秒后消失 cvDestroyWindow( "Image" );//销毁窗口 cvReleaseImage( &pImg ); //释放图像 2. 图像的创建,保存和复制 IplImage* pImg = cvCreateImage(cvGetSize(pImg),pImg->depth, pImg->nChannels); //用 cvCreateImage 创建图像并用 pImg 指向该图像,第一个参数为图像的大小, 第二个参数为图像的深度,第三个参数若为 1 则为彩色图,3 则为黑白图 cvCopy(pImg, pImg2, NULL);//将 pImg 指针所指图像复制到 pImg2 所指图像 cvSaveImage(argv, pImg2);//把图像写入文件,arvg 指新图像的地址或指针 3. 图像的基本绘制 CvPoint //二维坐标系下的点,类型为整型,有 x、y 两个 int 成员 CV_RGB(r,g,b) //颜色函数,rgb 分别为红色分量、绿色分量、蓝色分量 cvLine(pImg,cvPoint(50,50),cvPoint(50,400),CV_RGB(0,0,0)) //在 pImg 图像上画直线,直线以两点(50,50)和 50,400)确定,颜色为黑色 cvRectangle(pImg,pt1,pt2,CV_RGB(0,0,0),1) //在 pImg 图像上画矩形,矩形以左上角 pt1 点和右下角 pt2 确定,颜色为黑色, 最后一个参数若为-1 则为填充为边框颜色的实心矩形,若为 1 则为空心矩形,即 只有一个边框 cvEllipse(pImg,pt1,cvSize(a,b),0,0,360,CV_RGB(0,0,0)) //在 pImg 图像上画(椭)圆(弧),以 pt1 为圆心,ab 为两个半轴长(为圆的话 则 ab 相等),后面的三个参数分别为偏转角度 0 度、起始角度 0 度、结束角度 360 度,最后一个为画笔颜色 CvFont x; cvInitFont(&x,CV_FONT_HERSHEY_SIMPLEX,1,1); cvPutText(pImg2, "gaoq",cvPoint(200,200),&x,CV_RGB(255,0,0)); //先声明一个字体结构变量 x,然后用 cvInitFont 给 x 初始化字体的类型和大小 粗细等,最后用 cvPutText 函数在 pImg2 图像上以 x 的字体输出字符串 gaoq,颜 色为红色(红色分量为 255 最大,其它为 0,为红色) 4. 图像的边缘检测与云检测 cvCanny(pDstImg,pDstImg,10,30) //边缘检测函数,云检测的基础,前两个 pDstImg 分别为源路径和目的路径,后 面两个是阈值参数,根据情况自行设定 void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_value, int threshold_type ); //二值化函数,其参数分别为原始数组,输出数组,阈值,最大值,阈值类型, (云检测也可用 for 循环等知识自己形成二值化图像,然后再用边缘检测函数勾 勒出边缘,由于这个比较复杂,下面给出具体的代码)
武汉工程大学 计算机科学与工程学院
毕业实习报告
专
业 计算机科学与技术(计算机科学)
班
级
08 计科 02 班
学
号
0805090204
学生姓名
高强
指导教师
金国祥(教授)
实习时间
2012 学年第二学期
2012.2.20 至 2012.3.9
实习成绩
说明:
武汉工程大学计算机科学与工程学院 制
1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实 习答辩、实习成绩评定、给出实习评语等工作。
的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、 实习答辩的情况等。 5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格 处理。实习答辩小组应由 2 人及以上教师组成,其中校内指导教师必须 参加,否则视作无效答辩。 6、 实习报告正文字数应不少于 5000 字,实习日记字数不少于 200 字/天。 7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可 由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的 情况自行填写以上内容。 8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实 习报告一起装订,作为参加实习答辩和评定成绩的依据。
总得分
答辩小组成员(签字):
备注
指导教师评语
年 月日
指导教师: 日 期:
(签字) 年月日
武汉工程大学计算机科学与工程学院 毕业实习报告
一、实习目的与任务
学习和掌握 Intel 开源计算机视觉库——OpenCV 的基本用法,能够利用它进行基 本的图像绘制,甚至边缘检测,云检测等。
二、实习地点
湖北省武汉市江夏区武汉工程大学流芳校区机电大楼 419 机房
按期圆满完成规定的任务,工作量饱
10 满;能运用所学知识和技能去发现与
解决实际问题,工作中有创新意识。
实习报告文字通顺,内容翔实,论述 15 充分、完整,结构严谨合理。能运用
所学专业知识对问题加以分析。
实
正确处理相关的数据,分析处理科学;
习
15 具有收集、加工各种信息及获得新知
40 报
识的能力。
告
实习报告字数符合相关要求,实习报
三、实习要求和内容
(一) 实习要求:
1. 会安装 OpenCV 和 VC6(或者 VS2005)并进行正确配置; 2. 能够用 OpenCV 进行图像的读入、显示、创建、复制和保存等; 3. 能够用 OpenCV 进行图像的简单绘制,比如直线、三角形、矩形、圆形、椭圆,
并能够在图像中添加文本框和给图像上色; 4. 能够用 OpenCV 进行图像的边缘检测、云检测,以及能够初步理解条形码生成技
5
告工整规范,整齐划一。
实习日记(笔记)次数及内容符合要 5
求。
在规定时间内能就实习的内容进行全
实
15 面完整的阐述,言简意明,重点突出,
习 30
答
条理清晰。
辩
在规定时间内能准确、完整、流利地 15
回答教师所提出的问题。
备注
总评成绩: 补充说明:
分
指导教师:
日 期:
年
毕业实习答辩记录表
(签字) 月日
学生姓名: 答辩地点:
高强
答辩内容记录:
学号: 0805090204 机电大楼 417
班级: 计科 2 班
各项 总分值
分值
评分标准
答 辩 成
30 绩
在规定时间内能就实习的内容进行 15 全面完整的阐述,言简意明,重点突
出,条理清晰。
在规定时间内能准确、完整、流利地 15
回答教师所提出的问题。
实际 得分
void CloudDetect(IplImage *pSrcImg, IplImage *pDstImg, int winWidth = 3, double ThAvg = 0.4, double ThVar = 0.4);
static void Normalization(double *data, int size, double *dst = NULL) {
环境变量 PATH,如果没有,请加入。加入后需要注销当前 Windows 用户(或重启) 后重新登陆才生效(注意,此步骤可以省略,但如果省略的话,要记得把 OpenCV 的 bin 里的文件拷贝到 VS2005 所在的工程文件夹中); 3. 配置 VS2005。首先,打开 VS2005 的工具-》选项-》项目和解决方案-》VC++目录, 在 库 文 件 里 面 添 加 OpenCV 的 Lib 库 , 在 包 含 文 件 里 面 添 加 OpenCV 的 cxcore\include,cv\include,cvaux\include,ml\include,otherlibs\highgui, otherlibs\cvcam\include,接着在工程属性里面加入 cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib 等需要的库即可。 配置完 OpenCV 后就可以开始进行开发了。首先我们需要了解图像的特点,图像有两 种,灰度(黑白)图和彩色图,而不管是黑白还是彩色,都有一个色彩深度的概念,即一 种颜色有多少个灰度级,一般有 8 位,16 位,32 位之分,8 位即 2 的 8 次方(256)个灰 度级,比如 8 位灰度图中的像素只有 0-255 个灰度级,而 8 位彩色图中的像素则由红绿蓝 三种颜色组成,每种颜色有 0-255 个等级 。了解了这些之后,我们再来逐个讲解用 OpenCV 画图的重难点。 1. 图像的读入和显示 IplImage* pImg;//声明 IplImage 指针用来载入图像 pImg = cvLoadImage( argv, 1); //利用 cvLoadImage 函数来载入图像,其中第一个参数为要载入的图像的地址, 第二个参数为载入图像的类型(1 为彩色图像)
2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于 学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做 适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。
3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。 4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间
-2-
Biblioteka Baidu 武汉工程大学计算机科学与工程学院 毕业实习报告
#include <stdio.h> #include <time.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib")
double max = data[0]; double min = data[0]; int i; for ( i = 1; i < size; i++ ) {
if ( max < data[i] ) {
max = data[i]; } if ( min > data[i] ) {
min = data[i]; } } double sub = max-min; if ( sub < 0.00001 ) { return; } double *pNor = (dst == NULL) ? data : dst; for ( i = 0; i < size; i++ ) { pNor[i] = (data[i]-min) / sub; } }