opencv
文章平均质量分 59
CHAOS万有引力
这个作者很懒,什么都没留下…
展开
-
cvFitEllipse
函数 cvFitEllipse 对给定的一组二维点集作椭圆的最佳拟合(最小二乘意义上的)。返回的结构与 cvEllipse 中的意义类似,除了 size 表示椭圆轴的整个长度,而不是一半长度。void cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle, double start_原创 2012-05-04 17:40:47 · 11204 阅读 · 4 评论 -
找圆
霍夫圆变换的函数为:HoughCircles利用 Hough 变换在灰度图像中找圆CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, double dp, double min_dist, doub转载 2012-03-26 15:18:13 · 1502 阅读 · 0 评论 -
opencv 椭圆拟合
#include "cv.h"#include "highgui.h"int slider_pos=70;//阈值IplImage *image02 =0,*image03 = 0,*image04 = 0;void process_image(int h);int main(int argc ,char **argv){ const char *fi转载 2012-03-25 20:56:43 · 8531 阅读 · 6 评论 -
opencv编译
下面说说OPENCV在linux系统下的安装编译1. 首先获取ffmpeg,不装这个OpenCV打不开很多视频文件格式。很多人找不到怎么下载,其实之前ffmpeg可以通过cvs下载,不过最近他已经换成了更加强大的svn如何使用SVN我这里不再介绍,网上还有大量的安装和使用的文章可以借鉴,这里简单罗列几个SVN辅助的软件:SubVersion,从 http://subversion.转载 2012-03-08 17:06:41 · 2360 阅读 · 0 评论 -
怎么访问图像像素
(坐标是从0开始的,并且是相对图像原点的位置。图像原点或者是左上角 (img->origin=IPL_ORIGIN_TL) 或者是左下角 (img->origin=IPL_ORIGIN_BL) )假设有 8-bit 1-通道的图像 I (IplImage* img): I(x,y) ~ ((uchar*)(img->imageData + img->widthStep*y))[x]转载 2012-03-25 16:41:00 · 826 阅读 · 0 评论 -
OPENCV中cvFindContours函数说明
函数cvFindContours从二值图像中检索轮廓,并返回检测到的轮廓的个数。first_contour的值由函数填充返回,它的值将为第一个外轮廓的指针,当没有轮廓被检测到时为NULL。其它轮廓可以使用h_next和v_next连接,从first_contour到达。int cvFindContours( CvArr* image, CvMemStorage* storage, CvSe转载 2012-05-04 16:30:26 · 1040 阅读 · 0 评论 -
Ipllmage
IplImage结构 由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage结构具体定义如下:typedef struct _IplImage {转载 2012-03-13 20:51:38 · 634 阅读 · 0 评论 -
圆心坐标的提取
用OpenCV的话,这样的活儿也就那么两三行代码,而且灵活可靠。但是,玩图像处理只懂玩成这样就悲哀了,就如同游戏引擎之于计算机图形学,太依赖图像库是不利于自己的成长和知识的提升的。 圆心提取的本质是从一张含有圆形/椭圆标志物的图片(见下图1,现实图片经各种处理到达这种圆与背景分明的样态)中,选择一定坐标系,提取出各个标志圆的圆心在这个坐标系中的坐标。 因此这个坐标系转载 2012-03-26 16:14:42 · 4014 阅读 · 1 评论 -
OPencv中的cvCloneImage、cvCopyImage和cvCloneMat、cvCopyMat的误区
最近一直在用opencv编写算法程序,但是cvCloneImage、cvCopyImage和cvCloneMat、cvCopyMat这几个函数让我痛苦了好一阵子,程序代码没有任何问题,但是就是得不到结果,在子函数中返回值根本不是我想要的,由于代码挺庞大的,一直没找到问题出在哪里,于是设置一个个断点,通过步步调试,终于发现问题出在了cvCloneImage、cvCopyImage和cvCloneMa转载 2012-03-25 20:44:13 · 1424 阅读 · 0 评论 -
CvMat
综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type); type: 矩阵元素类型. 格式为CV_(S|U|F)C. 例如: CV转载 2012-03-13 20:41:31 · 561 阅读 · 0 评论 -
cvCvtColor 颜色空间转换函数
cvCvtColor(...),是Opencv里的颜色空间转换函数,可以实现rgb颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。 参数CV_BGR2GRAY是RGB到gray, 参数CV_GRAY2BGR是gray到RGB. cvCvtColor处理结果是彩色的,则转灰色就是了: void cvCvtColor( const CvArr* src, CvA转载 2012-03-14 12:49:27 · 8003 阅读 · 1 评论 -
FindCornerSubPix
FindCornerSubPix精确角点位置void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners, int count, CvSize win, CvSize zero_zone, CvTermCriteria转载 2012-05-09 21:40:27 · 1957 阅读 · 0 评论 -
CvMemStorage *storage=cvCreateMemStorage(0);
用来创建一个内存存储器,来统一管理各种动态对象的内存,比如说序列,这个函数返回一个新创建的内存存储器指针。里面有个参数block_size对应内存器中每个内存块的大小,为0时内存块默认大小为64k(没设过大小,一直用的是默认0)。打个比方我们用opencv提取轮廓的时候,就要申请一块内存来存储找到的轮廓序列,所以你可以看到用轮廓函数的时候前面都有这么一条语句。你调试程序的时候可以设个断点到你可以看转载 2012-05-04 10:34:53 · 4803 阅读 · 0 评论 -
cvZero将数组清空为零,否则很可能是随机数
cvZero将数组清空为零,否则很可能是随机数转载 2012-05-04 16:41:56 · 843 阅读 · 0 评论 -
CV_MAT_ELEM
CV_MAT_ELEM opencv中用来访问矩阵每个元素的宏,这个宏只对单通道矩阵有效,多通道会报错 CV_MAT_ELEM( matrix, elemtype, row, col ) 参数 matrix:要访问的矩阵 elemtype:矩阵元素的类型 row:所要访问元素的行数 col:所要访问元素的列数 例如对 32-bit 浮点数的实数矩阵: M(i,j) ~ CV_M转载 2012-03-15 20:50:24 · 5243 阅读 · 1 评论 -
cvThreshold对单通道数组元素进行固定阈值操作
cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。(cvCmpS 也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大象素值的图像点。本函数支持的对图像取阈值的方法由 threshold_type 确定。 形式:void cvThreshold( cons转载 2012-05-04 16:10:06 · 1351 阅读 · 0 评论 -
cvCreateMemStorage函数
cvCreateMemStorage函数: 调用该函数时,其首先为结构体CvMemStorage分配了空间,紧接着调用了函数 icvInitMemStorage对该空间进行了初始化。 源码如下:CV_IMPL CvMemStorage*cvCreateMemStorage( int block_size ){ CvMemStorage *storage =转载 2012-05-04 10:31:52 · 11079 阅读 · 0 评论 -
轮廓检测中的一些函数整理
使用OpenCV也有一段时间了,中间遇到了不少问题。一般都是到网络上找答案或者自己试验,现在把这些经验好好整理下,方便自己查找也方便同行参考。最新更新日期:2009.09.26 一、轮廓(Contour)1.cvDrawContours()可以填充轮廓内部。 cvDrawContours(gray, contour,cvScalar(255,255,255,0),cvScal转载 2012-05-04 10:16:42 · 1476 阅读 · 0 评论 -
数据结构操作与运算-CvRect,CvBox2D数据结构
数据结构操作与运算-CvRect,CvBox2D数据结构这两个数据结构都是OpenCV,ROI专用的数据结构,ROI,全名的意思就是感兴趣的区域(Region Of Interesting),对于图像来讲,总是有一些物体或是重要的图像是我们必须要做研究,追踪或分析的,物体追踪在图像处理也是很大的一们领域,凡是人脸追踪,汽车追踪,鸟类追踪,或是图像检索都是可以利用ROI的数据结构做例子的,而研究转载 2012-05-04 10:12:51 · 8037 阅读 · 2 评论 -
opencv数据类型
1. CvPointtypedef struct CvPoint{ int x; int y;}CvPoint;CvPoint用来描述图像中的像素点。2. CvSizetypedef struct{ int width; int height;}CvSize;CvSize用来描述图像的尺寸。转载 2012-05-04 10:09:23 · 772 阅读 · 0 评论 -
CvSeq动态结构序列
动态结构序列CvSeq是所有OpenCv动态数据结构的基础。有两种类型的序列:稠密序列,稀疏序列:(1) 稠密序列都派生自CvSeq,他们用来代表可扩展的一维数组 — 向量、栈、队列和双端队列。数据间不存在空隙(连续存储)。如果元素元素从序列中间被删除或插入新的元素到序列,那么此元素后边的相关元素全部被移动。(2)稀疏序列派生自CvSet,CvSet也是基于CvSeq的,他们都是由节点所组原创 2012-03-26 14:56:43 · 3318 阅读 · 0 评论 -
cvCreateTrackbar
cvCreateTrackbar 该函数为开放计算机视觉(OpenCV)库库函数,创建trackbar并将它添加到指定的窗口。 定义: CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) ); int cvCreateTrackbar( const char*trackbar_name, const char*转载 2012-03-25 21:10:03 · 1630 阅读 · 0 评论 -
openCV彩色图像转换为灰度图像
#include "stdafx.h"#include "highgui.h"#include #include int _tmain(int argc, _TCHAR* argv[]){const char* imagename = "lena.jpg";IplImage * img = cvLoadImage(imagename); // Matlab风格的 cvL转载 2012-03-13 21:53:18 · 2248 阅读 · 0 评论 -
CvDrawContours绘制轮廓
DrawContours在图像中绘制外部和内部的轮廓。void cvDrawContours( CvArr *img, CvSeq* contour, CvScalar external_color, CvScalar hole_color, int max_level, int thickness=1,转载 2012-05-04 17:48:35 · 20203 阅读 · 0 评论 -
CvMemStorage动态内存存储及操作函数
CvMemStorage1、动态内存存储及操作函数CvMemStoragetypedef struct CvMemStorage{struct CvMemBlock* bottom;struct CvMemBlock* top;struct CvMemStorage* parent;int block_size;int free_space;} CvMemS转载 2012-03-25 21:50:38 · 10550 阅读 · 4 评论 -
cvFindCornerSubPix亚像素角点寻找函数
在摄像机标定时也需要用到亚像素角点寻找函数。函数 cvFindCornerSubPix 通过迭代来发现具有子象素精度的角点位置,或放射鞍点(radial saddle points)。 原型如下:void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners, int转载 2012-03-14 13:24:32 · 5883 阅读 · 1 评论 -
InitUndistortMap矫正函数
InitUndistortMap计算形变和非形变图像的对应(map)void cvInitUndistortMap( const CvMat* intrinsic_matrix, const CvMat* distortion_coeffs, CvArr* mapx, CvArr* mapy转载 2012-05-09 09:59:57 · 3930 阅读 · 1 评论