opencv摄像头使用

在使用OpenCV从摄像头读取视频时遇到问题,通过cvcamSetProperty()设置回调函数callback时,出现参数格式错误。在Dev-C++环境下,由于g++编译器不允许函数指针直接转换为void*,而在Visual C++环境下则可以。解决方法是在调用时进行强制类型转换。示例代码展示了如何初始化、启动摄像头,设置回调函数进行图像处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用opencv从摄像头中读文件时,用其提供的cvcamSetProperty()函数设置回调函数(cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback)),在dev-c++下面出现了参数格式不对的问题。这里按照函数的说明,定义callback函数为void callback(IplImage * img);结果dev-c++在编译时提示invalid conversion from void(*)(IplImage *) to void *。在vc环境下编译却很正常。从提示里面可以看出,是因为类型转换的问题。dev-c++里面用g++编译程序是,其时不能将函数指针转化为void型的指针的,而在vc里面则可以自动转化,所以,结局问题的方法就是在第三个参数上家强制的类型转换,cvcamSetProperty(0, CVCAM_PROP_CALLBACK, (void *)&callback);

具体的使用摄像头的代码如下:

#include <cv.h>
#include <highgui.h>
#include <cvcam.h>
#include <iostream>
using namespace std;

 

void callback(IplImage* pImg);

int main( int argc, char** argv )


        int ncams=cvcamGetCamerasCount();
       
        assert(ncams);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值