图像基础 颜色通道 RGB图像有4个默认通道:红色、绿色和蓝色各有一个通道,以及一个用于编辑图像复合通道(主通道) 彩色深度 8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。 16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。 24位真彩色,每个像素所能显示的彩色数为24位,即2的24次方,约1680万种颜色。 32位真彩色,即在24位真彩色图像的基础上再增加一个表示图像透明度信息的Alpha通道。 Alpha通道:一张图片的透明和半透明度 CV_8UC3系列解读 CV_<bit_depth>(S|U|F)...

什么是色彩模型 颜色模型指的是某个三维颜色空间中的一个可见光子集,它包含某个色彩域的所有色彩。一般而言,任何一个色彩域都只是可见光的子集,任何一个颜色模型都无法包含所有的可见光(通俗一点讲就是表示颜色的一种方式) RGB模型 在计算机体系中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,主要是易于实现RGB三原色的组合表达各种颜色方便屏幕显示。学过物理的我们应该知道,可见光谱是连续的,而三原色RGB混合能形成其他的颜色,并不是说物理上其他颜色的光是由三原色的光混合形成的,每种单色光都有自己独特的光谱,如黄光是一种单色光,但红色与绿色混合能形成黄色,原因是人的感官系...

  Jk5625xsZPHl   2023年11月02日   61   0   0 ios颜色空间图像处理

HSV颜色模型 HSV模型 HSV(Hue,Saturation,Value)根据颜色直观特性创建的一种颜色空间,也称六角锥体模型(HexconeModel),参数分别为色调(H),饱和度(S),明度(V) 色调H 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°; 饱和度S 饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为...

  Jk5625xsZPHl   2023年11月02日   77   0   0 #includeiosOpenCV颜色空间

常用类型介绍 uchar类型 typedefunsigneduint; typedefsignedcharschar; typedefunsignedcharuchar; typedefunsignedshortushort; Vec系列 Vec+数字+字母:CSTLvector容器类似 数字:Vec的长度 字母:类型 b:uchar s:short w:ushort i:int f:float d:double typedefVec<uchar,2>Vec2b; typedefVec<uchar,3>Vec3b; typedefVec<ucha...

  Jk5625xsZPHl   2023年11月02日   41   0   0 成员函数i++c++OpenCV像素点

