草庐IT

opencv-cuda

全部标签

python - OpenCV unproject 2D 指向具有已知深度 `Z` 的 3D

问题陈述我正在尝试将2D点重新投影到它们的原始3D坐标,假设我知道每个点的距离。关注OpenCVdocumentation,我设法让它以零失真工作。然而,当存在扭曲时,结果是不正确的。当前方法因此,我们的想法是反转以下内容:进入以下:通过:使用cv::undistortPoints消除任何扭曲通过反转上面的第二个等式,使用内在函数返回标准化相机坐标乘以z以反转归一化。问题为什么我需要减去f_x和f_y才能返回标准化相机坐标(测试时凭经验找到)?在下面的代码中,在第2步中,如果我不减去——即使没有扭曲的结果也是关闭的这是我的错误——我弄乱了索引。如果我包括失真,结果是错误的——我做错了什

c++ - 使用 Libtorch + OpenCV + QT Creator 时出错

我在.pro文件中有如下配置TEMPLATE=appCONFIG+=consolec++11CONFIG-=app_bundleCONFIG-=qtCONFIG+=threadSOURCES+=main.cppINCLUDEPATH+=/usr/local/include/opencv4LIBS+=-L/usr/local/lib/LIBS+=-lopencv_coreLIBS+=-lopencv_highguiLIBS+=-lopencv_imgprocLIBS+=-lopencv_videoioQMAKE_CXXFLAGS+=-D_GLIBCXX_USE_CXX11_ABI=0IN

.net - 使用 .NET 和 OpenCV 进行线程化?

我无法让线程与OpenCV一起工作.问题出在我代码的ThreadStart()部分。publicrefclasscircles{public:staticvoidcircleFind(boolisPhoto,constchar*windowName1,constchar*windowName2,constchar*photoName){(stuff)}};intmain(intargc,char*argv[]){constchar*windowName1;constchar*windowName2;constchar*photoName;windowName1="FindCircles

c++ - 在opencv中找到轮廓/对象之间的距离

我已经使用cvfindcontour找到了轮廓,现在我想访问第一个和第二个轮廓并找到它们之间的欧氏距离。有人可以帮我处理它的代码吗?CvPoint*contourPoint,*contourPoint2;contourPoint=(CvPoint*)CV_GET_SEQ_ELEM(CvPoint,contours,1);contourPoint2=(CvPoint*)CV_GET_SEQ_ELEM(CvPoint,contours,2);doubledis=sqrt(double((contourPoint->x-contourPoint2->x)*(contourPoint->x-c

c++ - OpenCV - 创建一个 Mat 对象数组

我原以为这是微不足道的,但我遇到了一些麻烦。我想将视频文件读入内存并将其存储在数组中。我希望数组是指向Mat对象的指针。这是我正在使用的代码:cv::VideoCapturevidCap=cv::VideoCapture("file.avi");intframes=(int)vidCap.get(CV_CAP_PROP_FRAME_COUNT);cv::Mat**frameArray=newcv::Mat*[frames];for(intnum=0;num>*(frameArray[num]);}但是,当我显示图像(例如,数组中的第一张图像)时,它显示最后帧。我哪里错了?这是显示图像的

c++ - cuda-memcheck,如何从地址到源代码?

我成功地使用cuda-memcheck获取有关错误内存访问的错误。使用-g-G编译cuda代码给出了很好的源位置,如下所示:=========Error:processdidn'tterminatesuccessfully=========Invalid__global__readofsize1=========at0x00000710in/some/path/somefile.cu:117:some_function=========bythread(0,14,0)inblock(1,16,0)=========Address0x00abac20isoutofbounds现在我尝试使

c++ - OpenCV 中空间域的 DFT 不起作用

我已经创建了一个图像的dft并且在使用过滤器进行一些调整之后我想将它转换回真实图像但是每次我这样做时它都会给我错误的结果..似乎它没有将它转换回来。ForierTransform和createGaussianHighPassFilter是我自己的函数,其余代码我正在使用,如下所示,用于反转回真实图像。Matfft=ForierTransform(HeightPadded,WidthPadded);Matghpf=createGaussianHighPassFilter(Size(WidthPadded,HeightPadded),db);Matres;cv::multiply(fft,

c++ - OpenCV:比较帧相似性的快速方法

我正在寻找一种快速的方法来将帧与运行平均值进行比较,并确定它们之间的差异(如果它们非常相似则给出高值,如果它们不相似则给出较低的值那个相似)。我需要比较整个帧,而不仅仅是较小的区域。我已经在图像上使用Otsu阈值来过滤掉背景(对背景不感兴趣,也不对前景的特征感兴趣-只需要形状)。有没有一种好的、快速的方法来做我想做的事? 最佳答案 经典方法是归一化互相关(试试cv::matchTemplate())。您将需要设置一个阈值来决定图像是否匹配。您还可以使用输出(已设置阈值)来比较多个图像。在OpenCV中,matchTemplate中的

c++ - 封装 CUDA 内核的最佳方式是什么?

我正在尝试使CUDA项目尽可能接近OO设计。目前,我找到的解决方案是使用Struct来封装数据,对于每个需要一些GPU处理的方法,需要实现3个函数:对象将调用的方法。一个__全局__函数,它将调用该结构的__设备__方法。__device__结构内的方法。我举个例子。假设我需要实现一种方法来初始化结构内的缓冲区。它看起来像这样:structFoo{float*buffer;short2buffer_resolution_;short2block_size_;__device__initBuffer(){intx=blockIdx.x*blockDim.x+threadIdx.x;int

第十八篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:图像修复和恢复

传奇开心果短博文系列系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言一、常用的图像修复与恢复技术二、插值方法示例代码三、基于纹理合成的方法示例代码四、基于边缘保持的方法示例代码五、基于图像修复模型的方法示例代码六、基于深度学习的方法示例代码七、基于结构化边缘的方法示例代码八、基于多帧图像的方法示例代码九、基于超分辨率的方法示例代码十、cv2.inpaint()函数修复图像示例代码十一、cv2.fillPoly()函数填充多边形区域修复图像示例代码十二、归纳总结系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言OpenCV是一个开源的计算机视觉库