opencv学习之路(19)、直方图】的更多相关文章

一.概述 二.一维灰度直方图 #include "opencv2/opencv.hpp" #include<iostream> using namespace cv; using namespace std; void main() { Mat img = imread(); //以灰度方式打开,灰度图和彩色图直方图结果不同 imshow("src", img); Mat dstHist; //定义存储直方图变量 ; //需要统计的特征数目(只统计灰度值…
一.直方图均衡化--equalizeHist() #include "opencv2/opencv.hpp" using namespace cv; void main() { 6 Mat srcImg = imread("E://02.jpg", 0); //以灰度方式打开,需要输入单通道图像 7 imshow("src", srcImg); 8 Mat dstImg; //均衡化后的图像 9 equalizeHist(srcImg, dstI…
这里要感谢这篇博主的文章 部分内容转载自此 opencv在2.3版本之前 都是用的c语言实现的 而在2.3以后的版本 做了很多重大的改变 其中最主要的是用c++重写大部分结构 然后文件的结构和2.0之前的也有很多不同 然后对库的结构进行了合理的规划拆分 core——定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等 video——该模块包括运动估计,背景分离,对象跟踪 calib3d——基本的…
在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资料都可以查到,简单来说,就是将图像分成一个cell,通过对每个cell的像素进行梯度处理,进而根据梯度方向和梯度幅度来得到cell的图像特征.随后,将每个cell的图像特征连接起来,得到一个BLock的特征,进而得到一张图片的特征.Opencv当中自带HOG算法,可以直接调用,进行图像的特征提取.但…
#include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv2\opencv.hpp> #include<iostream> #include<fstream> using namespace std; using namespace cv; #define Max 100 class Cell{ private: int pixel_x…
OpenCV的第一个代码: #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> cv::Mat function(){ cv::Mat ima(,,CV_8U,); return ima; } int main(){ //创建窗口 cv::namedWindow("Image 1"); cv::namedWindow(&…
一.人脸检测并采集个人图像 //take_photo.cpp #include<opencv2/opencv.hpp> using namespace cv; using namespace std; void take_photo() { VideoCapture cap(); //打开摄像头 if (!cap.isOpened()) return; //加载级联检测器 CascadeClassifier cascade; cascade.load("F:/opencv3.2/Re…
一.人脸识别算法之特征脸方法(Eigenface) 1.原理介绍及数据收集 特征脸方法主要是基于PCA降维实现. 详细介绍和主要思想可以参考 http://blog.csdn.net/u010006643/article/details/46417127 上述博客的人脸数据库打不开了,大家可以去下面这个博客下载ORL人脸数据库 http://blog.csdn.net/xdzzju/article/details/50445160 下载后,ORL人脸数据库有40个人,每人10张照片. 2.流程…
一.PCA理论介绍 网上已经有许多介绍pca原理的博客,这里就不重复介绍了.详情可参考 http://blog.csdn.net/zhongkelee/article/details/44064401 计算过程 数据互换 二.opencv代码 #include<opencv2/opencv.hpp> using namespace cv; using namespace std; void calcPCAOrientation(vector<Point>&pts, Mat…
本文部分内容转自 https://www.cnblogs.com/chaosimple/p/3182157.html 一.统计学概念 二.为什么需要协方差 三.协方差矩阵 注:上述协方差矩阵还需要除以除以(n-1).MATLAB使用cov函数计算协方差时自动除以了(n-1),opencv使用calcCovarMatrix函数计算后还需要手动除以(n-1) 协方差具体计算 以学生成绩举例:有5名学生,参加数学.英语.美术考试,得分如图 1.计算均值矩阵M 均值是对每一列求平均值:means=[66…
一.运动物体轮廓椭圆拟合及中心 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; Mat MoveDetect(Mat frame1, Mat frame2) { Mat result = frame2.clone(); Mat gray1, gray2; cvtColor(frame1, gray1, CV_BGR2GRAY); cvtColo…
一.简介 二.背景减法 图片说明 #include "opencv2/opencv.hpp"using namespace cv; void main() { Mat img1 = imread("E:\\pic\\1.bmp"); Mat img2 = imread("E:\\pic\\55.bmp"); imshow("img1", img1); imshow("img2", img2); Mat gr…
一.简介 二.opencv中的SURF算法接口 三.特征点匹配方法 四.代码 1.特征点提取 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp> #include <vector> #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg1 = imrea…
一.特征匹配简介 二.暴力匹配 1.nth_element筛选 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp>//SIFT #include <opencv2/legacy/legacy.hpp>//BFMatch暴力匹配 #include <vector> #include<iostream> using namespace std; using…
一.简介 二.OpenCV中的SIFT算法接口 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp>//SIFT #include <vector> #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg1 = imread("E://00.jp…
一.简介 HSV颜色空间(hue色调,saturation饱和度,value亮度) 二.HSV滑动条 #include "opencv2/opencv.hpp" #include <iostream> using namespace cv; using namespace std; Mat srcImg, hsv_img; ,s_min = ,v_min = ; ,s_max = ,v_max = ; void onChange(int, void* param) { Sc…
一.角点检测的相关概念 二.Harris角点检测——cornerHarris() 参考网址: http://www.cnblogs.com/ronny/p/4009425.html #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; void main() { Mat img = imread("E://3.jpg"); ims…
一.GrabCut 1.利用Rect做分割 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src = imread("E://bird.jpg"); Rect rect(, , , );//左上坐标(X,Y)和长宽 Mat result, bg, fg; grabCut(src, result, rect, bg, fg, , GC_INIT_WITH_RECT); imsho…
一.简介 二.分水岭算法 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat srcImg = imread("E://bird.jpg"); imshow("src", srcImg); Mat dstImg = srcImg.clone(); //medianBlur(srcImg, srcImg, 5); //GaussianBlur(srcImg, src…
一.点与轮廓的距离及位置关系 #include "opencv2/opencv.hpp" #include <iostream> using namespace std; using namespace cv; void main() { //计算点到轮廓的距离与位置关系 Mat srcImg = imread("E://00.png"); imshow("src", srcImg); Mat dstImg = srcImg.clon…
一.最小外接圆 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg = imread("E://10.png"); imshow("src", srcImg); Mat dstImg = srcImg.clone(); GaussianBlur(srcImg,…
一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外接矩形的绘制 Mat srcImg = imread("E://00.png"); Mat dstImg = srcImg.clone(); cvtColor(srcImg, srcImg, CV_BGR2GRAY); threshold(srcImg, srcImg, , , CV_TH…
一.简介 二.外接矩形的查找绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //外接矩形的查找绘制 Mat srcImg =imread("E://12.jpg"); imshow("src",srcImg); Mat dstImg = srcImg.clone(); //原图备份 cvtColor(srcImg, srcImg, CV_BGR2GRAY); /…
一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat img(, , CV_8UC3, Scalar::all()); //定义绘制图像 RNG rng; //定义随机数对象 ) { char key; ; //定义点的个数 vector<Point> points; //定义点集 ; i<count; i++) { Point pt; pt…
一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src=imread("E://22.jpg"); Mat temp=src.clone(); //转灰度图,二值化 cvtColor(src,src,CV_BGR2GRAY); threshold(src,src,,,THRESH_BINARY); imshow("thres"…
一.简介 图2 二.代码 #include"opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg = imread("E://02.png"); Mat tempImg = srcImg.clone(); //Mat draw(srcImg.rows, srcImg.cols, CV_8UC3); c…
一.模板匹配概念 二.单模板匹配 #include "opencv2/opencv.hpp" #include <iostream> using namespace std; using namespace cv; void main() { Mat temp=imread("E://mu.jpg"); Mat src=imread("E://lena.jpg"); Mat dst=src.clone(); imshow("…
一.简介 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在.在许多应用场合中需要快速准确地检测出直线或者圆.其中一种非常有效的解决问题的方法是霍夫(Hough)变换. 二.霍夫线变换 霍夫线变换的原理 以上原理部分,转自http://blog.csdn.net/poem_qianmo/article/details/26977557 #include "opencv2/opencv.hpp" using namespace cv; void ma…
一.概述 二.canny边缘检测 #include "opencv2/opencv.hpp" using namespace cv; void main() { //Canny边缘检测 Mat srcImg = imread(); //0表示以灰度图读入,彩色图和灰度图进行边缘检测时略有不同,建议使用灰度图 //medianBlur(srcImg, srcImg,5);//中值滤波 imshow("src", srcImg); Mat dstImg; Canny(s…
一.分析 贴出应用图片以供直观了解 红色部分,因图而异(某些参数,根据图片的不同需要进行相应的修改) 二.代码 #include "opencv2/opencv.hpp" #include<iostream> using namespace cv; using namespace std; void main(){ Mat img=imread("E://9.jpg"); ; //二值化最小阈值 if(!img.empty()){ //二值化 thres…