《学习OpenCV》第四章课后题1-a
来源:互联网 发布:淘宝退款骗局 编辑:程序博客网 时间:2024/05/17 20:29
题目说明:
a创建一个程序实现以下功能:(1)从视频文件中读入数据;(2)将读入数据转换为灰度图;(3)对图像做Canny边缘检测。将三个过程的处理结果显示到不同的窗口中,每个窗口根据其内容合理命名。
#include <highgui.h>#include <cv.h>int main(){ char * file_path = "E:/song.mp4"; CvCapture * capture = 0; capture = cvCreateFileCapture(file_path); // 载入视频文件失败 if(capture == NULL) { printf("Can't load the video file, quit...\n"); return 0; } // 每一帧 static IplImage * frame; // 灰度后的每一帧 static IplImage * gray_frame; // 边缘检测后的每一帧 static IplImage * canny_frame; //创建三个窗口 cvNamedWindow("color",CV_WINDOW_AUTOSIZE); cvNamedWindow("gray",CV_WINDOW_AUTOSIZE); cvNamedWindow("canny",CV_WINDOW_AUTOSIZE); // 从视频文件读入数据 frame = cvQueryFrame(capture); // 为gray_frame 和 canny_frame 分配合适的尺寸 gray_frame = cvCreateImage( cvGetSize(frame), frame->depth, 1); canny_frame = cvCreateImage( cvGetSize(frame), frame->depth, 1); while(1) { frame = cvQueryFrame(capture); if(!frame) break; // 将读入数据转换为灰度图 cvCvtColor( frame, gray_frame, CV_RGB2GRAY ); // 对图像做Canny边缘检测 cvCanny( gray_frame, canny_frame, 30, 100, 3); // 显示图像 cvShowImage("color", frame); cvShowImage("gray", gray_frame); cvShowImage("canny", canny_frame); char c = cvWaitKey(4); if(c == 27) break; } cvReleaseCapture(&capture); //释放图像数据 cvReleaseImage(&frame); cvReleaseImage(&gray_frame); cvReleaseImage(&canny_frame); //释放窗口数据 cvDestroyAllWindows(); return 0;}
注意:不要把gray_frame = cvCreateImage( cvGetSize(frame), frame->depth, 1);和canny_frame = cvCreateImage( cvGetSize(frame), frame->depth, 1);放到while循环中去,这样会在内存中不断申请空间,最后导致内存泄露而停止程序。
引用:qdsclove的专栏
http://blog.csdn.net/stk_overflow/article/details/8760035
0 0
- 《学习OpenCV》第四章课后题1-a
- 《学习OpenCV》第四章课后题3-a
- 《学习OpenCV》第四章课后题5-a
- 《学习OpenCV》第四章课后题2
- 《学习OpenCV》第四章课后题4
- 《学习OpenCV》第四章课后题6
- 《学习OpenCV》第四章课后题7
- 《学习OpenCV》第四章课后题8
- 《学习OpenCV》第四章课后题9
- 《学习opencv》第四章课后习题1
- 《学习OpenCV》第四章课后题1-b&c
- 学习Opencv 第四章课后习题解答(Exercise 1a)
- 《学习OpenCV》第四章课后题3-b
- 《学习opencv》第四章课后习题2
- 《学习opencv》第四章课后习题3
- 《学习opencv》第四章课后习题4
- 《学习OpenCV》第三章课后题8-a
- 学习OpenCV课后题3.8(a)
- 黑白图像
- 钩子及其使用
- 实时更新相关专利研究
- 数字图像处理之直方图均衡化
- windows启动服务出现 193 0xc1错误的解决方法
- 《学习OpenCV》第四章课后题1-a
- Android检查手机上是否安装了第三方软件的方法---本文以百度地图为例
- for循环和jquery的each()跳出循环的方法
- Eclipse和MyEclipse的区别
- 全排列
- java自定义注解
- MySql优化--数据库和表结构优化
- 【Linux】Ubuntu下录屏&&制作GIF
- 课程设计-银行储蓄系统