草庐IT

opencv-cuda

全部标签

c++ - 改进 CUDA 中的异步执行

我目前正在编写一个程序,使用CUDAAPI在GPU上执行大型模拟。为了加速性能,我尝试同时运行我的内核,然后再次将结果异步复制到主机内存中。代码大致如下所示:#defineNSTREAMS8#defineBLOCKDIMX16#defineBLOCKDIMY16voiddomainUpdate(float*domain_cpu,//pointertodomainonhostfloat*domain_gpu,//pointertodomainondeviceconstunsignedintdimX,constunsignedintdimY,constunsignedintdimZ){di

c++ - 在 OpenCV 和 c++ 中使用一组有限的图像进行相机校准

当样本数量有限且位于图像的小区域内时,您对相机校准有什么想法或建议吗?这里是一些额外的信息:我正在从事一个项目,以帮助残疾人用眼睛使用计算机。由于我对OpenCV缺乏经验,有些事情给我带来了一些麻烦。摄像头是头戴式的,凸度还不错,但眼球本身是凸的,会转动。我打算“压平”眼睛,让它看起来像在平面上移动。显而易见的选择是校准相机以尝试消除径向畸变。在校准过程中,用户查看屏幕上网格的角。在校准期间,瞳孔的时刻存储在每个位置的Mat中。所以当我在屏幕上查看网格的角时,我有一个图像,其中的点对应于多个眼球位置。我可以绘制连接四个点组的填充多边形并创建棋盘图案,或者我可以将每个眼睛位置保存为一个点

c++ - 在 openCV 中编写可变帧率视频

我在openCV中编写视频文件的步骤如下:CvVideoWriter*writer=cvCreateVideoWriter(fileName,CodecID,frameRate,frameSize);//CreateVideoWritercvWriteFrame(writer,frame);//WriteframecvReleaseVideoWriter(&writer);//Releasevideowriter上面的代码片段以固定的帧速率写入。我需要写出可变帧率视频。我之前在libx264中使用的方法涉及将单独的时间戳写入每个帧。所以,问题是如何将时间戳写入openCV中的帧-具体的

c++ - CUDA 中的复杂算术

我经常在CUDA中使用复杂的算术,需要定义自己的实现,例如超越函数(sin、cos、exp,...)在复数上。我现在想通过编写一个包含此类函数的库来明确解决问题,以便考虑“大量”情况并避免在任何时候因新实现而陷入困境。我知道,对于他们中的一些人来说,从准确性和计算复杂性之间权衡的角度来看,编写代码可能并非易事。不过,我也知道C++有自己的complexmathlibrary.是否有可能为CUDA目的“回收”现有的C++解决方案? 最佳答案 可能你已经找到了答案,但这是我的答案:有可能“回收”sourcesforcomplexC++I

c++ - opencv 和 Matlab 的 Sobel 滤波器输出不同

我正在将一些代码从matlab转换为opencv。我尝试在opencv中使用Sobel,但opencv和matlab的输出完全不同,这可能是什么原因。如何使opencv的输出与matlab相同?我的MATLAB代码是:[sobel_edges,T,V,H]=edge(rgb2gray(im),'sobel',0.03);sobel_angles=atan2(V,H);sobel_weights=(V.*V+H.*H).^0.5;其中0.03是阈值。在opencv中,当我使用预建的Sobel滤波器时,输出与matlab完全不同,甚至在openc中计算的engle和magnitude也不同

c++ - `int` 假定在 OpenCV 中始终为 32 位?

似乎在OpenCV中,int数据类型总是假定为32位。这反射(reflect)在文档中(例如,intheintroduction),也反射(reflect)在源代码中(例如,在modules/core/include/opencv2/core/cvdef.h的注释中,以及它将uint定义为32位无符号整数,但没有定义相应的有符号类型这一事实。在int不是32位的系统上,这如何不破坏OpenCV?毕竟,标准只保证int是16位。我希望OpenCV为其使用的所有大小定义数据类型(就像它为int64所做的那样),或者使用uint_8和friend。 最佳答案

c++ - OpenCV中数据库视频匹配的实现帮助

我正在尝试开发一个程序来将查询视频与数据库中的视频进行匹配。所以类似于谷歌图像搜索,但用于视频剪辑。我正在使用OpenCV进行此实现。我可以为视频中的选定帧成功生成特征描述符(说实话这并不难)。我不知道应该如何实现数据库部分。我想知道是否有人可以指点OpenCV中已经存在的内容以简化我的实现:要扩展哪些类、如何构造它、任何现有的实现/示例,......?基本上,我会从查询剪辑中获得一组描述符,我想将其与预先计算的描述符的(大型)数据库进行比较,然后使用一些投票算法来返回最佳匹配。所以我不是询问要使用哪种算法,我只是想了解OpenCV中实现我所描述的这种东西的最佳实践。我在Mac上的Xc

c++ - OpenCV 和 GoPro - VideoCapture 流中的空帧

我有一台连接到视频采集卡(AverMediaGameBroadcasterHD)的GoProHero3+(黑色)。我只是想在OpenCV中获取视频流。使用罗技网络摄像头没有任何问题。使用的代码如下。VideoCapturecap;cap.open(0);waitKey(300);//cap.set(CV_CAP_PROP_FRAME_WIDTH,1280);//cap.set(CV_CAP_PROP_FRAME_HEIGHT,720);if(cap.isOpened()){cout对于GoPro,会发生以下情况:OpenCV能够打开VideoCapture(“已识别摄像头”)但无法读取

c++ - 在 openCV 中计算并显示 LBP 直方图

我想使用LBP和SVM创建一个实时情绪识别程序。经过面部检测过程后,我将捕获的图像转换为32x32像素的灰度图像。我很难为我的LBP创建和显示直方图(我使用简单的、未插值的LBP)。到目前为止,我得到的是实时显示生成的LBP图像。Ahonen等。al的论文指出dividetheLBPimageintomlocalregionsandextractahistogramfromeach(region)我们如何确定m个局部区域的数量?我一直在努力寻找答案here,和here但我无法理解它。我在这里看到了berak关于空间直方图的工作,但我仍然感到困惑。有人可以逐步教我吗(是的,我是新手:/)

c++ - opencv背景减法中的过滤线和曲线

我正在使用opencv中的背景减法进行对象跟踪。我拍摄了一段足球视频样本,我的目标是跟踪球员并过滤掉较大的field标记。由于非静态相机,大线也被检测为移动,如下图所示:我利用霍夫变换来检测线条,并在设置适当的阈值后,能够过滤掉中间的线条,图像如下所示:现在我关心的是过滤这2个弧。问题1.我可以通过哪些方式做到这一点?我如何利用弧线(又长又细)和播放器(紧凑的Blob)在“属性”上的差异?此外,Hough变换函数有时会报告许多误报(将高瘦玩家检测为直线,甚至连接2个玩家以显示更长的线)。问题2、如何规定“待检测”线的最大粗细,并保持严格的标准“只”检测线?谢谢。