OpenCV 3.0 学习笔记
文章平均质量分 82
该栏目记录了过去一段时间本人学习OpenCV3.0的全过程,大部分博文包含样例代码和运行结果,2016年7月于浙江!
地灯
To be a better man!
展开
-
OpenCV3.0.1源码编译及自带样例工程代码编译
OpenCV3.0.1源码编译及自带样例工程代码编译详细步骤参见博文:OpenCV3.0.1源码编译及自带样例工程代码编译=========下面是个人在实际编译过程中遇到问题并解决的经历===========按照推荐的博文,在opencv 源码编译好之后,在编译自带样例工程代码时,如果Cmake里的地址设置不正确,可能会遇到问题:解决方法:注:图中红色方框这里是的地原创 2016-07-27 13:35:28 · 4923 阅读 · 0 评论 -
常用OpenCV 2.0库函数速查和OpenCV 3.0函数索引
常用的OpenCV 2.0函数速查==================================前言:opencv已经更新到3.1.0的版本,此文列出其在2.0版本时代的库函数,多数函数与3.0以上版本有着相似之处,比如很多2.0版本函数名去掉前缀cv就是3.0版本的函数名cvWaitKey变成Waitkey(),cvNamedWindow变成namedWidow()等等原创 2016-07-26 15:11:43 · 8901 阅读 · 1 评论 -
【OpenCV笔记 16-2】OpenCV人脸检测和人眼检测之LBP分类器
OpenCV人脸检测之LBP检测器原创 2016-07-29 11:03:13 · 3447 阅读 · 0 评论 -
【OpenCV笔记 15-3】OpenCV计算物体最小包围矩形面积和周长
本文将介绍OpenCV计算物体最小包围矩形面积和周长两个函数:contourArea()和arcLength知识点:1.寻找最小包围矩形2.计算最小轮廓的面积和长度3.定义和输出vector容器点坐标代码示例://寻找最小包围矩形//计算最小轮廓的面积和长度//定义和输出vector容器点坐标#include #include "opencv2/highgui原创 2016-07-28 18:24:39 · 8038 阅读 · 0 评论 -
【OpenCV笔记 15-2】OpenCV寻找物体最小包围矩形和最小包围圆
OpenCV寻找物体最小包围矩形 minAreaRect()和最小包围圆minEnclosingCircle()运用到的知识点:1.寻找最小包围矩形2.寻找最小包围圆3.定义和输出vector容器点坐标代码示例://寻找最小包围矩形//寻找最小包围圆//定义和输出vector容器点坐标#include #include "opencv2/highgui/h原创 2016-07-28 16:35:02 · 8298 阅读 · 0 评论 -
【OpenCV笔记 15-1】OpenCV寻找物体的凸包convexHull
OpenCV寻找物体的凸包convexHull()应用到的知识点:1.寻找物体的凸包convexHull2.定义和输出vector容器点坐标3.随机数发生器==================================凸包检测示例程序://寻找物体的凸包convexHull//定义和输出vector容器点坐标#include #include "openc原创 2016-07-28 14:09:12 · 2677 阅读 · 0 评论 -
【OpenCV笔记 14】OpenCV图像增强方法直方图均衡化
直方图均衡化 图像的直方图是什么?直方图是图像中像素强度分布的图形表达方式.它统计了每一个强度值所具有的像素个数. 直方图均衡化是什么?灰度直方图就是在图像中对应某个灰度级的像素的数量值。它可以表示为一个笛卡尔坐标系,其中X坐标是灰度级,Y坐标是该灰度出现的像素数量。直方图均衡化就是一种点运算,处理过程原创 2016-07-26 13:40:00 · 1164 阅读 · 0 评论 -
【OpenCV笔记 13】OpenCV中Hough霍夫直线检测和同一窗口显示多幅图片
本文主要涉及两个方面:1、Hough变换用于直线检测 2、实现同一窗口显示多幅图片*********************************************************先看文末示例程序截图***************************************************************************原创 2016-07-25 15:57:32 · 2554 阅读 · 0 评论 -
【OpenCV笔记 12】OpenCV边缘检测之canny算子
一、什么是边缘检测?。边缘检测的基本思想是通过检测每个像素和其邻域的状态,以决定该像素是否位于一个物体的边界上。如果一个像素位于一个物体的边界上,则其邻域像素的灰度值的变化就比较大。假如可以应用某种算法检测出这种变化并进行量化表示,那么就可以确定物体的边界。经典的边缘检测方法是对原始图像中像素的某小邻域来构造边缘检测算子。常用的边缘检测方法有Roberts算子、Sobe l算子、Pre原创 2016-07-21 22:56:59 · 3638 阅读 · 0 评论 -
【OpenCV笔记 11】OpenCV中基本阈值化操作函数threshold()
阈值分割是最简单的图像分割的方法。OpenCV中提供了阈值函数threshold:threshold() 函数原型:double cv::threshold(InputArray src,OutputArray dst,double threshold_value,double maxval,int threshold_type )函数 threshold() 会接原创 2016-07-19 15:17:30 · 983 阅读 · 0 评论 -
【OpenCV笔记 10】OpenCV线性滤波(均值滤波、方框滤波、高斯滤波)
本文将介绍三种常见的线性滤:均值滤波、方框滤波、高斯滤波1.均值滤波blur()函数原型void cv::blur(InputArray src, //输入OutputArray dst,//输出Size ksize,//模板大小3x3,5x5等,Size(3,3),Size(5,5)原创 2016-07-18 16:28:53 · 698 阅读 · 0 评论 -
【OpenCV笔记 09】OpenCV中离散傅里叶变换、归一化的运用
本文主要介绍怎样使用opencv来对图片进行傅里叶变换,其核心函数是opencv自带的dft()。离散傅里叶变换DFT(Discrete Fourier Transform)这个技术手段是将空间域映射到频率域中去,在图像处理有着举足轻重的地位。同时在举出的示例中将用到下列函数:int getOptimalDFTSize(int vecsize)该函数是为了获得进行DFT计算原创 2016-07-18 15:13:08 · 3329 阅读 · 0 评论 -
【OpenCV笔记 08】OpenCV中分离颜色通道split()和图像通道混合merge()
而为了更好的观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整。通过OpenCV的split()和merge()方法可以很方便的达到目的,使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作。本文将介绍三个函数的应用:split函数详解将一个多通道数组分离成几个原创 2016-07-15 22:11:42 · 2962 阅读 · 0 评论 -
【OpenCV笔记 07】OpenCV中线段的绘制和文本的插入
1.本文将先介绍OpenCV中线段的绘制和文本的插入,使用到的函数line()和 putText()(前面的一片博文已经介绍过)2.其次将应用于绘制大众车标的示例代码和运行结果一并附上。Line绘制连接两个点的线段void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,原创 2016-07-14 21:21:11 · 1440 阅读 · 0 评论 -
【OpenCV笔记 06】OpenCV中绘制基本几何图形【矩形rectangle()、椭圆ellipse() 、圆circle() 】
本文主要内容:一、介绍OpenCV中三个绘图函数:circle() 、ellipse() 、rectangle()二、函数的应用实例,利用这些函数分别绘制了丰田车标、奥迪车标以及红十字,并附上代码。1.Circle绘制圆形。void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar c原创 2016-07-14 20:30:03 · 41255 阅读 · 2 评论 -
【OpenCV笔记 05】OpenCV插入文本和字体设置相关函数
putText在图像中显示文本字符串。函数原型如下:void PutText( CvArr* img, const char* text, CvPoint org, const CvFont* font, CvScalar color );img输入图像。text要显示的字符串。org第一个字符左下角的坐标。font字体结构体。color文本的字体颜色。函数cvP原创 2016-07-14 15:42:16 · 6543 阅读 · 0 评论 -
【OpenCV笔记 04】OpenCV中显式创建Mat对象的5种方法
创建一个Mat对象有多种方法,本文将列举最为常用的五种:1.使用Mat()构造函数,2.利用create()函数创建,用来为已有矩阵开辟内存,不能用来初始化3.类似于Matlab式的初始化方式eye,zeros,ones,4.对小型矩阵使用逗号分隔式出初始化方式5.为已存在的对象创建信息头,利用函数clone()或copyTo(),此方法需要创建一个原图像矩阵的副本原创 2016-07-13 20:51:09 · 2122 阅读 · 0 评论 -
【OpenCV笔记 03】OpenCV头文件探秘
在使用OpenCV3.0编写代码的过程中,总会遇到类似于下面的头文件,#include出于好奇,于是辗转到安装目录下招待该头文件,其代码如下#ifndef __OPENCV_ALL_HPP__#define __OPENCV_ALL_HPP__#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "原创 2016-07-12 22:53:56 · 1957 阅读 · 0 评论 -
【OpenCV笔记 02】OpenCV滑动条的创建和使用——createTrackbar()函数
createTrackbar()函数原型如下int createTrackbar( const String & trackbarname,//滑动条名称 const String & winname,//所在窗口名称 int * value,//value为指向int的指针,用于返回滑动条当前值 int count,//滑动条条最大值,默认值最小为0 TrackbarC原创 2016-07-11 23:01:06 · 1253 阅读 · 0 评论 -
【OpenCV笔记 01】OpenCV基本函数介绍
本文主要介绍OpenCV基本函数,包括imread(), imshow(), namedWindow(), imwrite(),函数功能分别对应图像载入,图像显示,创建窗口,输出图像到文件。1.函数imread(),用于图像的载入。1.1函数原型 Mat cv::imread(const String & filename, in原创 2016-07-11 11:06:43 · 1829 阅读 · 0 评论