视频中直线像素采样(cvInitLineIterator )把每个像素点的三个值写入csv文件中
2013-10-28 09:26
507 查看
#include <cv.h> #include <highgui.h> #include <stdio.h> int main( int argc, char** argv ) { // if( argc != 2 ) // return -1; cvNamedWindow( "Example", CV_WINDOW_AUTOSIZE ); CvCapture* capture = cvCreateFileCapture( "video1.avi" ); //加载视频 if( !capture ) printf( "Couldn't open %s\n", argv[1] ); CvPoint pt1 = cvPoint( 10, 10 ); CvPoint pt2 = cvPoint( 10, 20 ); //直线两个顶点,读取这两个端点连成直线的像素点,总共11个像素点 int max_buffer; IplImage* rawImage; int r[10000], g[10000], b[10000]; //存储r,g,b三维的像素值 FILE* fptrb = fopen( "blines.csv","w" ); //创建文件存储数据 FILE* fptrg = fopen( "glines.csv", "w" ); //存储每个通道的像素值 FILE* fptrr = fopen( "rlines.csv", "w" ); //存储为csv文件 CvLineIterator iter; //采样迭代器 int sign = 0; for( ;; ) { if( !cvGrabFrame( capture ) ) //如果没捕捉到帧,退出,视频总共有68帧,30秒的画面 break; rawImage = cvRetrieveFrame( capture ); //取回由函数cvGrabFrame抓取的图像 max_buffer = cvInitLineIterator( rawImage, pt1, pt2, &iter, 8, 0); //初始化直线迭代器,返回直线上两端像素点个数,总共11个 cvShowImage( "Example", rawImage ); //显示每一帧,连续显示每一帧就是视频的的原理 // int c = cvWaitKey(0); for( int j = 0; j < max_buffer; ++j ) //max_buffer = 11 { fprintf( fptrb, "%d,", iter.ptr[0] ); //写蓝值 fprintf( fptrg, "%d,", iter.ptr[1] ); fprintf( fptrr, "%d,", iter.ptr[2] ); iter.ptr[2] = 255; //将直线标记为红色 CV_NEXT_LINE_POINT( iter ); //移动指针,指向下一个pixel } fprintf( fptrb, "\n" ); fprintf( fptrg, "\n" ); fprintf( fptrr, "\n" ); sign++; printf("\n\n%d", sign); } fclose( fptrb ); fclose( fptrg ); fclose( fptrr ); cvReleaseCapture( &capture ); cvDestroyWindow( "Example" ); return 0; }
相关文章推荐
- 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- 第九章 – 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- 第九章 – 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- Python读取某个目录下的zip压缩包解压开后计算每个小文件的md5值,并将压缩包名字、里面小文件名字、以及对应的md5值写入csv文件
- php写入数据到CSV文件的方法
- Python爬取新浪微博评论数据,写入csv文件中
- Python获取文件目录下视频时长、大小、并写入excle文件
- php遍历目录,生成目录下每个文件的md5值并写入到结果文件中
- OpenCV —— 写入AVI视频文件
- python 把一个文本文件中的语句分词, 并去重,然后写入一个CSV文件后,你可以排序
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
- 【练习题】 使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件,并写入1990
- 利用opencv捕获usb摄像头并写入视频文件
- ios 通过调用系统摄像头拍照,拍视频,然后写入文件
- Python 读取EXCEL(XLS、CSV)写入txt文件
- RGB图像中三个通道的每个灰度值的像素个数
- 用csv导出文件时,每个cell加上双引号后,可以原样输入cell中的内容,不管是否cell中是否包含逗号或者换行,但是如果包含双引号,则换行失效,解决方法如下
- Python用csv写入文件_消除空余行的方法
- java将数据写入到csv文件中
- java写入csv文件