日志
![]() ![]() v首页 资讯 研发 移动 云计算 空间 学生 论坛 博客 下载 网摘 程序员 外包 书店 CTO俱乐部 TUP 培训充电 D9区 共510次访问,排名2万外,好友0人,关注者1人。 OpenCV 编程简介(矩阵/图像/视频的基本读写操作) OpenCV编程简介 作者: Gady Agam Department of Computer Science January 26, 2010 -------------------------------------------------------------------------------- 摘要:本文旨在帮助读者快速入门OpenCV,而无需阅读冗长的参考手册。掌握了OpenCV的以下基础知识后,有需要的话再查阅相关的参考手册。
Learning OpenCV - Computer Vision with the OpenCV Library OpenCV教程--基础篇 [编辑](4) 视频处理例程(在 <opencv-root>/samples/c/): Action = 核心功能(core functionality) (e.g. set, create) [编辑](2) 矩阵数据类型: S = 符号整型 E.g.: CV_8UC1 是指一个8位无符号整型单通道矩阵, [编辑](3) 图像数据类型: E.g.: IPL_DEPTH_8U 图像像素数据是8位无符号整型. [编辑](4) 头文件: [编辑]5、C例程 int main(int argc, char *argv[]) if(argc<2){ // load an image // get the image data // create a window // invert the image // show the image // wait for a key // release the image -------------------------------------------------------------------------------- [编辑](4) 关闭窗口: case CV_EVENT_LBUTTONUP: event: CV_EVENT_LBUTTONDOWN, CV_EVENT_RBUTTONDOWN, CV_EVENT_MBUTTONDOWN, flags: CV_EVENT_FLAG_CTRLKEY, CV_EVENT_FLAG_SHIFTKEY, CV_EVENT_FLAG_ALTKEY, 注册该事件处理程序: switch(key){ -------------------------------------------------------------------------------- [编辑]1、图像数据结构 CvScalar s = cvScalar(double val0, double val1=0, double val2=0, double val3=0); [编辑]3、其它结构类型 -------------------------------------------------------------------------------- channels: 像素通道数. Can be 1, 2, 3 or 4. // Allocate a 1-channel byte image // Allocate a 3-channel float image [编辑](5) 设置/获取感兴趣通道COI: [编辑]2、图像读写 OpenCV默认将读入的图像强制转换为一幅三通道彩色图像. 不过可以按以下方法修改读入方式: img=cvLoadImage(fileName,flag); [编辑](2) 保存图像: [编辑]3、访问图像像素 typedef struct{ typedef struct{ typedef Image<RgbPixel> RgbImage; [编辑](2) 彩色图像->灰度图像: // Using a direct conversion: e.g.: CV_BGR2GRAY, CV_BGR2HSV, CV_BGR2Lab [编辑]5、绘图指令 cvPolyLine(img,curveArr,nCurvePts,nCurves,isCurveClosed,cvScalar(0,255,255),lineWidth); void cvPolyLine( CvArr* img, CvPoint** pts, int* npts, int contours, int is_closed, cvFillPoly用于一个单独被多边形轮廓所限定的区域内进行填充。函数可以填充复杂的区域,例如,有漏洞的区域和有交叉点的区域等等。 cvPutText (img,"My comment",cvPoint(200,400), &font, cvScalar(255,255,0));
CvMat* M = cvCreateMat(4,4,CV_32FC1); //等价于: CvMat Va=cvMat(3, 1, CV_64FC1, va); double res=cvDotProduct(&Va,&Vb); // 向量点乘: Va . Vb -> res [编辑](4) 单一矩阵的运算: CvMat* A = cvCreateMat(3,3,CV_32FC1);
[编辑](5) 释放视频流捕捉器: [编辑]2、获取/设置视频流信息 [编辑](2) 获取帧图信息: [编辑](3) 设置从视频文件抓取的第一帧画面的位置: [编辑]3、保存视频文件 [编辑](2) 保持视频文件: cvShowImage("mainWin", img); [编辑](3) 释放视频编写器: 发表于 @ 2010年06月23日 01:04:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:讲解RGB、CNYK、LAB等多种种颜色通道区别原理 | 新一篇:基于Contour的 motion detection
![]() |
请用Ctrl+C复制后贴给好友。
显示评论签名
取消批量删除批量删除