随笔 - 1  文章 - 1218  评论 - 155  阅读 - 516万

文章分类 -  OpenCV

1 2 下一页
OpenCV相关
图像旋转、膨胀、腐蚀的实现
摘要:1.旋转 1 //旋转 2 int size = sqrt(p_img->width/2* p_img->width/2+ p_img->height/2* p_img->height/2); 3 IplImage* dst = cvCreateImage(cvSize(size*2, size*2), IPL_DEPTH_8U, 3); 4 RgbImage spin(dst); 5 6 int angle =290; //旋转角度 7 for(int i =0; i < p_img->height; i++) { 8... 阅读全文
posted @ 2012-12-12 13:29 carekee 阅读(556) 评论(0) 推荐(0) 编辑
通过C++ wrapper实现访问图像像素
摘要:template<class T> class Image{ private: IlpImage *imgp; public: Image(IplImage* img = 0) { imgp = img; } inline T* operator[](const int rowIndx) { return( (T*)(imgp ->imageData + rowIndx * imgp ->widthStep)); }};typedef struct { unsigned char b, g, r;}RgbPixel;typedef struct { float b, g 阅读全文
posted @ 2012-12-12 13:28 carekee 阅读(535) 评论(0) 推荐(0) 编辑
OpenCV下的图片旋转(转)
摘要:相关版本: OpenCV 2.1#include "cv.h"#include "highgui.h"#include "math.h"// clockwise 为true则顺时针旋转,否则为逆时针旋转IplImage* rotateImage(IplImage* src, int angle, bool clockwise){ angle = abs(angle) % 180; if (angle > 90) { angle = 90 - (angle % 90); } IplImage* dst = NULL; int wi 阅读全文
posted @ 2012-05-10 13:08 carekee 阅读(3822) 评论(0) 推荐(0) 编辑
OpenCV下的图片缩放(转)
摘要:相关版本: OpenCV 2.1#include <cv.h>#include <highgui.h>#include <iostream>using namespace std;int main(int argc, char** argv){ IplImage *src = NULL; IplImage *dst = NULL; CvSize dstSize; double times = 2.0; src = cvLoadImage("test.jpg"); if (src == NULL) { cout << " 阅读全文
posted @ 2012-05-10 13:08 carekee 阅读(509) 评论(0) 推荐(0) 编辑
HBITMAP to IplImage(转)
摘要:HBITMAP to IplImage - - IplImage* hBitmap2Ipl(HBITMAP hBmp){BITMAP bmp;::GetObject(hBmp,sizeof(BITMAP),&bmp);int nChannels = bmp.bmBitsPixel == 1 ? 1 : bmp.bmBitsPixel/8 ;int depth = bmp.bmBitsPixel == 1 ? IPL_DEPTH_1U : IPL_DEPTH_8U;IplImage* img = cvCreateImageHeader( cvSize(bmp.bmWidth, bmp.b 阅读全文
posted @ 2012-05-10 11:06 carekee 阅读(1599) 评论(0) 推荐(0) 编辑
OpenCV转CBitmap
摘要:BOOL IplImage2Bmp(IplImage *pImage,CBitmap *bitmap){if( pImage && pImage->depth == IPL_DEPTH_8U ) { uchar buffer[sizeof(BITMAPINFOHEADER) + 1024]; BITMAPINFO* bmi = (BITMAPINFO*)buffer; int bmp_w = pImage->width, bmp_h = pImage->height;int width=bmp_w;int height=bmp_h;int bpp=pImage 阅读全文
posted @ 2012-03-23 11:35 carekee 阅读(987) 评论(0) 推荐(0) 编辑
用Opencv保存视频文件avi(转)
摘要:初始化: CvVideoWriter *writer = 0; int isColor = 1; int fps = 25; // or 30 int frameW = 640; // 744 for firewire cameras int frameH = 480; // 480 for firewire cameras writer=cvCreateVideoWriter("out.avi",CV_FOURCC(’P’,’I’,’M’,’1’), fps,cvSize(frameW,frameH),isColor); 其他代码对应的编码器: CV_FOURCC(’P’ 阅读全文
posted @ 2012-02-27 13:08 carekee 阅读(5233) 评论(0) 推荐(0) 编辑
在OpenCV中自适应确定canny算法的分割门限(转载)
摘要:在OpenCV中用canny算子进行边缘检测速度很快,不过有点不爽的就是高低阈值需要输入。在matlab中,如果不指定阈值的话,由函数自适应确定,因此仿照matlab中的做法,对canny函数进行了修改,以便当用户没有指定高低阈值时,由函数自适应确定阈值。 我在OpenCv原码库中增加了一个函数,用于确定高低阈值。// 仿照matlab,自适应求高低两个门限CV_IMPL void AdaptiveFindThreshold(CvMat *dx, CvMat *dy, double *low, double *high){CvSize size;IplImage *imge=0;int i,. 阅读全文
posted @ 2012-02-13 15:33 carekee 阅读(601) 评论(0) 推荐(0) 编辑
颜色提取,图像分割 rgb hsv(转)
摘要:// Note:颜色分割:提取特定颜色/////////////////////////////////////////////////////////////////////////////void CColorSegDlg::ColorSegByHSV(IplImage* img)// 提取特定颜色{//====================== 变量定义====================//int x,y; //循环//====================== 输入彩色图像信息====================//IplImage* pSrc = NULL;pSrc = 阅读全文
posted @ 2011-12-07 21:35 carekee 阅读(3094) 评论(0) 推荐(1) 编辑
opencv 识别RGB颜色代码(转)
摘要://检测RGB区域代码#include "cv.h"#include "highgui.h"#include <math.h>#include <string.h>#include <iostream> IplImage* img =NULL;IplImage* img0 =NULL;IplImage* pic = NULL;CvMemStorage* storage =NULL;const char * wndname = "RGB检测 Demo";char* names[] = { " 阅读全文
posted @ 2011-12-07 21:33 carekee 阅读(3594) 评论(0) 推荐(1) 编辑
opencv识别圆的代码(转)
摘要://圆形检测代码demo//载入数张包含各种形状的图片,检测出其中的圆形 #include "cv.h"#include "highgui.h"#include <math.h>#include <string.h>#include <iostream>int thresh = 50;IplImage* img =NULL;IplImage* img0 = NULL;IplImage * pImg8u=NULL;CvMemStorage* storage =NULL;const char * wndname = &qu 阅读全文
posted @ 2011-12-07 21:32 carekee 阅读(8717) 评论(0) 推荐(0) 编辑
opencv识别正方形(矩形)代码(转)
摘要://正方形检测源码//载入数张包含各种形状的图片,检测出其中的正方形 #include "cv.h"#include "highgui.h"#include <stdio.h>#include <math.h>#include <string.h>#include <iostream>int thresh = 50;IplImage* img =NULL;IplImage* img0 = NULL;CvMemStorage* storage =NULL;const char * wndname = &quo 阅读全文
posted @ 2011-12-07 21:32 carekee 阅读(9224) 评论(0) 推荐(0) 编辑
opencv识别三角形代码(转)
摘要://三角形检测代码//载入数张包含各种形状的图片,检测出其中的三角形 #include "cv.h"#include "highgui.h"#include <stdio.h>#include <math.h>#include <string.h>#include <iostream>int thresh = 50;IplImage* img =NULL;IplImage* img0 = NULL;CvMemStorage* storage =NULL;const char * wndname = &quo 阅读全文
posted @ 2011-12-07 21:31 carekee 阅读(4938) 评论(1) 推荐(1) 编辑
VS2010下配置 OpenCV2.2
摘要:下载OpenCV2.2 安装我的安装路径是D:\Program Files\OpenCV2.2打开VS2010新建项目HelloOpencv在中 单击打开打开分别在包含目录加入D:\Program Files\OpenCV2.2\includeD:\Program Files\OpenCV2.2\include\opencv在库目录加入D:\Program Files\OpenCV2.2\lib单击应用选择 连接器-->输入在附加依赖项中 增加所要包含的库就行了opencv_core220d.libopencv_highgui220d.libopencv_video220d.libope 阅读全文
posted @ 2011-11-20 04:39 carekee 阅读(253) 评论(0) 推荐(0) 编辑
OpenCV内存泄露的检测
摘要:上文介绍了C/C++编码中内存泄露的问题,不过经过本人测试,好像对用opencv工具包进行编码中的内存泄露并不起作用。CrtSetDbgFlag函数应该针对new/malloc这种方式分配内存的,而opencv的很多函数把内存分配封装了,直接返回一个指针(e.g. cvCreateImage返回IplImage指针),因而并不能检测出opencv编码的内存泄露.(这一段不知道说得对不对,还有待查证:0) ).针对这个问题,网上有一个比较好的解决方法,就直接来过来用了。它是一个针对opencv的内存泄露检测的类,实现如下: //头文件#ifndef OPENCV_MEM_TRACKER_H#de 阅读全文
posted @ 2011-09-07 15:48 carekee 阅读(2710) 评论(0) 推荐(2) 编辑
cvcopy实现不规则图片提取
摘要:程序要求:请自备同大小同的图片两张,一张为原图srcImg,为三通道图片,另一张为mask图,为单通道图片。下面是Opencv官方手册的对cvCopy的说明:Copy拷贝一个数组给另一个数组 void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );src 输入数组。 dst 输出数组。 mask 操作掩码是8比特单通道的数组,它指定了输出数组中被改变的元素。 函数cvCopy从输入数组中复制选定的成分到输出数组: 如果mask(I)!=0,则dst(I)=src(I)。 如果输入输出数组中的一个是IplImage类 阅读全文
posted @ 2011-09-07 11:10 carekee 阅读(746) 评论(0) 推荐(0) 编辑
DirectShow OpenCV GDI+ 图形显示格式转换
摘要:DirectShow OpenCV GDI+ 图形显示格式转换GDI+在显示图像方面要比GDI使用起来更方便OpenCV图像处理方面无论深度和与VC的兼容性方面都是很好的,DirectShow要视频采集方面目前应该说是最优秀的但OpenCV的IplImage格式与GDI+所需要的BITMAPINFO稍有不同同时OpenCV集成的视频捕捉部分采用的VFW,效率上远不如DirectShow三者之间的图像转换工作我采用的如下方法,经测试效率还可以测试架构为1.DirectShow采集一帧图像到源内存buf,把此buf转为OpenCV的彩色IplImage格式2.用OpenCV的方法转成灰度图得到一个 阅读全文
posted @ 2011-09-06 16:54 carekee 阅读(1619) 评论(0) 推荐(0) 编辑
利用opencv合并图像
摘要:如果要合并两张或者多张图片,我们可以采用这样的思路,设置ROI。以合并两张大小320x240的图像为例:A 需要创建一张640x240的图像image3。B 把image3的ROI设置为Rect(0,0,320,240),刚好可以放一张小图像。C 然后把小图像image1 COPY到image3中。D 重新设置ROI,针对第二张小图像image2重复B和C的操作。IplImage* image3 = cvCreateImage( cvSize(image1->width+image2->width,MAX(image1->height,image2->height)), 阅读全文
posted @ 2011-09-06 16:54 carekee 阅读(2692) 评论(0) 推荐(0) 编辑
Opencv在MFC中不能结束进程
摘要:VC中通过MFC调用opencv的话,启动程序,然后关闭,这个时候并不能结束进程,比如你的程序是Image.exe,关闭程序之后在进程管理器中仍然有image.exe。解决办法:打开工程:在highgui class中找到HAVE_VIDEOINPUT #define HAVE_VIDEOINPUT 1将这句注释掉,重新编译OpenCv的Highgui工程 重新生成Highgui110d.dll然后进入安装目录,在bin下面会发现highgui110d.dll,将原来的highgui110.dll改名,然后将Highgui110d.dll改为Highgui110.dll,搞定。 阅读全文
posted @ 2011-01-31 15:37 carekee 阅读(569) 评论(0) 推荐(0) 编辑
手势识别方法综述(hand detect)(1)肤色
摘要:看了一天的论文,总结出手势识别的三种方法:1、通过肤色识别2、通过haar-like基3、通过HandUv说下各个优缺点1、通过肤色识别 设定人的肤色的范围,监测在这个范围内的 肤色InRange,然后画出给定的区域。 例子:#include "cv.h"#include "cxcore.h"#include "highgui.h"#include "math.h"#include iostream#include stdio.h#include string.h#include conio.h#include sstream#include time.husing n 阅读全文
posted @ 2011-01-31 15:36 carekee 阅读(3482) 评论(1) 推荐(1) 编辑

1 2 下一页
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示