一.ROI #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat img=imread("E://0.jpg"); Mat logo=imread("E://opencv.jpg"); Mat ROI=img(Rect(,,logo.cols,logo.rows));//x,y,w,h xy坐标,宽度,高度 //Mat ROI=img(Range(20,20+logo.rows…
一.人脸检测并采集个人图像 //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…
一.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" #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" #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("…
一.人脸识别算法之特征脸方法(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…
一.简介 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…
一.简介 二.分水岭算法 #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" 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); /…
一.直方图均衡化--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…
一.概述 二.一维灰度直方图 #include "opencv2/opencv.hpp" #include<iostream> using namespace cv; using namespace std; void main() { Mat img = imread(); //以灰度方式打开,灰度图和彩色图直方图结果不同 imshow("src", img); Mat dstHist; //定义存储直方图变量 ; //需要统计的特征数目(只统计灰度值…
一.图像滤波简介 二.方框滤波——boxFilter() #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E://1.jpg"); Mat dst; //方框滤波器,-1代表原图像深度,size内核大小,true按权重相加(此时等于均值滤波),false按原像素相加(所以很多像素点都大于了255,如上图所示) boxFilter(src,dst,-,Size(,),P…
一.图像缩放 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E://0.jpg"); Mat dst; resize(src,dst,Size(,)); imshow("src",src); imshow("dst",dst); waitKey(); } 二.图像平移 #include<opencv2/opencv.hp…
一.图像加法 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespace std; void main(){ Mat img1=imread("E://1.jpg"); Mat img2=imread("E://2.jpg"); Mat dst;//存储结果 imshow("img1",img1); imshow(&…
一.鼠标截图 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespace std; Mat img=imread("E://1.jpg"); Mat temp=img.clone(); Mat ROI; Point pt; bool flag=false; void onMouse(int event,int x,int y,int flag,void*…
一.鼠标事件 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespace std; Mat img(,,CV_8UC3,Scalar(,,));//定义成全局变量 void OnMouse(int event,int x,int y,int flags,void* param){ if(event==CV_EVENT_LBUTTONDOWN){//如果鼠标左键按下 cout&…
本节内容: 访问像素值 用指针扫描图像 用迭代器扫描图像 编写高效的图像扫描循环 扫描图像并访问相邻像素 实现简单的图像运算 图像重映射 访问像素值 准备工作: 创建一个简单函数,用它在图像中加入椒盐噪声. 实现如下: void salt(cv::Mat image, int n){ int i, j; ; k < n; k ++){ i = std::rand()%image.cols; j = std::rand()%image.rows; if(image.type() == CV_8UC…
在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资料都可以查到,简单来说,就是将图像分成一个cell,通过对每个cell的像素进行梯度处理,进而根据梯度方向和梯度幅度来得到cell的图像特征.随后,将每个cell的图像特征连接起来,得到一个BLock的特征,进而得到一张图片的特征.Opencv当中自带HOG算法,可以直接调用,进行图像的特征提取.但…
一 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic…
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(&…
视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用.本文主要介绍OpenCV在处理视频时的一些基本函数. 一.视频帧的读取 OpenCV为视频的读入提供了一个类VideoCapture,下面我们说明一下类的几个重要的方法: 1,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. VideoCapture captu…
本篇介绍内容 作用域 python类的多继承 IO多路复用 socketserver之源码剖析 多线程和多进程 作用域 if 1 == 1: name = "xxx" print(name) 上面代码在python和javascript中没有块级作用域,是可以执行的但是在c#和java中有块级作用域,会报错变量name不存在 python的作用域链 由内向外找 找不到就报错 当程序还没执行作用域在执行之前就已经定义好了,下面的例子证明了这点 name = "aaa"…
try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 1. try/catch语句 catch语句用来捕获try代码块中的错误,并执行自定义的语句来处理它. 语法: try { //在这里运行代码 } catch(err) { //在这里处理错误 } <!DOCTYPE html> <html> <head> <script> var txt = ""; function message() { t…
本文部分内容转自 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…