![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
philosophia_OsO
这个作者很懒,什么都没留下…
展开
-
如何使用OpenCV的parallel_for_并行化你的代码
英文链接:How to use the OpenCV parallel_for_ to parallelize your code文章目录目的先决条件简单的示例:绘制曼德尔布罗特集(Mandelbrot set)原理伪代码目的本教程的目的是向您展示如何使用OpenCV parallel_for_框架轻松地并行化代码。为了说明这个概念,我们将编写一个程序来利用几乎所有可用的CPU负载绘制曼德尔布罗特集。完整的教程代码在这里。如果你想要更多关于多线程的信息,你将不得不参考参考书或课程,因为本教程的目的是保原创 2020-08-10 09:46:48 · 534 阅读 · 0 评论 -
使用XML和YAML文件的 文件输入和输出
英文链接:File Input and Output using XML and YAML files目标如何打印和读取文本条目到文件 和 OpenCV使用YAML或XML文件?如何为OpenCV数据结构做同样的事情?如何为你的数据结构做到这一点?使用OpenCV数据结构,如cv::FileStorage, cv::FileNode或cv::FileNodeIterator。源码#include <opencv2/core.hpp>#include <iostream&原创 2020-08-09 00:29:11 · 433 阅读 · 0 评论 -
离散傅里叶变换
英文链接:Discrete Fourier Transform目标什么是傅里叶变换,为什么要用它?在OpenCV中怎么做?使用诸如:copyMakeBorder()、merge()、dft()、getOptimalDFTSize()、log()和normalize()等函数。源码解释结果一个应用的想法是确定图像中呈现的几何方向。例如,让我们看看一个文本是否水平? 看一些文本,你会发现文本行也有水平线,字母也有垂直线。在傅立叶变换的情况下,文本片段的这两个主要部分也可以看到。让我们用这个水原创 2020-08-07 19:05:15 · 402 阅读 · 0 评论 -
改变图像的对比度和亮度
英文链接:Changing the contrast and brightness of an image!文章目录目标理论图像处理像素处理亮度和对比度调整源码解释结果实例亮度和对比度调整图像灰度校正(Gamma 校正)校正曝光不足的图像代码其它资源目标访问像素值用零初始化一个矩阵了解cv::saturate_cast做什么以及它为什么有用获取一些关于像素变换的信息关于提高图像亮度的一个实例理论图像处理一般的图像处理算子是接受一个或多个输入图像并生成输出图像的函数。图像变换可以看原创 2020-08-07 09:07:32 · 556 阅读 · 0 评论 -
使用OpenCV相加(混合)两个图像
使用OpenCV相加(混合)两个图像:Adding (blending) two images using OpenCV文章目录目标理论源码解释结果目标什么是线性混合,为什么它有用;如何使用addWeighted()相加两个图像理论下面的解释来自理查德·斯泽里斯基的《计算机视觉:算法和应用》一书一个有趣的二元(双输入)算子是线性混合算子:g(x)=(1−α)f0(x)+αf1(x)g(x) = (1 - \alpha)f_{0}(x) + \alpha f_{1}(x)g(x)=(1原创 2020-08-06 20:39:19 · 833 阅读 · 0 评论 -
对图片的操作
英文原文链接:Operations with images文章目录输入/输出图像的基本操作内存管理和引用计数基本操作可视化图像输入/输出从文件加载一个图像: Mat img = imread(filename);如果你读取一个jpg文件,默认情况下会创建一个3通道的图像。如果你需要一个灰度图像,使用:Mat img = imread(filename, IMREAD_GRAYSCALE);文件的格式由它的内容(前几个字节)决定。保存一个图像到一个文件:imwrite(fil原创 2020-08-06 19:56:08 · 560 阅读 · 0 评论 -
对矩阵的 掩码运算
英文链接:Mask operations on matrices文章目录测试用例代码基本函数二维滤波器函数矩阵的掩码操作非常简单。其思想是我们根据掩码矩阵(也称为内核)重新计算图像中每个像素的值。此掩码保存的值将调整相邻像素(和当前像素)对新像素值的影响程度。从数学的角度来看,我们在用指定的值来计算加权平均值。测试用例我们举个 图像对比度增强 的例子。我们想对图像的每个像素应用以下公式:I(i,j)=5∗I(i,j)−[I(i−1,j)+I(i+1,j)+I(i,j−1)+I(i,j+1)]I(i原创 2020-08-06 16:40:58 · 507 阅读 · 0 评论 -
如何扫描图像,查找表 和 用OpenCV进行时间测量
英文版原文链接文章目录目标测试用例图像矩阵如何存储在内存之中?高效的遍历方式迭代器(安全)方法即时地址计算,带参数返回功能核心函数性能差异目标如何遍历图像的每一个像素?如何存储OpenCV matrix 值?如何衡量我们算法的性能?什么是查询表,为什么使用它们?测试用例 让我们考虑一种简单的色彩量化(颜色空间缩减)方法。通过使用unsigned char C和C++类型存储矩阵项(图片),像素通道可以有多达256个不同的值。对于一个三通道图像,这可能会形成更多的颜色(确切地说是1600原创 2020-08-06 14:40:37 · 587 阅读 · 0 评论 -
Remapping(重映射)
英文版原文链接先修教程:Hough Circle Transform(Hough圆变换)下一教程:文章目录结果目标原理什么是仿射变换?我们如何得到一个仿射变换?代码这个程序是做什么的?代码如下所示:解释结果在编译代码之后,我们可以将图像的路径作为参数提供给它。例如,像这样的图片:应用第一个仿射变换后得到:最后,在应用一个负的旋转(记住负的意思是顺时针)和一个比例因子之后,我们得到:目标此教程我们将学会:使用OpenCV函数 cv::warpAffine 实现简单的重新映射例程。原创 2020-06-20 23:35:39 · 1373 阅读 · 0 评论 -
GPU的相似性检查(PNSR和SSIM)
英文原文链接文章目录目的源码怎么做呢?- - - GPU优化结果与结论目的在 视频输入和相似性度量 教程中,我已经介绍了用于检查两幅图像之间相似性的 PSNR(峰值信噪比) 和SSIM(结构相似度算法) 方法。正如您所看到的,执行过程花费了相当长的时间,尤其是在SSIM的情况下。然而,如果OpenCV实现的CPU性能数字不满足你,而你碰巧在你的系统中有一个NVIDIA CUDA GPU设备,一切都没有失去。你可以尝试为视频卡 搬运或写你自己的算法。您将掌握如何使用OpenCV的GPU模块进行编程。作原创 2020-06-20 23:28:55 · 506 阅读 · 1 评论 -
借助OpenCV进行视频输入和相似性测量
英文原文链接文章目录目的源码如何读取视频流(在线相机或离线文件)?图像相似度- PSNR和SSIM目的如今,有一个数字视频记录系统任由你操作是常见的。因此,您最终会遇到这类情况:即不再处理一批图像,而是处理视频流的情况。这可能有两种:实时图像(在网络摄像头的情况下输入 )或者预先录制和硬盘驱动器存储的文件。幸运的是,OpenCV使用相同的c++类以相同的方式处理这两种情况。以下是你将在本教程中学到的:如何打开和读取视频流两种检测图像相似度的方法: PSNR和SSIM源码如何读取视频流(在线原创 2020-06-18 15:05:05 · 412 阅读 · 0 评论 -
gpu加速计算机视觉(cuda 模块)
英文链接文章目录利用显卡运行OpenCV算法,从你的系统中挤出每一点计算能力GPU的相似性检查(PNSR和SSIM)如果你已经知道如何处理其他模块,这将有助于您快速掌握:如何在GPU模块上编码。作为一个测试用例,它将会把 借助OpenCV进行视频输入和相似性测量 的教程 的相似方法搬运 到 GPU。使用cv::cuda::GpuMat与推力库(thrust library)本教程将向您展示如何将GpuMat封装到一个推力迭代器中,以便能够使用推力库中的函数。...原创 2020-06-18 09:41:24 · 605 阅读 · 0 评论 -
相机成像原理详解(透视成像)
工业镜头基础知识整理相机镜头工作原理图解(值得一看)照相机构成及成像原理 - 搜狐(概念介绍)透镜成像原理,眼球成像原理,小孔成像原理相机的变焦,对焦和景深的理解和照相機的成像原理...原创 2020-06-12 10:38:28 · 6788 阅读 · 0 评论 -
一些致力于底层图像处理算法的大神
只(挚)爱图像处理SSE图像算法优化系列九:灵活运用SIMD指令16倍提升Sobel边缘检测的速度原创 2020-06-12 10:30:51 · 322 阅读 · 0 评论 -
Mat——基本的图像容器
英文版原文链接文章目录目标Mat存储方法显式创建一个Mat对象格式化输出其他常用项的输出目标我们有多种方法从现实世界获取数字图像:数码相机、扫描仪、计算机断层扫描和磁共振成像等等。在以上任何情况下,我们(人类)看到的都是图像。然而,当将其转换到我们的数字设备时,我们所记录的是图像中每个点的数值。例如,在上面的图像中,你可以看到汽车的镜子只不过是一个包含所有像素点的强度值的矩阵。我们获取和存储像素值的方式可能会根据我们的需要而有所不同,但最终计算机世界中的所有图像都可能被简化为数值矩阵和描述矩阵本身原创 2020-06-11 09:32:51 · 1065 阅读 · 0 评论 -
核心功能(core 模块)
您将了解这个库的基本构建块。为了理解如何在像素级上操作图像,必须阅读。[Mat——基本的图像容器]您将了解如何在内存中存储图片,以及如何将其内容打印到控制台。[如何扫描图像,查找表 和 用OpenCV进行时间测量]您将了解如何使用OpenCV扫描图像(遍历每个图像像素)。另外:使用OpenCV测量时间。[对矩阵的 掩码运算]您将了解如何使用可用的邻域扫描图像,并使用 cv::filter2D 函数对图像 应用 内核过滤器。对图片的操作从文件中读取/写入图像,访问像素,简单操作原创 2020-06-10 17:44:15 · 2986 阅读 · 0 评论 -
Affine Transformations(仿射变换)
英文版原文链接先修教程:Remapping(重映射)下一教程:Histogram Equalization(直方图均衡化)文章目录目标原理什么是仿射变换?我们如何得到一个仿射变换?代码这个程序是做什么的?代码如下所示:解释结果目标此教程我们将学会:使用OpenCV函数 cv::warpAffine 实现简单的重新映射例程。使用OpenCV函数 cv::getRotationMatrix2D 获得一个 2×3 旋转矩阵原理什么是仿射变换?我们如何得到一个仿射变换?代码这个程序是做什原创 2020-05-31 00:02:54 · 450 阅读 · 0 评论 -
OpenCV教程(C++)
本教程旨在搬运官方 OpenCV Tutorials目的有三:一是系统学习OpenCV函数的使用;二是学习系统的教程书写规范;三是学习OpenCV框架系统的底层设计及实现。下面的链接描述了一组基本的OpenCV教程。这里提到的所有源代码都是作为OpenCV常规发行版的一部分提供的,所以在开始复制和粘贴代码之前要进行检查。下面的教程列表是根据GIT存储库中的reST文件自动生成的。OpenCV概述您将学习如何在计算机上安装OpenCV核心功能(core 模块)在这里,您将了解这个库的基.原创 2020-05-30 17:16:23 · 12021 阅读 · 3 评论