77范文网 - 专业文章范例文档资料分享平台

图像处理经典算法及OpenCV程序

来源:网络收集 时间:2018-12-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于opencv的use摄像头视频采集程序 ........................................................................... 1 基于opencv的两个摄像头数据采集.................................................................................. 3 能激发你用代码做视频的冲动程序 ................................................................................... 6 图像反转(就是把黑的变白,白的变黑)........................................................................11 图像格式的转换 ............................................................................................................. 12 从摄像头或者AVI文件中得到视频流,对视频流进行边缘检测....................................... 13 采用Canny算子进行边缘检测........................................................................................ 15 角点检测........................................................................................................................ 18 图像的旋转加缩放(效果很拽,用地球做就像谷歌地球似的) ....................................... 21 Log-Polar极坐标变换 ..................................................................................................... 22 对图像进行形态学操作(图像的开闭,腐蚀和膨胀运算) .............................................. 24 用不同的核进行图像的二维滤波..................................................................................... 27 图像域的填充................................................................................................................. 30 寻找轮廓实现视频流的运动目标检测(超推荐一下) ..................................................... 35 采用金字塔方法进行图像分割 ........................................................................................ 40 图像的亮度变换 ............................................................................................................. 43 单通道图像的直方图 ...................................................................................................... 46 计算和显示彩色图像的二维色调-饱和度图像 .................................................................. 48 图像的直方图均匀化 ...................................................................................................... 50 用Hongh变换检测线段 .................................................................................................. 52 利用Hough变换检测圆(是圆不是椭圆) ...................................................................... 57 距离变换........................................................................................................................ 59 椭圆曲线拟合................................................................................................................. 64 由点集序列或数组创建凸外形 ........................................................................................ 68 Delaunay三角形和Voronoi划分的迭代式构造 ................................................................ 71 利用背景建模检测运动物体(推荐).............................................................................. 78 运动模板检测(摄像头) ............................................................................................... 81 显示如何利用Camshift算法进行彩色目标的跟踪............................................................ 86

基于opencv的use摄像头视频采集程序

准备工作:你得把opencv库装到电脑上,并把各种头文件,源文件,lib库都连到vc上,然后设置一下系统环境变量,这里这方面就不说了,好像我前面的文章有说过,不懂也可百度一下。

建立一个基于WIN32控制台的工程CameraUSB,在新建一个c++元文件,写代码: #include \#include \#include \#include \

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(\

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; iheight; 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 #include

#include #include \#include

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]={\char

*strright[4]={\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(\

CaptureWindow1=(HWND)cvGetWindowHandle(\ cvcamSetProperty(CameraNumber[0], CVCAM_PROP_ENABLE, CVCAMTRUE);

cvcamSetProperty(CameraNumber[0], CVCAM_PROP_RENDER, CVCAMTRUE);

cvcamSetProperty(CameraNumber[0], CVCAM_PROP_WINDOW, &CaptureWindow1);

// cvSetMouseCallback(\

cvNamedWindow(\

CaptureWindow2=(HWND)cvGetWindowHandle(\ cvcamSetProperty(CameraNumber[1], CVCAM_PROP_ENABLE, CVCAMTRUE);

cvcamSetProperty(CameraNumber[1], CVCAM_PROP_RENDER, CVCAMTRUE);

cvcamSetProperty(CameraNumber[1], CVCAM_PROP_WINDOW, &CaptureWindow2);

// cvSetMouseCallback(\

//让两个摄像头同步

cvcamSetProperty(CameraNumber[0],CVCAM_STEREO_CALLBACK,(void*)&StereoCallback);

//启动程序

cvcamInit(); cvcamStart();

cvSetMouseCallback(\cvSetMouseCallback(\ cvWaitKey(0);

cvcamStop(); free(CameraNumber); cvcamExit();

cvDestroyWindow(\ cvDestroyWindow(\}

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(\ // cvSaveImage(\ }

if(Event==CV_EVENT_RBUTTONDOWN) {

cvcamResume(); num++; } }

void onMouse2(int Event,int x,int y,int flags,void *param) {

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库图像处理经典算法及OpenCV程序在线全文阅读。

图像处理经典算法及OpenCV程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/336455.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: