![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
文章平均质量分 68
温晨星
这个作者很懒,什么都没留下…
展开
-
【OpenCV】简介
官网OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了大量的函数和算法,用于处理图像和视频数据,进行目标检测、跟踪、特征提取等任务。原创 2024-02-23 12:11:42 · 893 阅读 · 0 评论 -
【OpenCV】CUDA模块8:计算Mat中最大值最小值
接下来,我们使用 cv::cuda::max 计算这两个数组对应元素的最大值,并将结果存储在另一个 cv::cuda::GpuMat 对象 dst_gpu 中。在这个例子中,我们首先加载一张灰度图像到 cv::Mat 对象中,然后将其上传到 GPU 作为 cv::cuda::GpuMat 对象。3:并行计算:在需要并行执行最大值计算的场景中,例如在大规模数据集的统计分析中,cv::cuda::max 可以提供高效的解决方案。cv::cuda::max 可以用于选择两个特征值中的较大者。原创 2024-02-19 21:41:17 · 510 阅读 · 0 评论 -
【OpenCV】CUDA模块8:采样/resize()
在OpenCV中,图像采样通常指的是改变图像的尺寸或分辨率,这可以通过上采样(增大图像)或下采样(缩小图像)来实现。这些操作在图像处理中非常常见,用于调整图像大小、准备数据以供机器学习模型使用、构建图像金字塔等。OpenCV提供了多个函数来进行图像采样:1):上采样 - cv::pyrUp:此函数用于增大图像的尺寸。它通常基于线性插值或某种形式的图像重建滤波器来工作。在OpenCV的CUDA模块中,cv::cuda::pyrUp是对应的GPU加速版本。原创 2024-02-19 21:11:45 · 1330 阅读 · 0 评论 -
【OpenCV】CUDA模块7:PtrStep<>
注意:在这个修正后的示例中,我使用了 cv::cuda::PtrStepSz 而不是 cv::cuda::PtrStep。cv::cuda::PtrStep 通常用于与 cv::cuda::GpuMat 一起工作,后者是一个用于在 GPU 上存储图像或矩阵的类。通过 cv::cuda::GpuMat::ptr 方法,可以获取一个指向图像特定行的 cv::cuda::PtrStep 对象,然而,在实际使用中,cv::cuda::PtrStep 往往与特定的元素类型一起使用,而步长类型则根据元素类型自动推断。原创 2024-02-19 20:01:35 · 447 阅读 · 0 评论 -
【OpenCV】CUDA模块6:Stream
同一个流中的命令会按照它们被添加到流中的顺序执行,而不同流中的命令则可以并行执行,具体取决于 GPU 的硬件资源和调度策略。cv::cuda::Stream 类提供了创建和操作 CUDA 流的功能。在 OpenCV 的 CUDA 模块中,许多函数都接受一个 Stream 参数,以便你可以指定在哪个流上执行该操作。然而,上面的代码示例实际上并没有利用到 CUDA 的并行性,因为我们没有创建真正的独立流。cv::cuda::Stream 是 OpenCV CUDA 模块中的一个类,它表示一个 CUDA 流。原创 2024-02-19 19:35:43 · 618 阅读 · 0 评论 -
【OpenCV】CUDA模块5:compare()
然后,我们使用 cv::cuda::compare 函数比较这两个矩阵中的元素,并将结果存储在 result 中。cmpop:比较操作的类型,可以是以下之一:CMP_EQ(等于)、CMP_GT(大于)、CMP_GE(大于或等于)、CMP_LT(小于)、CMP_LE(小于或等于)或 CMP_NE(不等于)。cv::cuda::compare 是 OpenCV 的 CUDA 模块中的一个函数,用于在 GPU 上执行两个矩阵(通常是 cv::cuda::GpuMat 类型)之间的元素级比较操作。原创 2024-02-19 19:23:12 · 366 阅读 · 0 评论 -
【OpenCV】CUDA模块4:copyMakeBorder()
在这个示例中,我们首先读取了一张灰度图像到 GpuMat,然后使用 cv::cuda::copyMakeBorder 在图像周围添加了指定大小的常数边框(值为 0)。borderType:边框类型,可以是 cv::BORDER_CONSTANT、cv::BORDER_REPLICATE、cv::BORDER_REFLECT 或 cv::BORDER_WRAP 等之一。dst:输出图像,类型为 cv::cuda::GpuMat,包含了添加了边框的输入图像。原创 2024-02-19 19:19:46 · 427 阅读 · 0 评论 -
【OpenCV】CUDA模块3:图像转换及采样
在这个例子中,我们首先加载一张彩色图像到 cv::Mat 对象中,然后将其上传到 GPU 作为 cv::cuda::GpuMat 对象。接着,我们使用 cv::cuda::cvtColor 将图像从 BGR 颜色空间转换为灰度颜色空间,并将结果存储在另一个 cv::cuda::GpuMat 对象中。在这个例子中,我们首先加载一张灰度图像到 cv::Mat 对象中,并将其上传到 GPU 作为 cv::cuda::GpuMat 对象。它基于给定的映射关系,将输入图像中的像素位置映射到输出图像中的新位置。原创 2024-02-19 19:13:09 · 418 阅读 · 0 评论 -
【OpenCV】CUDA模块2:矩阵multiply/subtract/add运算
在这个示例中,cv::cuda::multiply 函数接受两个输入图像 gpu_img1 和 gpu_img2,并生成一个输出图像 gpu_result,其中包含两个输入图像的逐元素乘积。函数的基本用法是将两个相同大小和类型的 cv::cuda::GpuMat 对象作为输入,并输出一个包含逐元素乘法结果的新 cv::cuda::GpuMat 对象。4:增强对比度:在某些情况下,通过从一个图像中减去另一个图像(可能是模糊版本或低通滤波后的图像),可以增强图像的对比度,特别是边缘和细节部分。原创 2024-02-19 19:12:30 · 459 阅读 · 0 评论 -
【OpenCV】CUDA模块1:GpuMat()
2:高效的数据传输:该类提供了在 CPU 和 GPU 之间高效传输数据的方法,如 upload() 和 download(),这些方法用于将数据从 CPU 内存传输到 GPU 内存,或者从 GPU 内存传输回 CPU 内存。3:与 CPU 上的 cv::Mat 兼容:cv::cuda::GpuMat 的设计使其与 CPU 上的 cv::Mat 类兼容,便于在两者之间进行转换和操作。这里,img1应该是一个已经加载到内存中的图像。1:它声明了一个cv::cuda::GpuMat类型的变量gpu_img1。原创 2024-02-19 19:11:30 · 875 阅读 · 0 评论 -
cv::Size()
cv::Size() 是 OpenCV (一个开源的计算机视觉库) 中的构造函数,用于创建一个 Size 对象,表示一个矩形的大小。// width 和 height 是你想要设置的宽度和高度。如果你有一个 cv::Mat 对象或一个 cv::Rect 对象,你可以使用其 .size 成员来获取其大小。// 创建一个宽度为500像素,高度为300像素的矩形。你可以使用 .width 和 .height 成员来获取或设置大小中的宽度和高度。原创 2024-02-01 18:22:34 · 864 阅读 · 0 评论 -
ubuntu环境通过CMake安装OpenCV
第二部分是独立的代码库contrib,https://github.com/opencv/opencv_contrib,它包含了 最近加入 OpenCV 的计算机视觉算法,其中包含一些基 于特定许可协议、需要付费才能使用的算法,但如果要使用最先进的算法,就很可能需要这个额外的模块。第一部分是包含了 成熟算法的 OpenCV 主源码库,https://github.com/opencv/opencv ,OpenCV 的核心函数,也就是之前下载的内容。官网:https://github.com/opencv。原创 2024-01-27 20:32:32 · 1097 阅读 · 0 评论