OpenCV学习
文章平均质量分 73
针对OpenCV学习的一点总结,进行相关梳理
浩瀚之水_csdn
路漫漫其修远兮,吾将上下而求索,立刻行动,坚持,努立
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【OPENCV】安全类型转换的核心函数详解
在OpenCV中,安全类型转换主要通过两个核心函数实现:cv::saturate_cast<T>()和cv::Mat::convertTo()。cv::saturate_cast<T>()用于将单个值安全转换为目标类型,超出范围的值会被截断到目标类型的最小/最大值,适用于手动处理像素或数值转换的场景。原创 2025-05-20 17:15:53 · 329 阅读 · 0 评论 -
【OPENCV】convertTo函数详解
cv::convertTo 是 OpenCV 中用于矩阵数据类型转换和数值缩放的核心函数,支持自定义线性变换(缩放+偏移)原创 2025-05-20 17:10:00 · 847 阅读 · 0 评论 -
【OpenCV 】copyMakeBorder 详解
cv::copyMakeBorder 是 OpenCV 中用于为图像添加边框的函数,广泛应用于图像处理中的边缘扩展、卷积操作前的边界处理以及图像对齐等场景。函数接受输入图像、输出图像、各边边框宽度、边框类型(如BORDER_CONSTANT、BORDER_REFLECT等)及填充颜色等参数。边框类型决定了填充方式,例如常数填充、镜像填充或复制边缘像素。该函数支持多通道图像,输出图像的尺寸会根据边框宽度自动调整。原创 2025-05-19 08:53:30 · 618 阅读 · 0 评论 -
【OpenCV 】Rect 类详解
cv::Rect 是 OpenCV 中用于表示矩形区域的核心数据结构,广泛应用于图像处理中的区域截取(ROI)、目标检测框和几何运算等场景。其核心成员变量包括矩形的左上角坐标(x, y)、宽度(width)和高度(height)。cv::Rect 提供了多种构造函数,支持通过坐标、尺寸、对角点等方式创建矩形。常用成员函数包括计算面积、判断矩形是否为空、获取角点坐标等。原创 2025-05-19 08:50:07 · 1528 阅读 · 0 评论 -
【OpenCV】cv::Range 类详解
cv::Range 是 OpenCV 中用于表示连续整数序列范围的类,常用于指定矩阵(cv::Mat)的行或列范围,或定义图像处理的操作区域。原创 2025-05-17 06:01:45 · 825 阅读 · 0 评论 -
【OpenCV】cv::exp函数详解
cv::exp 是 OpenCV 中用于对矩阵中的每个元素进行自然指数运算的函数,适用于图像增强、概率计算和机器学习中的激活函数(如 Softmax)。原创 2025-05-17 05:59:14 · 544 阅读 · 0 评论 -
【OPENCV】常用API函数
本文介绍了OpenCV库中常用的图像处理函数及其应用场景,涵盖图像读写与显示、图像处理基础、图像滤波与增强、形态学操作、特征检测与描述、图像分割与轮廓分析、直方图与颜色分析、视频分析、深度学习与模型推理、绘图与标注、矩阵与数学运算等多个方面。原创 2025-04-09 08:16:01 · 825 阅读 · 0 评论 -
深入浅出之OpenCV-Python
是 OpenCV 库的 C++ 实现的 Python 包装器。它利用 NumPy 库进行数值运算,是解决计算机视觉问题的快速原型设计工具。OpenCV-Python 是一个跨平台库,可用于所有操作系统 (OS) 平台,包括 Windows、Linux、MacOS 和 Android。OpenCV 还支持图形处理单元 (GPU) 加速。原创 2024-12-19 14:00:59 · 5226 阅读 · 0 评论 -
【OpenCV】cv::saturate_cast函数详解
cv::saturate_cast 是OpenCV中用于安全类型转换的关键函数,主要用于防止数值溢出。它通过将超出目标数据类型范围的数值“截断”到合法范围内,确保图像处理中的计算准确性和图像质量。原创 2022-04-15 08:52:12 · 2103 阅读 · 0 评论 -
Qt实用技巧:使用OpenCV库操作摄像头拍照、调节参数和视频录制
需求使用OpenCV做功能,播放摄像头(usb和网络),对摄像头设备进行参数调整(亮度、对比度、饱和度、色调、增益、曝光度)调节,拍照和录像。原理使用OpenCV打开摄像头(可打开USB和网路哦摄像头),渲染图像显示,可使用OpenCV属性调整摄像头的各项参数,使用拍照可以将当前图片拍照,使用录像可以从当前时间点开始录像直至停止录像注意目前测试,即使PC上有编码器,但是OpenCV存储mat为对应的录像视频文件失败,出现:录制完视频大小为200多B(基本为0),mp4格式时(转载 2022-03-09 14:04:37 · 7008 阅读 · 0 评论 -
同时读取两个USB摄像头采集
1.OpenCV:VideoCapture同时打开两个摄像头#include <opencv2/opencv.hpp>#include<iostream> using namespace cv;using namespace std; int main(){ //initialize and allocate memory to load the video stream from camera VideoCapture camera0(1..原创 2022-02-18 13:49:08 · 2343 阅读 · 1 评论 -
opencv同时开启两个外接USB摄像头采集图像信息,并设置摄像头输出图像的分辨率
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; int main(){ VideoCapture cap2(2);// 内部参数写0,代表笔记本自带的摄像头,2、1分别代表两个外接USB摄像头 VideoCapture cap1(1); // 设置分辨率 cap2.set(CV_CAP_PROP_FRAME.转载 2022-02-16 11:38:38 · 1840 阅读 · 0 评论 -
【OpenCV】实现 argmax 得到像素点分类
本文介绍了OpenCV中cv::Mat与float数组的互转方法,以及如何实现argmax操作以获取像素分类结果。首先,cv::Mat转float数组时,需确保矩阵内存连续,并通过指针访问数据;float数组转cv::Mat时,可选择深拷贝或浅拷贝。其次,argmax操作用于在多通道浮点矩阵中找到每个像素的最大概率对应的通道索引,生成单通道分类结果。文章还提供了代码示例和关键注意事项,如数据类型匹配、内存连续性、性能优化和分类结果后处理,适用于语义分割等场景。原创 2021-09-06 19:01:28 · 4707 阅读 · 1 评论 -
OpenCV学习笔记之改变图像的对比度和亮度
一、图像对比度和亮度图像对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小。差异范围越大代表对比越大,差异范围越小代表对比越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。韦伯定律(感觉阈值定律):[2]在同种刺激下,人所能感受到的刺激的动态范围正比于标准刺激的强度,K=ΔI/IK...原创 2020-03-14 16:52:34 · 3130 阅读 · 0 评论 -
OpenCV学习笔记之图像融合
一、线性融合操作线性混合操作也是一种典型的二元(两个输入)的像素操作:通过在范围内改变,这个操可以用来对两幅图像或两段视频产生时间上的画面叠化(cross-dissolve)效果,就像在幻灯片放映和电影制作中那样二、操作实践#include <QCoreApplication>#include <iostream>#includ...原创 2020-03-14 16:30:41 · 1193 阅读 · 1 评论 -
OpenCV学习笔记之掩码操作
一、掩码操作 矩阵的掩码操作很简单。其思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。二、操作实践2.1基于像素邻域的掩码操作/*! * \brief myMaskFun * \param srcImage...原创 2020-03-14 16:02:49 · 1907 阅读 · 1 评论 -
OpenCV掩码操作练习
QT += coreQT -= guiCONFIG += c++11TARGET = myOpencvTest1CONFIG += consoleCONFIG -= app_bundleTEMPLATE = appSOURCES += main.cppINCLUDEPATH += C:\OpenCv4.0\include \ C:\Ope...原创 2020-03-14 15:59:49 · 982 阅读 · 0 评论 -
OpenCV扫描图像三种方式练习
在OpenCV中,扫描图像通常指的是逐像素地遍历图像数据。原创 2020-03-14 15:19:23 · 1063 阅读 · 1 评论 -
OpenCV学习笔记之扫描图像
一、图像在内存中存储方式图像矩阵的大小取决于我们所用的颜色模型,确切地说,取决于所用通道数。如果是灰度图像,矩阵就会像这样:而对多通道图像来说,矩阵中的列会包含多个子列,其子列个数与通道数相等。例如,RGB颜色模型的矩阵:注意到,子列的通道顺序是反过来的:BGR而不是RGB。很多情况下,因为内存足够大,可实现连续存储,因此,图像中的各行就能一行一行地连接起来,形成一个长行。连...原创 2020-03-14 15:12:23 · 1398 阅读 · 1 评论 -
OpenCV Mat编程练习
QT += coreQT -= guiCONFIG += c++11TARGET = myOpencvTest1CONFIG += consoleCONFIG -= app_bundleTEMPLATE = appSOURCES += main.cppINCLUDEPATH += C:\OpenCv4.0\include \ C:\Ope...原创 2020-03-03 17:23:29 · 1114 阅读 · 1 评论 -
OpenCV学习笔记之Mat
一. Mat介绍在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建。为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料。但这种方法必须接受C语言所有的不足,这其中最大的不足要数手动内存管理,其依据是用户要为开辟和销毁内存负责。虽然对于小型的程序来说手动管理内存不是问题,但一旦代码开始变得越来越庞大,你需...原创 2020-03-03 17:19:03 · 1243 阅读 · 1 评论 -
OpenCV学习笔记之OpenCV安装
一. Opencv的安装及配置二. Qt框架下使用OpenCV 2.1 在Pro中配置OpenCV 第一种方式:QT += coreQT -= guiCONFIG += c++11TARGET = myOpencvTest1CONFIG += consoleCONFIG -= app_bundleTEMPLATE = app...原创 2020-02-29 14:53:50 · 1493 阅读 · 1 评论 -
Qt使用OpenCV读取图片练习
【代码】Qt使用OpenCV读取图片练习。原创 2020-02-29 12:54:41 · 1547 阅读 · 1 评论 -
Opencv学习笔记之OpenCV介绍
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类,同时提供了Python、Ruby、MATLAB等语言的接口,实现了和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。原创 2020-02-29 10:10:46 · 4441 阅读 · 1 评论 -
OpenCV—图像椒盐噪声生成器
OpenCV—图像椒盐噪声生成器椒盐噪声椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声是指两种噪声,一种是盐噪声(salt noise)盐=白色(255),另一种是胡椒噪声(pepper noise),椒=黑色(0)。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。对于彩色图像,也有可能表现为在单个像素BGR三个通道随机出现的...转载 2018-06-27 16:44:29 · 1763 阅读 · 0 评论 -
OpenCV—中值滤波
中值滤波器中值滤波器是一种非线性滤波器,常用于消除图像中的椒盐噪声。与低通滤波不同的是,中值滤波有利于保留边缘的尖锐度,但它会洗去均匀介质区域中的纹理。椒盐噪声椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声是指两种噪声,一种是盐噪声(salt noise)盐=白色(255),另一种是胡椒噪声(pepper noise),椒=黑色(0)。前者是高灰度噪声,后者属于低...转载 2018-06-27 16:44:44 · 18067 阅读 · 0 评论 -
OpenCV—基本数据结构与示例
OpenCV的基本数据结构及示例OpenCV中强大的Mat类型大家已经比较熟悉了。这里梳理一些在工程中其他经常用到的几种基本数据类型。包括: Vec Scalar Point Size Rect RotatedRect1. Vec类1.1 基本概念 Vec是一个模板类,主要用于存储数值向...转载 2018-06-03 10:06:08 · 444 阅读 · 0 评论 -
OpenCV —数据持久化: FileStorage类的数据存取操作与示例
OpenCV —FileStorage类的数据读写操作与示例OpenCV的许多应用都需要使用数据的存储于读取,例如经过3D校准后的相机,需要存储校准结果矩阵,以方便下次调用该数据;基于机器学习的应用,同样需要将学习得到的参数保存等。OpenCV通过XML/YAML格式实现数据持久化。本文简要梳理了使用FileStorage类进行基本数据持久化操作,给出了示例代码。主要内容包括:FileStorag...转载 2018-06-03 10:04:35 · 649 阅读 · 0 评论 -
DIY一个基于树莓派和Python的无人机视觉跟踪系统
DIY一个基于树莓派和Python的无人机视觉跟踪系统无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配。如果想来点高级的——在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其实视觉跟踪已经在一些高端的消费级无人机上有了应用,不过玩现成的永远没有自己动手来劲;)。前段时间DIY了一个无人机三轴云台的视觉跟踪系统,除去云台花了¥370,本文将设计思路与实验效果分享出来。一、基本...转载 2018-06-03 09:59:46 · 3242 阅读 · 0 评论 -
Win7系统Visual Studio 2013配置OpenCV3.1图文详解
Win7系统Visual Studio 2013配置OpenCV3.1图文详解OpenCV3.1对硬件加速和移动开发的支持相对于老版本都有了较大改进,支持新的开发工具,更易于扩展,配置方式也比以前简单一些。但一直用OpenCV2.4,直到最近准备写点东西才抽出时间更新了一下开发环境:Win7,64bit系统,安装VS2013并配置OpenCV3.1。因为OpenCV3.1只有针对vc12(对应vs...转载 2018-06-03 09:58:48 · 343 阅读 · 0 评论 -
windows环境下的Anaconda安装与OpenCV机器视觉环境搭建
windows环境下的Anaconda安装与OpenCV机器视觉环境搭建本文介绍win7和win10系统下通过Anaconda配置基于python语言的机器视觉编程环境(博主测试了两个系统下的安装基本相同),主要内容包括:Anaconda下载安装OpenCV下载安装测试安装结果1.Anaconda下载与安装1.1 Anaconda简介官方网址:https://www.anaconda.com/An...转载 2018-06-03 09:58:01 · 656 阅读 · 0 评论 -
OpenCV的基本矩阵操作与示例
OpenCV的基本矩阵操作与示例OpenCV中的矩阵操作非常重要,本文总结了矩阵的创建、初始化以及基本矩阵操作,给出了示例代码,主要内容包括:创建与初始化矩阵加减法矩阵乘法矩阵转置矩阵求逆矩阵非零元素个数矩阵均值与标准差矩阵全局极值及位置其他矩阵运算函数列表1. 创建与初始化矩阵1.1 数据类型建立矩阵必须要指定矩阵存储的数据类型,图像处理中常用的几种数据类型如下:[cpp] view plain...转载 2018-06-03 09:56:53 · 1720 阅读 · 0 评论 -
OpenCV学习小记
1.反转图像函数:cv::flip()[cpp] view plain copyvoid flip(InputArray src, OutputArray dst, int flipCode); 参数fipCode: 整数,水平发转;0垂直反转;负数,水平垂直均反转。2.sobel边缘检测函数:cv::sobel()例程:[html] view plain copy//从文件中读入图像 con...转载 2018-05-08 05:49:50 · 228 阅读 · 0 评论 -
Opencv判断是否加载图片的两种方法
加载图片是图像处理最基本的操作,但有的时候我们加载图片会因为图片路径不正确或者没有图片等原因而报错,经常写代码的凭经验就知道是哪错了,但初学者一般是看不懂这些错误,就会很恼火了,如果加个判断语句就会不一样了啥,如果是图片路径的原因而导致加载不到图片,它会在终端显示你要输出的错误信息,这样一看就很清楚了。【方法一】[html] view plain copysrc = imread( "1.jpg...转载 2018-05-08 05:47:33 · 3823 阅读 · 0 评论 -
OpenCV—矩阵数据类型转换cv::convertTo
是 OpenCV 库中的一个函数,用于将图像或矩阵从一种数据类型转换为另一种数据类型,同时可以选择性地应用缩放和偏移。这个函数非常有用,因为它允许你在处理图像数据时,根据需要改变数据的类型,比如从浮点型转换为整型,或者从一种整型转换为另一种整型。打印出的转换后矩阵中的值将是原始浮点数矩阵中的值经过裁剪和类型转换后的结果。可以避免数据溢出的问题,因为它在转换过程中会考虑数据类型的范围。在这个示例中,我们创建了一个3x3的浮点数矩阵,并将其转换为3x3的8位无符号整型矩阵。原创 2018-06-27 16:44:17 · 1302 阅读 · 1 评论 -
OpenCV—形态学运算定义与实现
除了使用常规的规则结构元素,我们也可以自定义结构元素。下面使用Mat类型的构造函数创建一个3×3十字型的结构元素。// 创建自定义结构元素0,1,0,1,1,1,0,1,0//创建自定义矩阵element1//显示该结构元素j原创 2018-06-27 16:44:03 · 1428 阅读 · 0 评论 -
ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7
ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7安装步骤:1.安装cuda9.0:https://blog.youkuaiyun.com/zhuangwu116/article/details/810632342.安装依赖包:sudo apt-get install build-essentialsudo apt-get install python-dev py...转载 2019-08-27 10:55:14 · 651 阅读 · 1 评论 -
Python-OpenCV基本操作cv2
1.图片加载、显示和保存import cv2# 生成图片img = cv2.imread("1.jpg")# 生成灰色图片imgGrey = cv2.imread("1.jpg", 0)# 展示原图cv2.imshow("img", img)# 展示灰色图片cv2.imshow("imgGrey", imgGrey)# 等待图片的关闭cv2.waitKey()...转载 2019-04-17 15:10:01 · 1607 阅读 · 0 评论 -
cvNamedWindow与namedWindow,cvShowImage与inshow的区别
1. 显示窗口大小的改变方法不同。在c版本中,定义一个窗口时用cvNamedWindow.比如说cvNamedWindow(“src”,0);后面的参数为0表示窗口大小可以手动改变,否则窗口的大小是自适应图片大小的。而在c++版本中定义一个窗口用namedWindow.比如说namedWindow(“src”,1);不管后面第二个参数是多少,都不能手动更改窗口的大小,因为它的尺寸...转载 2019-03-27 09:33:58 · 2067 阅读 · 0 评论 -
Opencv、OpenCV2.x、Opencv3.x个版本的进化,与VS各个版本的匹配问题
首相声明,本文章借鉴了其他文章,会给与文章链接。1.opencv 与opencv2.x版本Opencv1.0版本于2006年面世,主要基于C语言。2009年发布opencv2,主要基于C++。此时OpenCV库被划分成多个模块,这些模块被编译成库文件后,位于lib文件夹中。主要有以下模块(版本1的结构见我的这篇blog:http://blog.youkuaiyun.com/lu597203933/art...转载 2019-03-27 09:31:02 · 1206 阅读 · 0 评论
分享