一.意义和作用: 图像的模糊处理就是将图片处理的更加模糊,如下图,左侧是原图,右侧是经过处理之后的图片. 从主观意愿上说,我们希望看到清晰的图像,而不是模糊的图像.所以很多时候我们听说还有一种专门进行模糊图像的操作时,感觉不可思议,这有什么用呢.要知道模糊图像只是处理噪声带来的副作用,并不是我们的目的.图像没有噪声的时候,我们用平滑滤波器去模糊图像干什么呢?还真有一个重要的应用.把上面的图像使用变得更加模糊之后.效果如下: 我们可以看到,相对于原始图像,一些较小的物体已经融入背景,看不到了,有些…
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV 学习笔记 05 人脸检测和识别进行区分:需重新说明一下什么是目标检测. 目标检测是一个程序,它用来确定图像的某个区域是否有要识别的对象,对象识别是程序识别对象的能力.识别通常只处理已检测到对象的区域.若人们总是会在有人脸图像的区域去识别人脸. 在计算机视觉中有很多目标检测和识别的技术,本章会用到:…
1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测 BGR - 蓝-绿-红 彩色空间,每个像素点都由一个三元数组来表示,分别代表蓝-绿-红三种颜色. HSV,Hue 表示色调,Saturation 表示饱和度,Value 表示黑暗的程度. 2 傅里叶变换 傅里叶变换的概念是许多常见…
OpenCV学习笔记5 图像变换 傅里叶变换 这里可以先学习一下卷积分,了解清除卷积的过程和实际意义,在看这一章节的内容. 原理: 傅里叶变换经常被用来分析不同滤波器的频率特性.我们可以使用 2D 离散傅里叶变换 (DFT) 分析图像的频域特性.实现 DFT 的一个快速算法被称为快速傅里叶变换(FFT).关于傅里叶变换的细节知识可以在任意一本图像处理或信号处理的书中找到.请查看本小节中更多资源部分. 对于一个正弦信号:x (t) = A sin (2πf t), 它的频率为 f,如果把这个信号转…
OpenCV学习笔记3 图像平滑(低通滤波) 使用低通滤波器可以达到图像模糊的目的.这对与去除噪音很有帮助.其实就是去除图像中的高频成分(比如:噪音,边界).所以边界也会被模糊一点.(当然,也有一些模糊技术不会模糊掉边界).OpenCV 提供了四种模糊技术. 2D 卷积 对 2D 图像实施低通滤波(LPF:low pass filter),高通滤波(HPF:high pass filter)等.LPF 帮助我们去除噪音,模糊图像.HPF 帮助我们找到图像的边缘OpenCV 提供的函数 cv.fi…
opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度直方图来构成特征.Hog特征结合SVM分类器已经被广泛用于图像识别中,尤其在行人检测中获得了极大的成功.需要提醒的是,HOG+SVM进行行人检测的方法是法国研究院Dalal在2005的CVPR上提出的. 最近在做车标识别相关的研究,用到了SVM+HOG的方法进行识…
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将图片转换成直方图,然后对直方图进行比较,在某些程度,真实地反映了图片的相似度. 代码如下: #include <iostream> #include <cv.h> #include <highgui.h> using namespace std; using namespa…
opencv学习笔记(五)镜像对称 设图像的宽度为width,长度为height.(x,y)为变换后的坐标,(x0,y0)为原图像的坐标. 水平镜像变换: 代码实现: #include <iostream> #include <cv.h> #include <highgui.h> using namespace std; using namespace cv; void hMirrorTrans(const Mat &src, Mat &dst) { C…
opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace std; using namespace cv; int main() { IplImage * src = cvLoadImage(); //强制转化读取图像为灰度图 cvShowImage("灰度图像", src); cvThreshold(src, src, , , CV_THRE…
opencv学习笔记(三)基本数据类型 类:DataType 将C++数据类型转换为对应的opencv数据类型 OpenCV原始数据类型的特征模版.OpenCV的原始数据类型包括unsigned char.bool.signed char.unsigned short.signed short.int.float.double以及由这些基础类型组成的元组,这些元组中的所有值都属于相同的类型.这个原始数据类型列表中的所有类型都可以使用一个标示符进行表示CV_<bit-depth>{U|S|F}C…