草庐IT

opencv_traincascade

全部标签

使用Opencv-python库读取图像、本地视频和摄像头实时数据

使用Opencv-python库读取图像、本地视频和摄像头实时数据Python中使用OpenCV读取图像、本地视频和摄像头数据很简单,首先需要安装Python,然后安装Opencv-python库pipinstallopencv-python然后在PyCharm或者VScode等IDE中输入对应的Python代码一、使用opencv-python读取图像比如说我们要显示上面这幅数字图像处理中的lena.jpg这幅图像,读取的python代码如下所示:importcv2#Loadanimageusingimreadimg=cv2.imread("images/lena.jpg")#img=cv2

c++ - Opencv 错误 : no GPU support (library is compiled without CUDA support)

我正在尝试使用CUDA在GPU上使用opencv处理一些图像处理任务。我正在使用ubuntu。我毫无问题地设置了我的两个产品Opencv和Cuda,我确信这一点。但是,当我尝试在eclipse中运行sampleCOde时,出现错误:OpenCV错误:在mallocPitch中没有GPU支持(库在没有CUDA支持的情况下编译),文件/home/muad/Source/OpenCV-2.4.2/modules/core/src/gpumat.cpp,第749行我重做了我的opencv,但我还是明白了。 最佳答案 如文档中所述,您必须使用

c++ - OpenCV/C++ 中的 MATLAB sub2ind/ind2sub

OpenCV中是否有任何函数等同于MATLAB的sub2ind和ind2sub函数?我的C++应用程序需要这两个函数。如果OpenCV缺少这些功能,是否有提供等效功能的C++库? 最佳答案 你可以自己写:intsub2ind(constintrow,constintcol,constintcols,constintrows){returnrow*cols+col;}voidind2sub(constintsub,constintcols,constintrows,int&row,int&col){row=sub/cols;col=s

c++ - OpenCV 中颜色差异的简单度量?

我有两个cv::Scalar对象,我想计算色差。我想出了这段代码:cv::Scalara(255,128,255);//color1cv::Scalarb(100,100,100);//color2cv::Scalard=b-a;doubledistance=sqrtl(d[0]*d[0]+d[1]*d[1]+d[2]*d[2]);这看起来很笨拙。是否有更简单的方法来表达这个或另一个指标,例如一种表示点积d*d的方式,或者一种直接表示两个cv::Scalar距离的方式,或者cv::Vec4i>,它可以被类型转换成afaik? 最佳答案

c++ - 将 3D MatND 拆分为 2D Mat opencv 的 vector

是否可以从在opencv中存储为MatND的3D数据立方体中获取2DMat对象?基本上我使用“mexopencv”将3D矩阵传递给MexFile。我使用MxArray(prhs[0]).toMatND()将矩阵转换为MatND对象。现在我想沿着第三维将这个数据立方体拆分成一个cv::Mat矩阵vector。我需要对这些2D矩阵进行操作,因此在三维上进行迭代。是否有根据需要拆分数据立方体的功能?或者获取指向3D数据立方体的2D子矩阵的指针的方法?编辑:这是我的代码,它使用mexopencv将Matlab输入参数转换为MatND数组。我实现了@chappjc将3D数据代码拆分为2D矩阵ve

c++ - 如何在 OpenCV (3.0.0) OCL 中启动自定义 OpenCL 内核?

我可能滥用了OpenCV,将其用作官方OpenCLC++绑定(bind)的包装器,以便我可以启动自己的内核。但是,OpenCV确实有Program、ProgramSource、Kernel、Queue等类,它们似乎告诉我可以使用OpenCV启动自己的(甚至非基于图像的)内核。我很难找到这些类的文档,更不用说示例了。所以,到目前为止,我尝试了一下:#include#include#include"opencv2/opencv.hpp"#include"opencv2/core/ocl.hpp"#defineARRAY_SIZE128usingnamespacestd;usingnames

c++ - OpenCV 3.0中findEssentialMat函数的使用

我目前正在开展一个项目,使用SIFT/SURF从两张图像中恢复相机的6-DOF-Pose。在旧版本的OpenCV中,我使用findFundamentalMat找到基本矩阵,然后通过已知相机固有K进一步得到基本矩阵,最终通过矩阵分解得到R和t。结果非常敏感且不稳定。我看到这里有人有同样的问题OpenCVfindFundamentalMatveryunstableandsensitive有人建议使用在最新版本的OpenCV3.0中实现的Nister的5点算法。我读过一个例子OpenCVdocumentation在示例中,它使用focal=1.0和Point2dpp(0.0,0.0)。这是相

c++ - OpenCV Mat 数据成员访问

我看过很多直接访问cv::Mat数据成员的OpenCV代码。cv::Mat将指向数据的指针存储在unsignedchar*data成员中。访问数据成员如下所示:cv::MatmatUC(3,3,CV_8U)introwIdx=1;intcolIdx=1;unsignedcharval=matUC.data[rowIdx*matUC.cols+colIdx]我想知道这是否适用于像素类型不是unsignedchar的cv::Mat。cv::MatmatF(3,3,CV_32F)introwIdx=1;intcolIdx=1;floatval=matF.data[rowIdx*matF.co

c++ - 使用 OpenCV 过滤波动光照

我需要使用OpenCV在网络摄像头镜头中进行相当敏感的颜色(亮度)测量。我遇到的问题是环境光波动,这使得很难获得准确的结果。我正在寻找一种方法来不断更新视频的连续帧以消除全局照明差异。我试图滤除的光线变化在大部分或全部图像中全局发生。我试图计算出差异并减去它,但运气不佳。有没有人对如何解决这个问题有任何建议?编辑:下面两张图片来自同一个视频,颜色变化略有放大。如果你在它们之间交替,你会看到光线有轻微的变化,可能是由于外面的云层移动。问题是这些变化掩盖了我可能想要检测的任何其他颜色变化。所以我想过滤掉这些特定的变化。鉴于我只需要捕获的部分帧,我认为应该可以过滤掉其余镜头中发生的光照变化。

c++ - OpenCV:将标量转换为不同的颜色空间

我正在使用Scalar来定义我使用OpenCV绘制的矩形的颜色:rectangle(imgOriginal,Point(0,0),Point(25,50),Scalar(H,S,V),CV_FILLED);但是,颜色是在HSV颜色空间而不是RGB中定义的(imgOriginal是RGB)。如何转换Scalar(或其输入,整数变量H、S和V)到RGB?(到目前为止,我只找到了告诉我如何使用cvtColor转换整个图像的答案,这不是我想要的。) 最佳答案 虽然不是最优的,但您可以使用以下内容:ScalarScalarHSV2BGR(uc