草庐IT

opencv-cuda

全部标签

c++ - 来自 2 个摄像头(用于立体视觉)的视频使用 OpenCV,但其中一个滞后

我正在尝试使用2个罗技C310网络摄像头创建立体视觉。但结果还不够好。其中一个视频比另一个视频滞后。这是我使用VC++2010的openCV程序:#include#include#includeusingnamespacecv;usingnamespacestd;intmain(){try{VideoCapturecap1;VideoCapturecap2;cap1.open(0);cap1.set(CV_CAP_PROP_FRAME_WIDTH,1040.0);cap1.set(CV_CAP_PROP_FRAME_HEIGHT,920.0);cap2.open(1);cap2.set

c++ - 将 OpenCV 项目升级到最新版本

我有一个使用OpenCV2.3.1的C++Logo检测项目。我需要将这个项目升级到OpenCV3.0。例如,我想使用cv::Mat而不是使用(我实际上是指替换)IplImage。我知道如果没有一些手动编码,一切都不会自动升级。问题:我想知道是否有任何方法可以通过使用软件或第三方库至少自动完成一些工作。 最佳答案 我最近不得不升级一个旧的OpenCV项目,以利用2.4.*版本(来自版本2.2)中提供的一些额外功能。没有工具或库可以帮助您检测需要更改的内容。我不得不升级并修复我的代码的某些部分,这些部分使用的函数略有变化。您可以使用的一

OpenCV中inRange函数

在OpenCV中,inRange函数用于根据颜色范围从图像中提取特定的颜色区域。这个函数检查输入图像中的每个像素,如果像素值位于指定的范围内,则在输出图像(或掩码)中对应位置的像素被设置为白色(或者说是255),否则被设置为黑色(0)。这种方法在处理颜色过滤、颜色识别等任务时非常有用。voidinRange(InputArraysrc,InputArraylowerb,InputArrayupperb,OutputArraydst);src:输入图像,通常是经过颜色空间转换后的图像,比如从BGR转换到HSV颜色空间的图像。lowerb:颜色范围的下界,使用Scalar类型表示。upperb:颜

c++ - opencv cvLine 方法不起作用

我想在相机捕获的帧上打印一条线,但是当我尝试这段代码时它抛出cv::MatcameraFramemainmethodMatError:nosuitableconversionfunctionfor"cv::Mat"to"CvArr"existscvLine(cameraFrame,cvPoint(30,30),cvPoint(90,90),Scalar(255,255,255),1,8,CV_AA);但同时我使用了putText方法,它完美地工作。 最佳答案 cvLine()是OpenCV的CAPI中的一个函数(现已弃用),但它只能

c++ - 使用 OpenCv 3.0 进行鱼眼镜头校准

我必须用鱼眼镜头校准我的相机。首先,我使用带有标志CV_CALIB_RATIONAL_MODEL的OpenCv2.4来获得更好的结果,但这还不够。后来看到OpenCv3.0有鱼眼标定功能。我计算我的对象点并使用findChessboardCorners()获取我的图像点,它们看起来是正确的。我的问题是在fisheye::calibrate之后。我的重投影误差、固有矩阵和失真系数等返回值是错误的。它们是-nan值。有谁知道我做错了什么吗?谢谢 最佳答案 对于新的OpenCV3.0鱼眼功能,我发现除非指定了cv::fisheye::CA

c++ - 在 CUDA/Thrust 中,如何在 for-each 操作期间访问 vector 元素的邻居?

我正在尝试使用CUDA中的Thrust库进行一些科学模拟,但我陷入了以下操作,这基本上是一个for-each循环:device_vectorIn(N);for-eachIn(x)inInOut(x)=some_calculation(In(x-1),In(x),In(x+1));end我已经查阅了stackoverflow.com并找到了一些类似的问题:Similarquestions1但似乎只有当some_calculation函数在2个参数之间完成时才可能使用变换迭代器,因为变换迭代器最多传递两个参数。那么,对于问题2:Similarquestions2讨论就这么结束了,还没有得出

c++ - OpenCV - Mat 的零填充

假设我有一个尺寸为98x158x32(浮点型)的Mat变量small_image。现在我想对这个图像进行零填充(即向图像添加一个零边框)。我想在图像的上方和下方添加7个零,在图像的左右各添加12个零。第一个想法是使用cvcopyMakeBorder(参见copyMakeBorderdoc),这似乎很适合这个:intold_size[3];old_size[0]=98;old_size[1]=158;old_size[2]=32;intpad_size[3];pad_size[0]=old_size[0]+2*7;pad_size[1]=old_size[1]+2*12;pad_size

c++ - openCV cv::mat 发布

当使用openCVcv::Mat时。http://docs.opencv.org/modules/core/doc/basic_structures.html我知道正在使用某种智能指针。我的问题是,为了进行一些内存优化。我应该调用cv::Matrelease()来释放未使用的矩阵吗?还是我应该相信编译器会这样做?例如想想这段代码:cv::MatfilterContours=cv::Mat::zeros(bwImg.size(),CV_8UC3);bwImg.release();for(inti=0;i 最佳答案 cv::releas

c++ - 在 OpenCV/C++ 中通过(扩展)卡尔曼滤波器实现数据融合

我正在开展一个项目,通过数据融合来跟踪安装在移动设备上的摄像头的位置。我得到的数据是1)来自源A的相机在x、y和z方向的速度2)来自源B的当前帧和上一帧位置之间的差异(在2D中,Z不应以任何方式改变)我已经做了一个类似的项目,但没有任何数据融合,而是使用了在OpenCV中实现的卡尔曼滤波器。目前,我一直对迄今为止在网上找到的所有不同实现技术感到困惑。我如何将我获得的数据插入/组合到KF/EKF的不同组件中?我有这个例子来改变OpenCV-KF以作为EKF工作。它看起来很像我需要的东西,除了我的对象实际上是相机本身并且还能够在y轴和x轴上移动,轮流,......而且我得到的不是对象的像素

c++ - #include <opencv2/opencv.hpp> 在 VS 2013 中不起作用

我有VS2013社区版,我刚刚在目录c:\openCV3中安装了OpenCV,并且有一个构建子文件夹和一个include子文件夹等,一切看起来都很正常。所以我用#include行创建了一个空项目但我明白了Error1errorC1083:Cannotopenincludefile:'opencv2/opencv.hpp':Nosuchfileordirectoryd:\devt\cplusplus\opencv\test1\test1\source.cpp11Test1不过,我已将项目的附加包含目录修改为:C:\OpenCV3\build\include\opencv;C:\OpenC