Opencv
文章平均质量分 76
阿法哥哥
这个作者很懒,什么都没留下…
展开
-
【OpenCV】直方图以及灰度直方图C++的实现
什么是灰度直方图:在数字图像处理中,灰度直方图是一种计算代价非常小但很有用的工具,它概括了一幅图像的灰度级信息。灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。c++代码如下:Mat calcGrayHist(const Mat & image){ Mat histogram = Mat::zeros(Size(256,1),CV_32SC1);...原创 2019-01-18 17:36:46 · 8534 阅读 · 1 评论 -
【QT】 事件
介绍QT Event以及Event Filter事件处理的内容1.手动发送事件流程:(1)构造自己的事件对象: QEvent *evt = new QEvent(QEvent::Close);(2)发送给指定的对象 QApplication::sendEvent(this,evt);2.定制某个控件的事件处理:(1)确定需要对哪些控件的哪些事件,通常的close以及K...原创 2019-01-09 12:45:31 · 131 阅读 · 0 评论 -
【OpenCV】对比度增强之直方图均衡化(全局)
直方图均衡化属于数字图像处理中灰度变换(intensity transformation)的内容,灰度变换的目的就是找到一个合适的映射函数s=T(r)(r)(r).将原图像的灰度值映射到新的图像中,已达到优化图像的目的。直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像...原创 2019-01-31 16:44:51 · 2789 阅读 · 0 评论 -
【OpenCV】阈值分割之自适用阈值
在不均匀照明或者灰度值分布不均匀的情况下,如果使用全局阈值分割,那么得到的分割效果往往不理想。想到的策略是针对每一个位置的灰度值设置一个对应的阈值,而该位置阈值的设置也和其邻域有必然的关系。在对图像进行平滑处理时,均值平滑、高斯平滑、中值平滑用不同规则计算出以当前像素为中心的邻域内的灰度“平均值”,所以可以使用平滑处理后的输出结果作为每个像素设置阈值的参考值。在自适应阈值处理中,平滑算子的尺寸...原创 2019-01-29 10:30:09 · 586 阅读 · 0 评论 -
【OpenCV】对比度增强之线性变换
原理讲解输入的图像为I,宽为W,高为H,输出图像记为O,图像的线性变换可以利用以下公式定义:当a=1,b=0时,O为I的一个副本;如果a>1则输出图像O的对比度比I有所增大;如果0<a<1,则O的对比度比I有所减小;而b值的改变,影响的是输出的亮度,当b>0时,亮度增加;当b<0时,亮度减小。举例:假设图像的灰度级范围是[50,100],通过a=2,b=...原创 2019-01-23 13:57:24 · 2558 阅读 · 1 评论 -
【OpenCV】对比度增强之直方图正规化(归一化)
假设输入图像为I,高为H、宽为W,I(r,c)代表I的第r行第c列的灰度值,将I中出现的最小灰度级记为Imin,最大灰度级记为Imax,即I(r,c)\varepsilon[Imin,Imax],为使输出图像O的灰度级范围为[Omin,Omax],I(r,c)和O(r,c)做以下映射关系:O(r,c)=\frac{Omax-Omin}{Imax-Imin}(I(r,c)-Imin)+Omin其...原创 2019-01-29 15:41:50 · 1634 阅读 · 0 评论 -
OpenCV矩阵之一平均值、方差、协方差、特征向量
在普通的几何空间里,向量是一个带方向和大小的量,但一旦建立了坐标系,向量就与有序数组(x,y,z)对应起来了。这样的3维有序数组(x,y,z)就是一个向量,但也可以说是一个一行三列的矩阵。 矩阵的每一行(列)都构成行(列)向量。对矩阵施行初等行变换,实质是行向量的线性运算。线性方程组解的结构涉及到解向量的线性组合,而解向量的读取又与矩阵的列向量密切相关。 注意,协方差矩阵是一个对称矩阵,在计...原创 2019-02-21 10:58:07 · 5079 阅读 · 0 评论 -
【OpenCV】findContours()和drawContours轮廓的查找和绘制
函数DrawContours用于绘制出findContours所找到的多个轮廓。void drawContours(InputOutputArray image,InputArrayOfArrays contours,int contourIdx,const Scalar&amp;amp;amp; colot,int thickness=1,int lineType=8,InputArray hierarchy...原创 2018-12-17 14:17:17 · 1610 阅读 · 0 评论 -
阈值分割介绍
当人观察景物时,在视觉系统中对景物进行分割的过程是比不可少的,这个过程非常有效,以至于人所看到的并不是复杂的场景,而是一些物体的集合体。该过程用数字图像处理描述,就是把图像分成若干个特定的、具有独特性质的区域,每一个区域代表一个像素的集合,每一个集合又代表一个物体,而完成该过程的技术通常称为图像分割,它是图像处理到图像分析的关键步骤。图像的分割主要有:基于阈值的分割方法、基于区域的分割方法、基于边...原创 2018-11-15 14:05:19 · 9046 阅读 · 1 评论 -
几何形状(轮廓)的检测和拟合
当我们绘制一个多边形或进行形状分析时,通常需要使用多边形逼近一个轮廓,使顶点数变少。Opencv实现了其中两种逼近方法:1.函数CV::approxPolyDP()进行多边形逼近void cv::approxPolyDP(cv::InputArray curve, //Array or vector of 2-dimensional pointscv::outputArray...原创 2018-11-21 11:31:30 · 5956 阅读 · 0 评论 -
【OpenCV】Hough变换
Hough(霍夫)变换是一种用于检测线、圆或者图像中其它简单形状的方法。最初Hough变换是一种线变换,这是一种相对较快的检测二值图像中直线的方法。Hough线变换的基本理论是:二进制图像中的任何点都可能属于某些可能的线。如果我们将每一条线参数化,如斜率为a,截距为b,原始图像中的点就可以转换为对应于通过该点的所有线在该平面(a,b)中的点的轨迹。当然也可能是一部分轨迹。如果我们将原图中每个非0...原创 2018-11-22 14:06:17 · 1182 阅读 · 1 评论 -
点到多边形(轮廓)的距离
点集可以围成一个封闭的轮廓,那么空间中任意一点和这个轮廓无非有三种关系:点在轮廓内、点在轮廓上、点在原创 2018-11-20 09:05:31 · 7533 阅读 · 0 评论 -
【OpenCV】图像的矩与轮廓匹配
期望、方差、协方差在数学上都是矩。矩是描述图像特征的算子。常见的矩描述自可以分为以下几种:几何矩、正交矩、复数矩和旋转矩。图像的几何矩,这里的图像指的是单同道,也就是灰度图像。我们把图像可以看成是一个平板的物体,每个像素点的值看成是该处的密度。对某点求期望就是该图像在该点处的矩。我们一般说图像矩,指的是原点矩。一阶矩和零阶矩就可以计算某个形状的重心,而二阶矩就可以拿来计算形状的方向。在一定条...原创 2018-12-10 16:16:25 · 1280 阅读 · 1 评论 -
OPENCV函数杂谈
并不是所有格式的Mat型数据都能被使用保存为图片,目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。convertTo()函数负责转换数据类型不同的Mat,即可以将类似float型的Mat转换到imwrite()函数能够接受的类型;cvtColor()函数是负责转换不同通道的M...原创 2019-07-24 15:35:11 · 162 阅读 · 0 评论