视频和图像处理
文章平均质量分 91
OpenCV图像处理和视频处理入门。
WaitFoF
没有太晚的开始,不如就从今天行动。
总有一天,那个一点一点可见的未来,会在你心里,也在你的脚下慢慢清透。
生活,从不亏待每一个努力向上的人。
展开
-
获取到指向一个缓冲区的指针后,访问缓冲区的值
当获取到指向一个缓冲区的指针后,如何进行遍历获取缓冲区的值?例如:缓存区存放的是一个512*512的单通道的16bit的图片。//指向图片缓冲区的指针void* ptr = Fg_getImagePtrEx(fg, last_pic_nr, camPort, memHandle);可以像访问数组的方式使用指针访问数据//像素数据访问unsigned short int* ptr2 =...原创 2020-03-16 15:39:07 · 1319 阅读 · 0 评论 -
红外图像高低温校正【待补充】
文章目录一、红外图像1. 定义2. 产生机理和特点3. 红外图像优缺点3.1 优点3.2 缺点二、红外图像非均匀性1. 器件自身非均匀性2. 器件工作状态引入的非均匀性3. 与外界输入相关的非均匀性三、红外图像非均匀性校正1. 校正方法1.1 基于定标1.2 基于场景2. 两点校正方法一、红外图像总结:红外图像1. 定义红外遥感器接收地物反射或自身发射的红外线而形成的图像。2. 产生...原创 2021-03-10 15:19:39 · 3507 阅读 · 3 评论 -
NETD概念和计算
文章目录1. 噪声等效温差及其测试方法1.1 噪声等效温差(NETD)定义1.2 信号传递函数(SiTF)1.3 三维噪声模型(3D-Noise)2、NETD参数测试算法实现2.1 NETD测试流程噪声等效温差(NETD)是表征红外成像系统灵敏度的关键参数,也是评估红外成像系统性能的重要参数之一,应用广泛。1. 噪声等效温差及其测试方法1.1 噪声等效温差(NETD)定义NETD的定义是在视场中 产生的输 出信号值 等于噪声 均方根值时的目标和背景之间温度差,也就是系统能够识别的最小信号值。NETD转载 2020-11-26 11:55:49 · 11579 阅读 · 1 评论 -
图像的 SNR 和 PSNR 的计算
文章目录1、图像客观质量评价2、信噪比3、峰值信噪比4、信噪比和峰值信噪比的关系1、图像客观质量评价方法是先计算出被评价图像的某些统计特性和物理参量,最常用的是图像相似度的测量。图像相似度的测量通常是用处理后的图像与原图像之间的统计误差来衡量处理图像的质量,若误差越小,则从统计意义上来说,被评价图像与原图像的差异越小,图像的相似度就越高,获得的图像质量评价也就越高。此种评价方法大多适用于黑白图像及灰度图像的质量评价。常用的图像相似度测量参数有平均绝对误差(ME) 、均方误差(MSE)、归一化均方误差(转载 2020-11-25 21:22:52 · 25289 阅读 · 4 评论 -
COLORMAP_JET的颜色规律
文章目录1. COLORMAP_JET简介2. 灰度到JET的映射2.1 灰度值映射成JET2.2 JET映射规律2.3 c++实现Jet映射关于applyColorMap函数的使用参考:伪彩色:LUT作用与用法1. COLORMAP_JET简介计算机视觉中最常用的颜色映射算法是Jet,它具有高的对比度可以有效突出图像中的细节。但如果仔细观察图像的梯度图会发现一系列的颜色带,在青色和黄色区域最为明显。缺点:这对于伪彩图最大的影响在于颜色变化过于剧烈,将导致人眼对于实际数据的误解。很多平滑过渡原创 2020-11-10 18:35:46 · 26350 阅读 · 4 评论 -
OpenCV——探究Mat何时为空&&初始化Mat
文章目录探究Mat何时为空初始化Mat探究Mat何时为空int main() { Mat a; cout << "Mat a: " << endl; if (a.empty()) { cout << " a is null" << endl; } else { cout << " a is not null" << endl; for (size_t i = 0; i < 10; i++)原创 2020-10-21 21:22:19 · 5322 阅读 · 0 评论 -
海康SDK接口调用的主要流程
SDK接口调用的主要流程:初始化SDK功能:对整个网络SDK系统的初始化,内存预分派等操作。声明BOOL NET_DVR_Init();返回值TRUE表示成功,FALSE表示失败。接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。设置连接超时时间功能这部分为可选,用于设置SDK中的网络连接超时时间,用户可以根据...原创 2020-09-12 20:15:20 · 7125 阅读 · 2 评论 -
如何理解图像深度:8bit、16bit、24bit、32bit; 16.7M色彩
文件格式的角度从文件格式角度看,一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等。图片深度从图片深度来看,图片可以分为8位, 16位, 24位, 32位等。深度右键单击图片属性->详细信息,即可查看图片位深度:像素值说的直白一些,图片可以看成是一个2维数组组成的矩形结构。每个格子里存放的是图片在此坐标处的像素的取值,即这一点的颜色值。像素值范围...原创 2020-03-16 15:16:16 · 96938 阅读 · 2 评论 -
OpenCV视频篇—背景消除与前景ROI提取
文章目录一、背景消除概述二、OpenCV中提供的背景消除法1、背景建模包括两个主要步骤2、基于高斯混合模型GMM实现背景提取3、基于最近邻KNN实现背景提取三、实例一、背景消除概述???? 背景减除(Background Subtraction)是许多基于计算机视觉的任务中的主要预处理步骤。????背景减除(BS)是通过使用静态摄像机来生成前景掩码(即,包含属于场景中的移动对象的像素的二进制图像)的常用...原创 2019-12-25 09:47:20 · 3734 阅读 · 2 评论 -
视频分析——Harris角点检测
文章目录一、角点概念1. 角点定义2. 角点意义3. 角点应用4. 角点检测算法分类????4.1 基于灰度图像的角点检测4.1.1 基于梯度4.1.2基于模板➰ Kitchen-Rosenfeld角点检测算法,➰ Harris角点检测算法、➰ KLT角点检测算法、➰ SUSAN角点检测算法。4.1.3 基于模板梯度组合????4.2 基于二值图像的角点检测????4.3 基于轮廓曲线的角点检测4.3.1 计算角点...原创 2019-12-26 19:35:17 · 756 阅读 · 0 评论 -
OpenCV视频篇——颜色跟踪
一、黑白图片来自:轻舞飞扬在了解色彩空间前,先了解一下黑白图片的形成。用光线对着传感器,从传感器的立场上来看的话,一部分接收到了光线,那么这一部分就是明亮的,一部分没有接收到光线,那么这一部分将会是黑暗的,我们可以视为传感器存在两个通道。如果传感器存在多个通道的话,意思就是说我们将光线进行分类,高能量的,中等能量的,低能量的等等多种分类,传感器对这多种能力进行区分显示出不同的颜色。不...原创 2019-12-19 22:24:25 · 3146 阅读 · 3 评论 -
OpenCV视频篇——VideoCaptureAPIs
VideoCapture API后端标识符。为捕获对象选择首选的API。在VideoCapture :: VideoCapture()构造函数或VideoCapture :: open()中使用。后端仅在使用OpenCV二进制文件构建时才可用。有关更多信息,请参见带有OpenCV概述的视频I / O。C++python说明CAP_ANYPython:cv.CAP_...原创 2019-11-28 21:00:22 · 2653 阅读 · 1 评论 -
OpenCV视频篇——VideoCaptureProperties
VideoCapture通用属性标识符。读/写属性涉及许多层。在此链上可能会发生一些意外的结果。有效行为取决于设备硬件,驱动程序和API后端。C++python说明CAP_PROP_POS_MSECcv.CAP_PROP_POS_MSEC视频文件的当前位置(以毫秒为单位)。CAP_PROP_POS_FRAMEScv.CAP_PROP_POS_FRAMES接下...原创 2019-11-28 20:50:54 · 3053 阅读 · 0 评论 -
二值图像分析—轮廓发现
轮廓轮廓即是以某种方式表示图像中的曲线的点的列表。这种表示可以根据实际的情形不同而不同。表示一条曲线的方式有很多种。OpenCV中,轮廓是由STL风格的vector<>模板对象表示的,其中vector中的每个元素都编码了曲线上的下一点的位置信息。轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果。API介绍findContours...原创 2019-10-29 20:42:31 · 1674 阅读 · 0 评论 -
OpenCV库成员——TermCriteria类
cv::TermCriteria类定义迭代算法终止条件的类。可以通过默认构造函数对其进行初始化,然后覆盖任何参数,或者可以使用带参数的构造函数对结构进行完全初始化。1. 公有类型enum Type { COUNT =1, MAX_ITER =COUNT, EPS =2}2. 公有成员函数1. 默认构造和有参构造cv::TermCriteria::TermCr...原创 2019-12-19 21:45:24 · 3074 阅读 · 0 评论 -
OpenCV库成员——VideoWriterProperties
VideoWriter通用属性标识符。c++python说明IDEOWRITER_PROP_QUALITYcv.VIDEOWRITER_PROP_QUALITY编码视频流的当前质量(0…100%)。可以在某些编解码器中动态调整。VIDEOWRITER_PROP_FRAMEBYTEScv.VIDEOWRITER_PROP_FRAMEBYTES(只读):刚编码的视...原创 2019-12-16 14:47:52 · 779 阅读 · 0 评论 -
OpenCV库成员——VideoCapture类和VideoWriter类
前面已经提到过一部分的视频读写:OpenCV–012:视频读写OpenCV视频I/O概述OpenCV视频I/O模块是一组用于读取和写入视频或图像序列的类和功能。基本上,该模块将cv :: VideoCapture和cv :: VideoWriter类作为2层接口提供给许多用作后端的视频I / O API。某些后端,例如(DSHOW)Direct Show,Windows视频(VFW)...原创 2019-12-16 15:49:55 · 3538 阅读 · 0 评论 -
OpenCV视频篇——背景/前景提取
文章目录一、背景提取1. 基于像素分类的背景分析方法2. 背景建模的方法步骤二、背景提取的算法一、背景提取OpenCV中支持的两种背景提取算法都是基于模型密度评估,然后在像素级对图像进行前景与背景分类的方法,它们具有相同的假设前提 – 各个像素之间是没有相关性的,跟它们算法思想不同的方法主要是基于马尔可夫随机场理论,认为每个像素跟周围的像素是有相关性关系,但是基于马尔可夫随机场的方法速度与执行...原创 2019-12-22 22:27:38 · 5899 阅读 · 1 评论 -
OpenCV视频篇——视频编解码:理论基础
转发自: 追随技术WithPassion文章目录一、介绍1. 为什么要进行视频压缩?2. 为什么可以压缩?3. 数据压缩分类4. 编解码器5. 压缩系统的组成6. 编解码器的实现7. 视频编码标准8. 视频传输9. 视频传输面临的问题10. 视频传输差错控制11. 视频传输的QoS参数二、数字视频1. 图像与视频2. 数字视频3. 空间采样4. 数字视频系统5. 人类视觉系统HSV6. 数字视频...转载 2019-12-18 22:55:32 · 836 阅读 · 0 评论 -
OpenCV视频篇——YCrCb与YUV
目录一、HEVE标准二、YCbCr三、YUV和YCrCb区别一、HEVE标准在HEVC标准中,RGB空间首先在encoder(编码)处,被转换为YCbCr颜色空间作为输入,经过压缩,最后还原成图像时,再次转换回RGB空间(值得注意的是,标准化软件中并不提供这个转换的功能,这是属于Preprocessing(在encoder)或者Proprocessing (在decoder))。HEVE压...原创 2019-12-18 17:09:46 · 1743 阅读 · 0 评论 -
OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分
目录一、前言二、视频文件格式(文件格式)三、视频封装格式(视频格式)1、AVI2、QuickTime3、高级流格式文件4、RealVideo5、NAVI6、DivX7、MPEG四、视频编码1、MPEG系列2、H.26X系列五、音频编码六、视频像素编码七、音频采样数据一、前言 什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片。那电...原创 2019-12-18 14:10:19 · 1296 阅读 · 2 评论 -
OpenCV视频篇——从.JPG到.AVI:视频编码最强入门科普
本文作者: 小枣君。出处: 虎嗅网。原文链接:https://www.huxiu.com/article/263561.html大家好,我是小枣君。作为一名屌丝创业者,前几天我追了一部美剧。剧名大家可能都听过,就是《硅谷》。剧里主要讲述的,是一群美国硅谷年轻人的创业故事。我觉得挺好看的,一口气追完了(貌似后面还会更新)。同为创业者,对里面的剧情非常有感触。今天这篇文章,并不是打算...转载 2019-12-17 20:59:55 · 1215 阅读 · 1 评论 -
OpenCV视频篇——码流 / 码率 / 比特率 / 帧速率 / 分辨率
目录 一、I、P、B 帧三种帧的说明 二、GOP(Group of picture)三、CABAC/CAVLC1.CABAC2. CAVLC四、DTS、PTS 的概念五、码流(码率)六、采样率七、音频采样率八、比特率常见编码模式 ==VBR(Variable Bitrate)动态比特率====ABR(Average Bitrate)平均比特率====CBR(Constant Bitrate)常数...转载 2019-12-17 20:33:56 · 9982 阅读 · 0 评论 -
图像透视变换应用
简介透视变换是将成像投影到一个新的视平面,也称作投影映射。投影变换是三维空间上的非线性变换,可看做是仿射变换的更一般形式,简单讲即通过一个3x3的变换矩阵将原图投影到一个新的视平面(Viewing Plane),在视觉上的直观表现就是产生或消除了远近感。OpenCV透视变换的透视变换 1、warpPerspective利用透视矩阵对图像进行透视变换。说明OpenCV提供了warp...原创 2019-11-26 23:27:21 · 2934 阅读 · 0 评论 -
图像去水印/修复
实际应用中,我们的图像常常会被噪声腐蚀,这些噪声可能是划痕,涂鸦等。或者图像的部分本身已经损毁。这就需要对图片进行还原。 图像的修复原理:利用那些已经被破坏的区域的边缘,即边缘的颜色和结构,根据这些图像留下的信息去推断被破坏的信息区域的信息内容,然后对破坏区进行填补,以达到图像修补的目的。 OpenCV中的两种修复算法1、inpaint函数说明使用区域邻域恢复图像中的选定区域。...原创 2019-11-24 18:06:31 · 3100 阅读 · 5 评论 -
二值图像分析—提取最大轮廓与编码关键点
基本操作:读取图片图片灰度化图片二值化图片形态学——闭操作提取轮廓筛选最大的轮廓——根据轮廓面积绘制轮廓关键点与轮廓void getMaxContourAndContourPoint(Mat &src) { //2. 图片灰度化 Mat gray; cvtColor(src, gray, COLOR_BGR2GRAY); //3. 图片二值化 Mat bin...原创 2019-11-22 22:52:51 · 1252 阅读 · 0 评论 -
图像形态学——击中击不中
击中击不中变换击中击不中变换是形状检测的一个基本工具。设X为目标图像,B为结构元素,且B由两个不相交的部分B1B_1B1和B2B_2B2组成,即B=B1∪B2B=B_1∪B_2B=B1∪B2,且B1∩B2=ϕB_1∩B_2=\phiB1∩B2=ϕ。则目标图像X被结构元素B击中的数学表达式:X⊗B={x∣(B1)x⊆X,(B2)x⊆Xc}X \otimes B= \{x|(B_1)...原创 2019-11-22 20:26:40 · 3512 阅读 · 0 评论 -
图像形态学—用基本梯度实现轮廓分析
基本的步骤:图像形态学梯度灰度转化全局阈值二值化轮廓分析void morphologyEx_gradient(Mat& src) { //1. 图像形态学梯度 Mat kernel, gradient_Img; kernel=getStructuringElement(MORPH_RECT, Size(3, 3)); morphologyEx(src, gradie...原创 2019-11-17 20:32:12 · 1184 阅读 · 0 评论 -
图像形态学1——前导知识
前导知识1、getStructuringElement函数——获取结构化元素这些形态学操作都涉及到一个关键的因子——结构元。结构元基本的形态是矩形、十字形或椭圆形(圆形)。结构元素就相当于我们在滤波中所涉及到的模板,也就是说它是一个给定像素的矩阵,这个矩阵可以是任意形状的,但是一般情况下都是正方形,圆形或者菱形的。但是在结构元素中有一个中心点(也叫做anchor point)。和模板中心一样...原创 2019-11-17 14:06:13 · 437 阅读 · 0 评论 -
图像形态学2——膨胀、腐蚀、开、闭、顶帽、黑帽、梯度运算
形态学形态学(morphology)常应用在生物学中,研究动植物的形态和结构;图像形态学即数学形态学(Mathematical morphology)是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论;常见图像形态学运算:腐蚀、膨胀、开运算、闭运算、骨架抽取、极线腐蚀、击中击不中变换、Top-hat变换、颗粒分析、流域变换、形态学梯度等;膨胀、腐蚀、开、闭运算是数...原创 2019-11-17 14:11:18 · 1616 阅读 · 0 评论 -
二值图像分析—霍夫圆检测
经典霍夫圆变换的原理霍夫圆变换和霍夫线变换的原理类似。霍夫线变换是两个参数(r,θ),霍夫圆需要三个参数,圆心的x,y坐标和圆的半径。如下对应的三个参数c1,c2,c3。例如:其形状和类似,该函数是由z=x沿z轴旋转而成的圆锥曲面。对于xy平面的一个点x0,y0(上述对应的点为(1,1)),则对应的由c1,c2,c3组成三维空间的空间曲面。对于c1,c2,c3平面的一个点,则对应的...原创 2019-11-17 13:58:04 · 4986 阅读 · 2 评论 -
二值图像分析—霍夫直线检测
霍夫变换霍夫变换是图像处理中的一种特征提取技术,可以识别图像中的几何形状。它将图像空间中的特征点映射到参数空间进行投影,通过检测累计结果的局部极值点得到一个符号某特定形状的点的集合。经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。它的抗噪声、抗形变能力较强。另一种直线提取的方法是对图像边缘点进行链码追踪,在得到的链码串中提取直线。霍夫变换将在一个空间中具有...原创 2019-11-16 22:36:04 · 2716 阅读 · 0 评论 -
二值图像分析—点多边形测试、寻找最大内接圆
测试一个点是否在给定的多边形内部,边缘或者外部。OpenCV提供的API说明函数确定是否给定的点在轮廓的外部或者内部或者在边缘线上。函数返回正数(点在轮廓内部)、负数(点在轮廓外部)、零(点在边缘上)。当measureDist参数设定为false,返回值为+1、-1、0。否则,返回值为点与最邻近轮廓点的距离。声明double pointPolygonTest( InputArr...原创 2019-11-10 22:34:47 · 895 阅读 · 1 评论 -
二值图像分析–直线拟合与极值点寻找
在图像的处理中,会遇到一种情况,根据给定的点集(比如轮廓)拟合出一条直线的情景。1.最小二乘法拟合直线最小二乘法多项式直线拟合,根据给定的点,求出它的函数 y=f(x)y=f(x)y=f(x),当然求得准确的函数是不太可能的,但是我们能够求出它的近似曲线 y=φ(x)y=φ(x)y=φ(x)。原理:假如有点I = 1,2,3,……n,求近似曲线 y=φ(x)y=φ(x)y=φ(x),并且使...原创 2019-11-10 21:37:50 · 2297 阅读 · 0 评论 -
二值图像分析—凸包检测
凸包概念在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。 包含点集合S中所有点的最小凸多边形称为凸包(Convex Hull)。凸包(Convex Hull)是一个计算几何(图形学)中常见的概念。数学定义:在一个向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形。在图像处理过程中,我们常常...原创 2019-11-09 16:35:30 · 4391 阅读 · 6 评论 -
二值图像分析—Hu矩实现轮廓匹配
在OpenCV中,可以很方便的得到Hu不变距,Hu矩在图像旋转、缩放、平移等操作后,仍能保持矩的不变性,所以有时候用Hu不变距更能识别图像的特征。Hu矩由于具有尺度、旋转、平移不变性,可以用来做匹配。Hu不变矩主要是利用归一化中心矩构造了7个不变特征矩,由二阶矩和三阶矩可以导出7个不变矩:opencv中计算Hu矩函数说明该函数计算7个Hu不变量。这些值被证明对图像比例,旋转和反射...原创 2019-11-08 20:27:48 · 3672 阅读 · 3 评论 -
二值图像分析—用几何矩计算轮廓中心与横纵比过滤
矩是描述图像特征的算子,如今矩技术已广泛应用于图像检索和识别 、图像匹配 、图像重建 、数字压缩 、数字水印及运动图像序列分析等领域。常见的矩描述子可以分为以下几种:几何矩、正交矩、复数矩和旋转矩。其中几何矩提出的时间最早且形式简单,对它的研究最为充分。几何矩对简单图像有一定的描述能力,他虽然在区分度上不如其他三种矩,但与其他几种算子比较起来,他极其的简单,一般只需用一个数字就可表达。所以,一般...原创 2019-11-06 21:31:43 · 1505 阅读 · 0 评论 -
二值图像分析 –使用轮廓逼近-圆、椭圆、矩形
说明以指定的精度逼近多边形曲线。函数cv :: approxPolyDP用一条具有较少顶点的曲线或多边形逼近一条曲线或多边形,以使它们之间的距离小于或等于指定的精度。它使用Douglas-Peucker算法声明void approxPolyDP( InputArray curve, OutputArray approxCurve, double epsilon,...原创 2019-11-01 21:08:16 · 1581 阅读 · 0 评论 -
二值图像分析—轮廓最小外接矩形
OpenCV中最小外接矩形说明brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set.查找包含输入二维点集的最小区域的旋转矩形。该函数计算并返回指定点集的最小区域边界矩形(可能已旋转)。开发人员应记住,当数据接近包含Mat元素的边界时,返回的RotatedRect可以包含负...原创 2019-10-30 17:11:27 · 5851 阅读 · 6 评论 -
二值图像分析—轮廓正外接矩形
OpenCV中轮廓外接矩形1. 轮廓正外接矩形——boundingRect()说明计算点集或灰度图像的非零像素的右边界矩形。该函数为指定的点集或灰度图像的非零像素计算并返回最小的垂直边界矩形。声明Rect boundingRect( InputArray array );参数array:输入2维点集,可以是std :: vector或Mat类型。返回:Rect类矩...原创 2019-10-29 23:08:49 · 2138 阅读 · 0 评论