草庐IT

opencv-features2d

全部标签

c++ - 在 Opencv 中以 UYVY 编解码器录制视频

我有一台来自e-consystems的相机,它支持UYVU编解码器视频录制。当我使用他们自己的软件(QTCam)录制视频时,它使用YUY2编解码器以avi格式录制视频,视频可以在VLC中完美打开和运行。现在我尝试通过OpencvVideoWrtiter()录制视频。我使用此命令设置Camera属性以读取UYVYCodec视频。camera1.set(CV_CAP_PROP_FOURCC,CV_FOURCC('U','Y','V','Y'));还使用VideoWriter以AVI文件格式录制视频。video1.open("/home/camera1UYVY.avi",CV_FOURCC(

c++ - Bazel 使用 OpenCV 3.3 依赖项构建

我正在尝试使用Bazel来编译和分发基于OpenCV的C++代码,但我遇到了一个我无法解决的问题。我在支持CUDA(CUDA8)的Ubuntu16.04LTS上从源代码构建和安装OpenCV3.3。我将它安装在标准目录/usr/local中。鉴于此,我使用这个WORKSPACE文件创建了我的项目:new_local_repository(name="opencv",path="/usr/local",build_file="opencv.BUILD",)opencv.BUILD包含:cc_library(name="opencv",srcs=glob(["lib/*.so*"]),hd

08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)

目录前言一、膨胀(Dilation)与腐蚀(Erosion)二、形态学操作1、开操作(Opening)2、闭操作(Closing)3、形态学梯度(MorphologicalGradient)4、顶帽(tophat)5、黑帽( blackhat)6、相关的API7、代码演示三、形态学操作应用-提取水平与垂直线1、原理方法2、实现步骤前言1、了解图像形态学图像形态学操作是一种基于图像形状的图像处理方法,常用于图像分割、边缘检测、图像增强等领域。2、图像形态学主要包括腐蚀(Erosion)、膨胀(Dilation)、开运算(Opening)、闭运算(Closing)等操作。除了以上基本操作,还有其他

c++ - 如何从 2D 纹理中成功读取

我怎样才能:将cudaMallocPitch浮点内存绑定(bind)到2D纹理引用复制一些主机数据到设备上的二维数组将一个添加到纹理引用并写入a.)Pitch二维数组或b.)写入线性内存数组读回答案并展示。下面是一个应该完成这个的代码。请注意,对于NxN数组大小,我的代码有效。对于NxM,其中N!=M,我的代码基本没问题(不是正确的结果)。如果你能解决这个问题,我将奖励你1个互联网(数量有限)。也许我疯了,但根据文档,这应该有效(而且它确实适用于方阵!)。附加代码应使用“nvccwhateveryoucallit.cu-orunit”运行。感谢您的帮助!#include#include

c++ - 访问 OpenCV Mat 元素时确定模板类型

我正在使用以下代码为图像添加一些噪声(直接来自OpenCV引用,第449页--cv::Mat::begin的解释):voidsimulate_noise(Matconst&in,doublestddev,Mat&out){cv::Sizes=in.size();vectornoise=generate_noise(s.width*s.height,stddev);typedefcv::VecV4;cv::MatConstIterator_in_itr=in.begin();cv::MatConstIterator_in_end=in.end();cv::MatIterator_out_

第1章 图片与初用OpenCV

在本章,初步介绍OpenCV的一些基本操作,例如图片的读取以及图片格式的转换。1图片在计算机中的几种存储形式2图片的读取和延时操作3图片的各种输出形式1.1图片在计算机中的存储形式即使我们对图片在计算机中的存储格式不是很清楚,也知道图片在计算机中是以二进制的形式存储的。图片如何转为二进制的形式在这里不进行详细说明,本节只讲程序像素X是如何以矩阵的形式进行图片的操作和相关运算的。一张1024*960像素的图片,如果我们在程序里使用它或者对它进行一些操作,那么它就是一个960行,1024列的二维矩阵。矩阵的每一个元素存储的都是一个列表,而列表里面存储的则是各个通道的值,那什么是通道呢?在讲通道之前

上位机图像处理和嵌入式模块部署(c/c++ & opencv)

【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】    opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译,可以直接使用官方编译好的版本,直接下载接好。配置好include和lib之后,就可以进行图像的处理了。当然有一个地方需要注意下,那就是创建的vs工程必须是x64工程。因为下载的opencv本身就是64位代码。1、下载opencv    可以直接到官网下载最新的opencv即可。下载后解压到一个目录下面,https://opencv.org/releases/2、创建

【OpenCV】undefined reference to `cv::dnn::dnn4_v20191202::Net::~Net()‘

Linux环境下使用opencv的dnn模块调用yolov4遇到的坑(纯CPU)1.改CMakeList.txt向CMakeLists.txt中的find_package(OpenCV4REQUIREDopencv_coreopencv_imgprocopencv_highguiopencv_calib3dopencv_videoioopencv_imgcodecs)添加opencv_dnn,即改成find_package(OpenCV4REQUIREDopencv_coreopencv_imgprocopencv_highguiopencv_calib3dopencv_videoioopen

c++ - 全高清 2D 纹理内存 OpenGL

我正在为一家艺术家公司编写具有全高清功能的2D引擎,该引擎有望跨平台并使用OpenGL和C++编写。我遇到的主要问题是如何处理所有这些高清Sprite。艺术家以24fps的速度绘制图形,并将它们导出为png序列。我已将它们转换为DDS(不理想,因为它需要加载directxheader)DXT5,这大大减少了文件大小。游戏中的某些场景一次可以有5或6个动画Sprite,这些Sprite可以每个包含200多帧。目前我正在将Sprite加载到一个指针数组中,但这加载时间太长,即使使用压缩纹理也是如此,并且使用相当多的内存(完整场景大约500mb)。所以我的问题是,对于如何处理如此大量的帧,您

c++ - OpenCV 平方差和速度

我一直在使用openCV进行一些block匹配,我注意到它的平方差和代码与像这样的直接for循环相比非常快:intSSD=0;for(inti=0;i如果我查看源代码以查看繁重的工作发生在哪里,OpenCV人员让他们的for循环在循环的每次迭代中一次执行4个平方差计算。进行block匹配的函数如下所示。int64icvCmpBlocksL2_8u_C1(constuchar*vec1,constuchar*vec2,intlen){inti,s=0;int64sum=0;for(i=0;i此计算适用于无符号8位整数。他们在此函数中对32位float执行类似的计算:doubleicvCm