opencv
opencv
HySmiley
程序猿的视界
展开
-
仿射变换实现
仿射变换本质是一个2* 3的矩阵M将...原创 2022-04-04 23:59:53 · 2840 阅读 · 0 评论 -
重映射、仿射变换、直方图均衡化
重映射:把一幅图像中某位置的像素放置到另一个图片指定位置的过程。完成映射过程,需要获得一些插值为非整数像素的坐标,源图像与目标图像不是一一对应的。原创 2017-05-26 10:19:23 · 633 阅读 · 0 评论 -
opencv2+opencv3+VS2013
由于高版本软件内容丰富且源代码优化便于操作,但是也往往舍弃低版本某些库文件。opencv3中库文件中丢掉了opencv_nonfree2410d.lib 文件,无法调用特征检测算子(SIFT、SURF、ORB等)。 本篇介于不想卸载高版本又可以使用低版本的opencv方法。我的原版本是VS2013+opencv3.0 步骤:1、同高版本一样的安装方法,网上有很多原创 2017-08-12 20:34:56 · 555 阅读 · 0 评论 -
图像处理中的傅里叶变换
傅立叶变换在图像处理中有非常重要的作用。因为不仅傅立叶分析涉及图像处理很多方面,傅立 叶改进算法,比如离散余弦变换,gabor与小波在图像处理中也有重要的分量。傅立叶变换在图像处理的重要作用: 1.图像增强与图像去噪 绝 大部分噪音都是图像的高频分量,通过低通滤波器来滤除高频——噪声; 边缘也是图像的高频分量,可以通过添加高频分量来增强原始图像的边缘; 2.原创 2017-04-15 19:34:01 · 75662 阅读 · 1 评论 -
计算机视觉(一)
大多数常用的OpenCv函数都在cv2模块内,cv2并非指OpenCv2.x.x,是指该模块引入了一个跟好的API接口一、二维Numpy创建图像cvtColor:格式转换def cvtColor(src, code, dst=None, dstCn=None): pass#coding:utf-8#绝对路径是使用的是‘/’from cv2 import *i原创 2017-12-22 20:19:55 · 1675 阅读 · 0 评论 -
计算机视觉(二)
捕获摄像头的帧 VideoCapture类可以获得摄像头的帧流。但对摄像头而言,通常不是用视频的文件名来构造VideoCapture类,而是需要传递摄像头的设备索引(device index)。原创 2017-12-24 19:36:34 · 345 阅读 · 0 评论 -
计算机视觉(六)
人脸检测和识别 在opencv中data/haarcascades,该文件夹包含了所有的opencvv人脸检测的xml文件,这些文件用于检测静止图像、视频和摄像头所得到的图像中的人脸。使用时直接索引到该文件。1、静态图像中的人脸检测级联分类def CascadeClassifier(filename=None): # real signature unknown; r原创 2017-12-31 21:23:14 · 445 阅读 · 0 评论 -
计算机视觉(三)
1、滤波器傅里叶变换主要作用反应图像各区域像素变化的幅度。滤波器(核)矩阵:一组权重集合(内部所有值加和为0),作用在源图像的一个区域(滑动),并由此生成目标图像的一个元素。高通滤波器(HPF):检测图像的某个区域,然后根据像素与周围像素的亮度差值来提升该像素的滤波器。如果亮度变化很大,中央像素的亮度会增加(反之则不会)。(即某个像素比它周围的像素更突出,就会提升它的亮度)原创 2017-12-26 15:59:44 · 1101 阅读 · 0 评论 -
imread函数、窗口函数、imshow函数、imwrite函数等
1.imread函数 首先,我们看imread函数,可以在OpenCV官方文档中查到其原型如下: [cpp] view plain copyMat imread(const string& filename, int flags=1 );"padding: 0px;">"padding: 0px;">其中,第一个参数,const string&类原创 2017-04-12 23:07:50 · 1591 阅读 · 0 评论 -
计算机视觉(四)
GrabcutGrabcut算法详解http://blog.csdn.net/zouxy09/article/details/8534954原理: 首先用矩形将要选择的前景区域选定,其中前景区域应该完全包含在矩形框当中。然后算法进行迭代式分割,知道达到效果最佳。但是有时分割结果不好,例如前景当成背景,背景当成前景。测试需要用户修改。用户只需要在非前景区域用鼠标划一原创 2017-12-29 20:54:54 · 702 阅读 · 0 评论 -
霍夫变换-----特征提取
霍夫变换:从黑白图像中检测直线和曲线。优点:对数据的不完全或噪声不是非常敏感。首先对图像进行边缘检测的处理,即霍夫线变换的直接输入只能是边缘二值图像。多尺度霍夫变换(MSHT)是经典霍夫变换(标准霍夫变换SHT)在多尺度下的一个变种。累计概率霍夫变换(PPHT)是SHT的改进。他在一定的范围内进行霍夫变换,计算单独线段的方向机范围,从而减少计算量,缩短计算时间。原理: 1、原创 2017-05-25 15:02:38 · 20628 阅读 · 2 评论 -
opencv边缘检测
边缘检测一般步骤:1、滤波 边缘检测的算法主要是基于图像增强的一阶和二阶导数,但导数通常对噪声很敏感。因此必须采用滤波器来改善与噪声有关的边缘检测器的功能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和。2、增强 增强边缘的基础是确定图像各点领域强度的变化值。增强算法可以将图像灰度点领域强原创 2017-04-21 13:50:39 · 1044 阅读 · 0 评论 -
阈值化
阈值可以被视作最简单的图像分割方法属于像素级分割。设定阈值后图像中每个像素预期比较选择保留或剔除,从而达到所需要的部分图像。阈值函数有两种:1、固定阈值:Threshold()函数double cv::threshold( InputArray _src, OutputArray _dst, double thresh, double maxval, int type ){原创 2017-04-20 20:24:37 · 568 阅读 · 0 评论 -
opencv函数(二)
1.Mat中的构造函数Mat是一个非常优秀的图像类,它同时也是一个通用的矩阵类,可以用来创建和操作多维矩阵。Mat类提供了一系列构造函数,可以方便的根据需要创建Mat对象。[html] view plain copyspan style="font-size:18px;"> Mat(); Mat(int row原创 2017-04-12 23:03:06 · 345 阅读 · 0 评论 -
opencvc函数(三)
自定义的绘制图形函数1、【DrawEllipse( )函数】 自定义的绘制函数,实现了绘制不同角度、相同尺寸的椭圆。[html] view plain copyspan style="font-size:18px;"> 声明:span> [html] view plain copy原创 2017-04-12 23:04:21 · 371 阅读 · 0 评论 -
获取图像像素方法汇总
图像操作最基础的还是对像素获取及变换,也就相当于对矩阵中的元素的操作,使用不同的方法所用的时间也相差甚大。以下有几种方法:1、指针操作(1)双重循环,遍历图像所有的像素值[html] view plain copyspan style="font-size:18px;">for(int i = 0;i rowNumber;i++) /原创 2017-04-12 23:05:55 · 2798 阅读 · 0 评论 -
线性图形混合
图像混合即图形叠加。使用addWeighted函数(线性)可以做到将两幅图形合并成一副图像,其各副图像所占比例。实现两张图片的线性融合。这里α 表示两种图片的融合比例,这个g(x) 表示 融合图片中的像素点,f0(x) 和 f1(x) 分别表示背景和前景图片中的像素点。一、相同通道数(RGB/RGB,GRAY/GRAY)1、对于相同尺寸(像素及通道数)的图形原创 2017-04-12 23:06:37 · 717 阅读 · 0 评论 -
opencv中Matx类和Vec类
Matx类和Vec类 Matx类:类模板:template class Matx typedef _Tp value_type; typedef Matx mat_type; typedef Matx diag_type;原创 2017-04-12 23:08:59 · 1368 阅读 · 0 评论 -
VS+opencv配置出现问题汇总
1、在官网:http://opencv.org/上找到OpenCV windows版下载下来。2、解压到自己的路径X下。3、配置系统环境变量:【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。针对64位的系统,PATH后面加入“;X:\opencv\build\x64\vc1转载 2017-04-18 18:36:56 · 2235 阅读 · 0 评论 -
非线性滤波
非线性滤波:中值滤波,双边滤波线性滤波:两个信号之和的响应和它们各自响应之和相等(即每个像素的输出值是一些输入像素的加权和)。非线性滤波:中值滤波:用像素点领域灰度值的中值来代替该像素点的灰度值,该方法在去除脉冲噪声,椒盐噪声的同时又能保留图像的边缘细节。优点:由于噪声很难选上,所以几乎不会影响到输出,克服线性滤波器所带来的图像细节模糊,对滤波脉冲干扰即图像扫描噪声最为有效原创 2017-04-20 10:22:29 · 1563 阅读 · 0 评论 -
形态学滤波
基本形态学滤波:膨胀,腐蚀膨胀腐蚀功能:消除噪声,分割出独立的图像元素,在图像中连接相邻的元素,寻找图像中的明显的极大值区域或极小值区域,求出图像的梯度。膨胀是向着高亮部分进行膨胀,腐蚀亮度腐蚀,呈现暗区域。膨胀:求局部最大值,就是将图像(图像某一区域A)与核(B)进行卷积,有有一参考点(锚点)。核B与图形卷积,即计算核B覆盖的区域的像素点最大值,并把这个最大值赋给参考点指定的原创 2017-04-20 14:01:38 · 3582 阅读 · 0 评论 -
慢水填充
慢水填充:用一种特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法。经常被用来标记或分离图像的一部分,以便对其进行进一步处理或分析,也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或只处理掩码指定的像素点,操作的结果总是某个连续的区域。基本思想:自动选中了种子点相连的区域,接着将该区域替换成指定的颜色,经常用来标记或者分离图像的一部分进行处理过程,或原创 2017-04-20 16:11:26 · 327 阅读 · 0 评论 -
线性滤波
线性滤波:方框滤波、均值滤波、高斯滤波一、盒滤波(均值滤波)OpenCV提供boxFilter函数和blur函数来实现图像盒滤波(均值滤波)操作。两个函数的功能是一样的哈。均值滤波是指用模板核算子(卷积核算子)计算点领域像素的平均灰度值来代替该点的灰度。均值滤波算法比较简单,计算速度较快,但是均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时转载 2017-04-15 20:38:03 · 1561 阅读 · 0 评论 -
图像金字塔及尺寸缩放
void resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );原创 2017-04-20 20:14:00 · 3680 阅读 · 0 评论 -
opencv 函数(一)
1、图像叠加addWeighted声明:addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype = -1);src1 //第一个原数组.alph原创 2017-04-12 23:01:29 · 259 阅读 · 0 评论