参与算术运算图像的数据类型、通道数目、大小必须相同 算术运算 加法:add voidadd(InputArraysrc1,InputArraysrc2,OutputArraydst,InputArraymask=noArray(),intdtype=-1); / src1: 输入图1 src2: 输入图2 dst: 输出图 mask: 遮罩像素可有可无 dtype: 输出图深度可有可无 / 减法:subtract voidsubtract(InputArraysrc1,InputArraysrc2,OutputArraydst,InputArraymask=...

  Jk5625xsZPHl   2023年11月02日   48   0   0 #includeiosidec++OpenCV

绘线 voidline(InputOutputArrayimg,Pointpt1,Pointpt2,constScalar&color,intthickness=1,intlineType=LINE_8,intshift=0); //线的样式 enumLineTypes{ FILLED=-1, LINE_4=4,//!<4-connectedline LINE_8=8,//!<8-connectedline LINE_AA=16//!<antialiasedline }; / img: 绘制在那个图像上 pt1: 起点 pt2: 终点 ...

  Jk5625xsZPHl   2023年11月02日   33   0   0 #include高斯滤波OpenCVsed

鼠标事件响应 voidsetMouseCallback(constString&winname,MouseCallbackonMouse,voiduserdata=0); / winname: 监听窗口名称 onMouse: 鼠标事件回调函数 userdata: 递给回调函数的可选参数 / 鼠标事件回调函数 typedefvoid(MouseCallback)(intevent,intx,inty,intflags,voiduserdata); //MouseCallbackonMouse voidonMouse(intevent,intx,inty...

  Jk5625xsZPHl   2023年11月02日   46   0   0 回调函数右键鼠标事件OpenCV

opencv里对视频的编码解码等支持并不是很良好,所以不要希望用opencv做多媒体开发,opencv是一个强大的计算机视觉库,而不是视频流编码器或者解码器。希望大家不要走入这个误区,可以把这部分简单单独看待。而且生成的视频文件不能大于2GB,而且不能添加音频。如果想搞音视频处理可以使用FFmpeg库。 视频读取 opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,类如下 classCV_EXPORTS_WVideoCapture { public: VideoCapture(); explicitVideoCapture(constString&filen...

  Jk5625xsZPHl   2023年11月02日   64   0   0 #includeiosideOpenCV

滑动条(Trackbar)是opencv动态调节参数特别好用的一种工具,虽然看起来着实有点丑 滑动条创建函数 intcreateTrackbar(constString&trackbarname,constString&winname,intvalue,intcount,TrackbarCallbackonChange=0,voiduserdata=0); / trackbarname: 滑动条名字 winname: 依附窗口名 value: 滑块位置 count: 滑块最大值(最小值是0) onChange: 滑块回调函数...

  Jk5625xsZPHl   2023年11月02日   49   0   0 #include回调函数滑块OpenCV

模糊原理 Smooth/Blur是图像处理中最简单和常用的操作之一 使用操作的原因之一就是为了给图像预处理时候减低噪声 图像噪声是指存在于图像数据中的不必要的或多余的干扰信息 Smooth/Blur操作原理是数学的卷积运算,根据不同卷积运算公式,划分了多种图像滤波方式 图像滤波:指的是在尽量保留图像特征的条件下对目标图像得噪声进行抑制 均值滤波 均值方程 计算过程 在6x6像素表中,3x3的卷积算子从图一所示的红色像素开始卷积,依次从左至右,从上至下。取黄色像素值之和的平均值赋给红色像素,则红色像素为卷积之后的新像素。由此每次移动一个像素。显然,计算平均值时,取值范围越大,"模...

什么是阈值 阈值又叫临界值,是指一个效应能够产生的最低值或最高值。实际上是基于图片亮度的一个黑白分界值,默认值是50%中性灰,即128,亮度高于128(<50%的灰)的会变白,低于128(>50%的灰)的会变黑。从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体)。这样的图像分割方法是基于图像中物体与背景之间的灰度差异,而且此分割属于像素级的分割。为了从一副图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。(注意:阈值的选取依赖于具体的问题。即:物体在不同的图像中有可能会有不同的灰度值)。 阈值化分类...

膨胀与腐蚀是数学形态学在图像处理中最基础的操作。其卷积操作非常简单,对于图像的每个像素,取其一定的邻域,计算最大值/最小值作为新图像对应像素位置的像素值。其中,取最大值就是膨胀,取最小值就是腐蚀。膨胀与腐蚀能实现多种多样的功能,主要如下: 消除噪声 分割出独立的图像元素,在图像中连接相邻的元素。 寻找图像中的明显的极大值区域或极小值区域 求出图像的梯度 图像梯度计算的是图像变化的速度 形态学概述 形态学一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。而我们图像处理中指的形态学,往往表示的是数学形态学。下面一起来了解数学形态学的概念。数学形态学是一门建立在格论和拓扑学基础...

  Jk5625xsZPHl   2023年11月02日   34   0   0 #include数学形态学图像处理

图像连通区域 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包含一个像素值,因此为了防止像素值波动对提取不同连通域的影响,连通域分析常处理的是二值化后的图像。 邻域 邻域即相邻得区域,opencv中有以下两种形式得领域 4-邻域:必须在水平和垂直方向上相邻,相邻的两个像素坐标必须只有一位不同而且只能相差1个像素 8-邻域:九宫格形式,相邻的两个像素坐标必须只有一位不同而且...

  Jk5625xsZPHl   2023年11月02日   60   0   0 #include邻域连通域OpenCV

凸包 凸包指如果在集合A内连接任意两个点的直线段都在A的内部,则称集合A是凸形的。简单点理解,就是一个多边型,没有凹的地方。凸包(凸壳)能包含点集中所有的点,凸包检测常应用在物体识别、手势识别及边界检测等领域。一个轮廓可以有无数个包围它的外壳,而其中表面积最小的一个外壳,就是凸包。 凸包绘制步骤 图像灰度处理 灰度图二值化处理 轮廓检测得到候选点 凸包API调用,筛选可用点 绘制显示 API介绍 voidconvexHull(InputArraypoints,OutputArrayhull,boolclockwise=false,boolreturnPoints=true); / ...

  Jk5625xsZPHl   2023年11月02日   52   0   0 #include插值点集

在分析图像、物体和视频信息的时候,我们经常用直方图来表达我们关注的信息。直方图在计算机视觉中应用广泛。例如,通过判断帧与帧之间边缘和颜色的统计量是否出现巨大变化,来检测视频中场景的变换。在数字图像处理中,通常使用的是灰度直方图,灰度直方图是一种计算代价非常小但很有用的工具,它概括了一幅图像的灰度级信息。灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。直方图分布较广较均匀的图像对比度高,视觉效果好。 API介绍 voidcalcHist(constMatimages,intnimages,constintchannels,InputArraymask,Outp...

  Jk5625xsZPHl   2023年11月02日   63   0   0 #include高斯金字塔OpenCV直方图

边缘(edge)是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。图像强度的显著变化可分为: 阶跃变化函数,即图像强度在不连续处的两边的像素灰度值有着显著的差异 线条(屋顶)变化函数,即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值 图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈.边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。 ab分别是阶跃函数和屋顶函数的三维图像 cd是阶跃和屋顶函数的函数二维图像 ef...

  Jk5625xsZPHl   2023年11月02日   36   0   0 #includeciOpenCV差分

角点检测(CornerDetection)是计算机视觉系统中用来获取图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中,也称为特征点检测。角点检测被定义为两条边的交点,更严格的说法是,角点的局部领域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。 Harris角点检测 计算过程 角点检测中使E(u,v)E(u,v)的值最大。利用一阶泰勒展开有: 可用sobel算子计算,推导过程如下: M...

亚像素级角点检测 数字图像通常是离散化成像素;每个像素对应一个整数坐标位置;整数坐标位置对于很多应用并不精确,比如跟踪、相机标定、图像配准、图像拼接以及三维重构;为达到有些应用的精确性,需要精确到浮点坐标位置;所以亚像素定位问题。亚像素定位就是计算特征所在图像中的真实位置,而真实位置有时候并不在像素所在整数坐标位置上,而是在像素的内部。 计算过程 插值 基于图像矩阵计算 曲线拟合 左图中点p附近的图像是均匀的,其梯度为0,右图中边缘的梯度与沿边缘方向的q-p向量正交,p点梯度与q-p向量的点积均为0 我们假设起始角点q在实际亚像素角点的附近。检测所有的q-p向量。若点p位于一个均匀区域,...

  Jk5625xsZPHl   2023年11月02日   61   0   0 #include角点i++OpenCV

LBP描述 LBP(LocalBinaryPattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T.Ojala,M.Pietikäinen,和D.Harwood在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征 计算过程 原始的LBP算子定义为在3\3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3\3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的L...

  Jk5625xsZPHl   2023年11月02日   83   0   0 #include角点特征点

FAST(featuresfromacceleratedsegmenttest)是基于⾓点检测的图像特征,是公认的比较快速的特征点检测方法,只利用周围像素比较的信息就可以得到特征点,简单,有效。很多传统的算法都很耗时,而且特征点检测算法只是很多复杂图像处理里中的第一步,得不偿失。FAST算法思想是若某像素与其周围领域内足够多的像素点相差较大,则该像素可能是角点 FAST算法大致流程 确定候选角点 非极大值抑制 API介绍 staticPtr<FastFeatureDetector>create(intthreshold=10,boolnonmaxSuppression=tru...

  Jk5625xsZPHl   2023年11月02日   126   0   0 #include角点特征点
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~