没有合适的资源?快使用搜索试试~ 我知道了~
OpenCV例程汇总.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 139 浏览量
2023-01-25
16:30:31
上传
评论
收藏 1.97MB DOC 举报
温馨提示
试读
93页
OpenCV例程汇总.doc 可编辑 基于opencv的use摄像头视频采集程序 1 基于opencv的两个摄像头数据采集 3 能激发你用代码做视频的冲动程序 6 图像反转(就是把黑的变白,白的变黑) 11 图像格式的转换 12 从摄像头或者AVI文件中得到视频流,对视频流进行边缘检测 14 采用Canny算子进行边缘检测 15 角点检测 18 图像的旋转加缩放(效果很拽,用地球做就像谷歌地球似的) 21 Log-Polar极坐标变换 22 对图像进行形态学操作(图像的开闭,腐蚀和膨胀运算) 25 用不同的核进行图像的二维滤波 28 图像域的填充 31 寻找轮廓实现视频流的运动目标检测(超推荐一下) 35 采用金字塔方法进行图像分割 40 图像的亮度变换 43 单通道图像的直方图 46 计算和显示彩色图像的二维色调-饱和度图像 48 图像的直方图均匀化 51 用Hongh变换检测线段 53 利用Hough变换检测圆(是圆不是椭圆) 57 距离变换 59 椭圆曲线拟合 64 由点集序列或数组创建凸外形 68 Delaunay三角形和Voronoi划分的迭代式构造 71 利用背景建模检测
资源推荐
资源详情
资源评论
OpenCV 例程汇总
基于 opencv 的 use 摄像头视频采集程序.......................................................................................1
基于 opencv 的两个摄像头数据采集..............................................................................................3
能激发你用代码做视频的冲动程序................................................................................................6
图像反转(就是把黑的变白,白的变黑)..................................................................................11
图像格式的转换..............................................................................................................................12
从摄像头或者 AVI 文件中得到视频流,对视频流进行边缘检测 ............................................14
采用 Canny 算子进行边缘检测 .....................................................................................................15
角点检测..........................................................................................................................................18
图像的旋转加缩放(效果很拽,用地球做就像谷歌地球似的)..............................................21
Log-Polar 极坐标变换 ....................................................................................................................22
对图像进行形态学操作(图像的开闭,腐蚀和膨胀运算)......................................................25
用不同的核进行图像的二维滤波..................................................................................................28
图像域的填充..................................................................................................................................31
寻找轮廓实现视频流的运动目标检测(超推荐一下)..............................................................35
采用金字塔方法进行图像分割......................................................................................................40
图像的亮度变换..............................................................................................................................43
单通道图像的直方图......................................................................................................................46
计算和显示彩色图像的二维色调-饱和度图像 ............................................................................48
图像的直方图均匀化......................................................................................................................51
用 Hongh 变换检测线段.................................................................................................................53
利用 Hough 变换检测圆(是圆不是椭圆).................................................................................57
距离变换..........................................................................................................................................59
椭圆曲线拟合..................................................................................................................................64
由点集序列或数组创建凸外形......................................................................................................68
Delaunay 三角形和 Voronoi 划分的迭代式构造..........................................................................71
利用背景建模检测运动物体(推荐)..........................................................................................78
运动模板检测(摄像头)..............................................................................................................81
显示如何利用 Camshift 算法进行彩色目标的跟踪.....................................................................87
基于 opencv 的 use 摄像头视频采集程序
准备工作:你得把 opencv 库装到电脑上,并把各种头文件,源文件,lib 库都
连到 vc 上,然后设置一下系统环境变量,这里这方面就不说了,好像我前面的
文章有说过,不懂也可百度一下。
建立一个基于 WIN32 控制台的工程 CameraUSB,在新建一个 c++元文件,写代码:
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "highgui.h"
void callback(IplImage* image);
int main()
{
int ncams=cvcamGetCamerasCount( );//返回可以访问的摄像头数目
HWND MyWin;
// 设置系统属性
cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //选择第一个摄像头
//camera
cvcamSetProperty(0, CVCAM_PROP_RENDER, CVCAMTRUE); //We'll
render stream
// 在本例中
// 假设创建一个窗口,并且窗口的 ID 是在变量 MyWin 中定义
// MyWin 是窗口 HWND 的类型
MyWin=(HWND)cvGetWindowHandle("CameraUSB window");
cvcamSetProperty(0,CVCAM_PROP_WINDOW,&MyWin); // Selects a
window for
//video rendering
//回调函数将处理每一帧
cvcamSetProperty(0,CVCAM_PROP_CALLBACK,callback);
cvcamInit( );
cvcamStart( );
// 现在程序开始工作
cvWaitKey(0);
cvcamStop( );
cvcamExit( );
return 0;
}
// 在图像中画兰色水平线
void callback(IplImage* image)
{
IplImage* image1 = image;
int i,j;
assert (image);
for(i=0; i<image1->height; i+=10)
{
for(j=(image1->widthStep)*i;
j<(image1->widthStep)*(i+1);
j+=image1->nChannels)
{
image1->imageData[j] = (char)255;
image1->imageData[j+1] = 0;
image1->imageData[j+2] = 0;
}
}
}
嘿嘿,就这么简单就完事了。
不懂可留言问
基于 opencv 的两个摄像头数据采集
实现功能:同时采集两路 USB 摄像头数据,并显示,具有图片保存功能(点击左
键保存图片,并暂停视频;右键继续视频)。步骤就不说了,很简单,直接放代
码了:
#include <cvcam.h>
#include <cv.h>
#include <highgui.h>
#include "stdio.h"
#include <windows.h>
void StereoCallback(IplImage *frame1,IplImage *frame2);
void onMouse1(int Event,int x,int y,int flags,void *param);
void onMouse2(int Event,int x,int y,int flags,void *param);
IplImage *image1,*image2;
char *strleft[4]={"left1.bmp","left2.bmp","left3.bmp","left4.bmp"};
char
*strright[4]={"right1.bmp","right2.bmp","right3.bmp","right4.bmp"};
void main()
{
HWND CaptureWindow1=0; //不赋值也行
HWND CaptureWindow2=0;
//int ncams=cvcamGetCamerasCount(); //获取摄像头的个数,在这里可有可无
//用对话框的形式来选取摄像头
int *CameraNumber;
int nSelected = cvcamSelectCamera(&CameraNumber);
/* //灰色图像
image1=cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,1);
image2=cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,1);
*/
//彩色图像
image1=cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,3);
image2=cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,3);
//初始化两个摄像头
cvNamedWindow("cvcam1 Window",1);
CaptureWindow1=(HWND)cvGetWindowHandle("cvcam1 Window");
cvcamSetProperty(CameraNumber[0], CVCAM_PROP_ENABLE,
CVCAMTRUE);
cvcamSetProperty(CameraNumber[0], CVCAM_PROP_RENDER,
CVCAMTRUE);
cvcamSetProperty(CameraNumber[0], CVCAM_PROP_WINDOW,
&CaptureWindow1);
// cvSetMouseCallback("cvcam1 Window",onMouse1,0);
cvNamedWindow("cvcam2 Window",1);
CaptureWindow2=(HWND)cvGetWindowHandle("cvcam2 Window");
cvcamSetProperty(CameraNumber[1], CVCAM_PROP_ENABLE,
CVCAMTRUE);
cvcamSetProperty(CameraNumber[1], CVCAM_PROP_RENDER,
CVCAMTRUE);
cvcamSetProperty(CameraNumber[1], CVCAM_PROP_WINDOW,
&CaptureWindow2);
// cvSetMouseCallback("cvcam2 Window",onMouse2,0);
//让两个摄像头同步
cvcamSetProperty(CameraNumber[0],CVCAM_STEREO_CALLBACK,(void*)&S
tereoCallback);
//启动程序
cvcamInit();
cvcamStart();
cvSetMouseCallback("cvcam1 Window",onMouse1,0);
cvSetMouseCallback("cvcam2 Window",onMouse2,0);
cvWaitKey(0);
cvcamStop();
free(CameraNumber);
cvcamExit();
cvDestroyWindow("cvcam1 Window");
cvDestroyWindow("cvcam2 Window");
}
void StereoCallback(IplImage* frame1,IplImage *frame2)
{
/* //把图像转换成灰度图并保存到 image 中
cvCvtColor(frame1,image1,CV_RGB2GRAY);
cvCvtColor(frame2,image2,CV_RGB2GRAY);
*/
//拷贝图像到全局变量 image 中 该函数这样用存在问题
// cvCopy(frame1,image1);
// cvCopy(frame2,image2);
image1=cvCloneImage(frame1);
image2=cvCloneImage(frame2);
//对截取的图像翻转
cvFlip(image1,image1,0);
cvFlip(image2,image2,0);
}
void onMouse1(int Event,int x,int y,int flags,void *param)
{
static int num=0;
if(Event==CV_EVENT_LBUTTONDOWN)
{
if(num==4)num=0;//只是固定定义了保存 4 张图片,为了不让程序非法而
设置的复原
cvcamPause();
//图像保存
cvSaveImage(strleft[num],image1);
// cvSaveImage(strright[num],image2);
// cvSaveImage("left.bmp",image1);
// cvSaveImage("right.bmp",image2);
}
if(Event==CV_EVENT_RBUTTONDOWN)
{
cvcamResume();
num++;
剩余92页未读,继续阅读
资源评论
呆萌宝儿姐
- 粉丝: 9w+
- 资源: 154
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功