随笔分类 -  opencv学习

OpenCV读写avi、mpeg文件
摘要:问题:为什么我的电脑支持AVI或者能够播出AVI,但为什么使用cvCreateFileCapture函数总返回NULL呢?答案:尽管是AVI文件,但也可能使用了某种codec,例如:MJPEG Decompressor。 需要把它转换OpenCV支持的AVI文件. OpenCV支持的AVI如下:ContainerFourCCNameDescriptionAVI'DIB 'RGB(A)Uncompressed RGB, 24 or 32 bitAVI'I420'RAW I420Uncompressed YUV, 4:2:0 chroma subsampledAVI 阅读全文
posted @ 2013-03-21 23:36 知识天地 阅读(2670) 评论(0) 推荐(0) 编辑
Camera Calibration and 3D Reconstruction
摘要:The functions in this section use the so-called pinhole camera model. That is, a scene view is formed by projecting 3D points into the image plane using a perspective transformation.orWhereare the coordinates of a 3D point in the world coordinate space,are the coordinates of the projection point in 阅读全文
posted @ 2012-03-31 09:07 知识天地 阅读(7995) 评论(0) 推荐(0) 编辑
摄像头标定
摘要:OPENCV没有提供完整的示例,自己整理了一下,贴出来记录。步骤如下:首先自制一张标定图片,用A4纸打印出来,设定距离,再设定标定棋盘的格子数目,如8×6,以下是我做的图片8×8然后利用cvFindChessboardCorners找到棋盘在摄像头中的2D位置,这里cvFindChessboardCorners不太稳定,有时不能工作,也许需要图像增强处理。计算实际的距离,应该是3D的距离。我设定为21.6毫米,既在A4纸上为两厘米。再用cvCalibrateCamera2计算内参,最后用cvUndistort2纠正图像的变形。结果如下:代码下载代码: <c>#i 阅读全文
posted @ 2012-03-31 08:56 知识天地 阅读(5226) 评论(0) 推荐(0) 编辑
摄像机标定(Camera calibration)笔记
摘要:一 作用建立3D到2D的映射关系,一旦标定后,对于一个摄像机内部参数K(光心焦距变形参数等,简化的情况是只有f错切=0,变比=1,光心位置简单假设为图像中心),参数已知,那么根据2D投影,就可以估计出R t;空间3D点所在的线就确定了,根据多视图(多视图可以是运动图像)可以重建3D。如果场景已知,则可以把场景中的虚拟物体投影到2D图像平面(DLT,只要知道M即可)。或者根据世界坐标与摄像机坐标的相对关系,R,T,直接在Wc位置渲染3D图形,这是AR的应用。因为是离线的,所以可以用手工定位点的方法。二 方法1 Direct linear transformation (DLT) method2 阅读全文
posted @ 2012-03-31 08:50 知识天地 阅读(14898) 评论(0) 推荐(0) 编辑
OpenCV背景去除的几种方法
摘要:1、肤色侦测法肤色提取是基于人机互动方面常见的方法。因为肤色是人体的一大特征,它可以迅速从复杂的背景下分离出自己的特征区域。一下介绍两种常见的肤色提取:(1)HSV空间的肤色提取 HSV色彩空间是一个圆锥形的模型,具体如右图所示:色相(H)是色彩的基本属性,就是平常说的颜色名称,例如红色、黄色等,依照右图的标准色轮上的位置,取360度得数值。(也有0~100%的方法确定) 饱和度(S)是色彩的纯度,越高色彩越纯,低则变灰。取值为0~100%。明度(V)也叫亮度,取值0~100。 根据肤色在HSV三个分量上的值,就可以简单的侦测出一张图像上肤色的部分。一下是肤色侦测函数的源代码:[c-sharp 阅读全文
posted @ 2012-03-29 18:59 知识天地 阅读(24787) 评论(0) 推荐(0) 编辑
OpenCV使用小札记-Cvmat与IplImage的相互转换
摘要:1、IplImage转Cvmat IplImage* src = cvLoadImage("rice.bmp",0); CvMat* mat=cvCreateMat(src->height,src->width,CV_32SC1); cvConvert(src,mat);或者:Cvmat matObj;* mat=cvGetmat(src,&matObj);2、Cvmat转IplImage IplImage* pImg = cvCreateImage(cvGetSize(mat),8,1); cvGetImage(matI,pImg); cvSaveIm 阅读全文
posted @ 2012-03-08 17:15 知识天地 阅读(447) 评论(0) 推荐(0) 编辑
Opencv 输出文字,实现简单水印
摘要:设置好opencv环境1,包含头文件 #include "CvxText.h" #include "cv.h" #include "highgui.h" #include "cxcore.h"2,工程->设置-> 连接-> "对象/库模块" 添加 cxcore.lib cv.lib cvaux.lib highgui.lib3,将C:/WINDOWS/Fonts/中的simhei.ttf,simsun.ttf等要用的字库文件拷贝到自己工程的运行文件目录中(开始时不知道有这步,运 阅读全文
posted @ 2012-03-08 15:11 知识天地 阅读(6776) 评论(0) 推荐(0) 编辑
Opencv 图像叠加 添加水印
摘要:C++:voidMat::copyTo(OutputArraym)constC++:voidMat::copyTo(OutputArraym, InputArraymask)const这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上我们可以在大照片上设置一个和小照片一样大的感兴趣区域不使用掩码的时候,我们载入一张png,和一张jpg#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>int main(){ 阅读全文
posted @ 2012-03-08 15:08 知识天地 阅读(17142) 评论(2) 推荐(0) 编辑
opencv face detect demo (转载)
摘要:headlinesarticlesabout+contactUsing OpenCV on iPhonePosted by Yoshimasa Niwa on 03/14, 2009OpenCV is a library of computer vision developed by Intel, we can easily detect faces using this library for example. I’d note how to use it with iOS SDK, including the building scripts and a demo application. 阅读全文
posted @ 2012-03-04 16:25 知识天地 阅读(5315) 评论(0) 推荐(0) 编辑
opencv中遍历图片数据的两种方法
摘要:方法一:IplImage *pImg = ...;int nWidth = pImg->width;int nHeight = pImg->height;int nChannels = pImg->nChannels;int nStep = pImg->widthStep;for (int i=0; i<nHeight; i++)for(int j=0; j<nWidth; j++)for (int k=0; k<nChannels; k++){pImg->imageData[i*nStep + j*nChannels + k] = 255 - 阅读全文
posted @ 2012-02-21 19:22 知识天地 阅读(1950) 评论(0) 推荐(0) 编辑
OpenCV函数学习之cvLUT
摘要:何为LUT,就是指显示查找表(Look-Up-Table),LUT(Look-Up Table)实际上就是一张像素灰度值的映射表,它将实际采样到的像素灰度值经过一定的变换如阈值、反转、二值化、对比度调整、线性变换等,变成了另外一个与之对应的灰度值,这样可以起到突出图像的有用信息,增强图像的光对比度的作用。我在以前写的python灰度变换就是和这个是一个意思我们来看看实际运用效果:#include <cv.h>#include <highgui.h>usingnamespace std;int main(int argc, char** argv) { IplImage 阅读全文
posted @ 2012-02-21 15:11 知识天地 阅读(608) 评论(0) 推荐(0) 编辑
一种简单的色彩平衡算法的OPENCV实现
摘要:很久之前看过一篇关于色彩平衡文章,在该文章中介绍了一种非常简单高效的色彩平衡算法。下图是算法的演示效果(左边为处理后的图像,右边为处理前的图像)。从图中可以看出算法有效的改善的图像的色彩,使得色彩更加的真实。下面是实现代码#include "stdafx.h" #include "cv.h" #include "cxcore.h" #include "highgui.h" #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxco 阅读全文
posted @ 2012-02-20 16:22 知识天地 阅读(3504) 评论(1) 推荐(0) 编辑
CvvImage类以及在MFC中显示IplImage图像的方法
摘要:平常使用Open CV时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC等Windows环境中加载显示Open CV中的IplImage图像;使用Open CVhighgui.h 中定义的CvvImage类,可以很好的实现Open CV和Windows MFC显示接口;先介绍一下CvvImage类:由于CvvImage是在 highgui.h 头文件中声明的,因此如果您的程序中需要使用,则必须在开头包含此头文件#include <highgui.h>CvvImage对应CImage宏:#define CImage CvvImage注意事项:由于CImage太常见, 很容易 阅读全文
posted @ 2012-02-13 15:13 知识天地 阅读(5554) 评论(0) 推荐(0) 编辑
ilpimage to bitmap
摘要:Iplimage To Bitmap (銀展提供)if (ipl->depth == 8){if (ipl->nChannels == 3){return gcnew System::Drawing::Bitmap(ipl->width , ipl->height , ipl->widthStep , System::Drawing::Imaging::PixelFormat::Format24bppRgb ,(System::IntPtr)ipl->imageData);}else{return gcnew System::Drawing::Bitmap( 阅读全文
posted @ 2012-02-13 14:57 知识天地 阅读(301) 评论(0) 推荐(0) 编辑
国外牛人的opencv学习博客
摘要:http://www.shervinemami.co.cc/openCV.html国外牛人的opencv学习博客,有人脸识别源码 阅读全文
posted @ 2012-02-13 14:10 知识天地 阅读(670) 评论(0) 推荐(0) 编辑
在Qt的QGraphicsView中显示OpenCV的iplimage图片
摘要:IplImage2QImage()函数见:iplImage to QImage//显示图片scene=newQGraphicsScene(this);//在构造函数里处理voidALPR_demo::disp_iplimage(IplImage*iplimage,QGraphicsView*gv){//转换QImageqImage=opencv_tools.IplImage2QImage(iplimage);if(!qImage.isNull()){//调整大小scene->clear();scene->addPixmap(QPixmap::fromImage(qImage));g 阅读全文
posted @ 2012-02-13 09:40 知识天地 阅读(2914) 评论(0) 推荐(0) 编辑