opencv
昊昊好好昊
这个作者很懒,什么都没留下…
展开
-
opencv八种跟踪算法
这八种算法包括:BOOSTING Tracker:和Haar cascades(AdaBoost)背后所用的机器学习算法相同,但是距其诞生已有十多年了。这一追踪器速度较慢,并且表现不好,但是作为元老还是有必要提及的。(最低支持OpenCV 3.0.0)MIL Tracker:比上一个追踪器更精确,但是失败率比较高。(最低支持OpenCV 3.0.0)KCF Tracker:比BOOSTING和MIL都快,但是在有遮挡的情况下表现不佳。(最低支持OpenCV 3.1.0)CSRT Tracker:比K原创 2021-09-15 19:16:43 · 1613 阅读 · 0 评论 -
视频背景替换
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;Mat replace_and_blend(Mat& frame, Mat& mask);Mat background_01;Mat background_02;int main(int argc, char** argv) { // start here... backg原创 2021-08-30 16:10:23 · 100 阅读 · 0 评论 -
opencv-分水岭分割方法
分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特征。Opencv 中 watershed函数原型:void watershed( InputArray image, InputOutputArray markers );第一个参数 image,必须是一个8bit 3通道彩色图像矩阵序列,第一个参数没什么要说的。关键是第二个参数 markers:大意原创 2021-08-30 13:40:08 · 303 阅读 · 0 评论 -
图像分割——GMM
GMM(高斯混合模型方法)GMM即高斯混合模型,GMM加上贝叶斯就能对图像进行分割。在说高斯混合模型之前,得先认识单高斯模型,即高斯分布(正态分布),由图可知,以某个点为例,它的高斯分布含义:离该点越近其权重越大影响越大,越远其权重越小影响越小,中心点的大小要受到周围点的影响。比如 5 _ 10 _ _ 6,以10为中心点的高斯分布,_代表距离,因为5离10更近,权值更大,设为0.8,则5变成50.8=4。因为6离10更远,权值更小,设为0.4,则6变成60.4=2.4。对于GMM高斯混合模型:图原创 2021-08-29 16:36:25 · 1276 阅读 · 0 评论 -
2021-08-29图像分割_kmean
Kmeans方法#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main() { Mat src, dst, gray_src; src = imread("D:/b.jpeg"); if (src.empty()) { printf("could not load image...\n"); return -1; }原创 2021-08-29 13:52:35 · 85 阅读 · 0 评论 -
级联分类器的训练
级联分类器训练步骤原创 2021-08-29 11:18:58 · 71 阅读 · 0 评论 -
2021-08-28人脸检测与眼睛跟踪
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;String facefile = "D:/vs/opencv/build/etc/haarcascades/haarcascade_frontalface_alt.xml";String lefteyefile = "D:/vs/opencv/build/etc/haarcascades/haa.原创 2021-08-28 17:00:48 · 114 阅读 · 0 评论 -
Haar和LBP级联分类器
//图片识别#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;String fileName = "D:/D:/vs/opencv/build/etc/haarcascades/haarcascade_frontalface_alt.xml";CascadeClassifier face_classifier;int main(int a..原创 2021-08-28 14:37:27 · 206 阅读 · 0 评论 -
opencv案例
切边#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;using namespace std;Mat src, gray_src, dst;int threshold_value = 100;int max_level = 255;const char* output_win = "Contours Result";const原创 2021-08-27 16:05:14 · 648 阅读 · 0 评论 -
2021-08-25特征描述子与匹配,Flann特征匹配
积分图像#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, char** argv) { Mat src = imread("D:/1.jpg", IMREAD_GRAYSCALE); if (src.empty()) { printf("could not load image...\n"); return -1; } namedWin原创 2021-08-26 11:47:02 · 170 阅读 · 0 评论 -
HOG特征检测,LBP特征
HOG特征#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main() { Mat src, dst,dst_gray; src = imread("D:/2.jfif"); if (src.empty()) { printf("could not load image..."); return -1; } namedW原创 2021-08-25 13:17:46 · 85 阅读 · 0 评论 -
2021-08-24SURF特征检测
SURF和SIFT特征检测区别SURFSURF(Speeded Up Robust Features)是对SIFT的一种改进,主要特点是快速。SURF与SIFT主要有以下几点不同处理:1、 SIFT在构造DOG金字塔以及求DOG局部空间极值比较耗时,SURF的改进是使用Hessian矩阵变换图像,极值的检测只需计算Hessian矩阵行列式,作为进一步优化,使用一个简单的方程可以求出Hessian行列式近似值,使用盒状模糊滤波(box blur)求高斯模糊近似值。2、 SURF不使用降采样,通过保持图原创 2021-08-25 11:22:24 · 96 阅读 · 0 评论 -
2021-08-24亚像素角点检测
亚像素级别角点检测角点检测点精确到float型,使得检测结果更加精确。可用于目标跟踪,三维重建,相机矫正opencv中的goodFeaturesToTrack函数可以计算Harris角点和shi-tomasi角点,但默认情况下计算的是shi-tomasi角点,函数原型如下:void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,int maxCorners, double qualityLevel, doubl原创 2021-08-24 19:03:29 · 350 阅读 · 0 评论 -
oepncv特征提取与检测-Harris,shifTomasi,自定义角点检测
Harris角点检测原创 2021-08-24 13:57:22 · 142 阅读 · 0 评论 -
opencv-视频中移动对象统计
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char**) { VideoCapture capture; capture.open("D:/wv_demo.mp4"); if (!capture.isOpened()) { printf("could not load video data...原创 2021-08-23 15:02:17 · 91 阅读 · 0 评论 -
opencv-CAMshift对象跟踪
MeanShift算法介绍CAMshift跟踪算法介绍我们通常会传递直方图反投影图像和初始目标位置。当对象移动时,显然该移动会反映在直方图反投影图像中。结果,meanshift算法将窗口移动到最大密度的新位置。连续自适应的Meanshift跟踪算法窗口尺寸自动变化适合变形目标检测代码演示#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namesp原创 2021-08-23 14:16:37 · 69 阅读 · 0 评论 -
opencv-基于光流的对象跟踪
基本原理光流是由物体或照相机的运动引起的两个连续帧之间图像物体的视运动的模式。它是2D向量场,其中每个向量都是位移向量,表示点从第一帧到第二帧的运动。光流在以下领域具有许多应用: - 运动的结构 - 视频压缩 - 视频稳定…稀疏光流KLT限制: 1. 亮度恒定 2.缓慢移动 3.空间一致性操作步骤:输入第一帧图片,利用harris特征检测进行特征点检测,通过特征点进行的跟踪。稠密光流HF步骤:不会再去寻找特征点,直接读取两帧图片,然后图片对比,寻找差异,将所有移动的点用多项式表达出来。原创 2021-08-23 11:53:30 · 310 阅读 · 0 评论 -
opencv-基于颜色目标检测与跟踪
利用颜色范围过滤InRange过滤形态学提取轮廓查找外接矩形查找位置确定与标定#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Rect roi;void processFrame(Mat &binary,Rect &rect);int main(){//读取视频 VideoCapture capture; ca原创 2021-08-22 13:49:56 · 290 阅读 · 0 评论 -
2021-08-21opencv-BS背景消除建模
/*#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { //VideoCapture capture; //capture.open("D:/vcprojects/images/video_006.mp4"); VideoCapture capture(0); if (!ca原创 2021-08-21 21:12:44 · 79 阅读 · 0 评论 -
2021-08-21牛人博客
牛人博客1、小魏的修行路 http://blog.csdn.net/xiaowei_cqu2、晨宇思远(邹宇华 北京航空航天大学) http://blog.csdn.net/chenyusiyuan3、Rachel Zhang(张睿卿)的博客 http://blog.csdn.net/abcjennifer4、zouxy09(邹晓艺) 华南理工大学 http://blog.csdn.net/zouxy09 (深度学习,图像分割,Kinect开发学习,压缩感知)5、爱CVPR http://b原创 2021-08-21 20:36:01 · 124 阅读 · 0 评论 -
2021-08-20opencv-基于距离变换与分水岭的图像分割
基于距离变换与分水岭的图像分割#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat src, dst;int main() { src = imread("D:/d.png"); if(src.empty()){ printf("could not load image"); return -1; } imshow("i原创 2021-08-20 16:49:31 · 56 阅读 · 0 评论 -
2021-08-20opencv-图像矩,点多边形
图像矩moments:计算生成数据。点多边形原创 2021-08-20 13:02:55 · 41 阅读 · 0 评论 -
2021-08-19opencv-基于轮廓绘制矩形
轮廓周围绘制矩形#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int threshold_value = 50;int threshold_max = 255;Mat src, dst;const char* output = "output_image";void contours_demo(int,void*);RNG rng;原创 2021-08-20 00:16:03 · 266 阅读 · 0 评论 -
2021-08-19opencv-凸包
凸包(在轮廓发现的基础上)#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat src, dst;int threshold_value = 50;int threshold_max = 255;const char* output = "output_image";void convexHull_demo(int, void*);原创 2021-08-19 20:21:00 · 58 阅读 · 0 评论 -
2021-08-19opencv-轮廓发现
opencv-轮廓发现#include<opencv2/opencv.hpp>#include<iostream>#include<math.h>using namespace cv;using namespace std;int threshold_value = 100;int threshold_max = 255;Mat src, dst;const char* output = "findcontours-demo";void Dem原创 2021-08-19 19:02:37 · 61 阅读 · 0 评论 -
2021-08-18opencv-python视频入门
视频读入:VideoCaptureimport numpy as npimport cv2 as cvcap = cv.VideoCapture(0)if not cap.isOpened(): print("Cannot open camera") exit()while True: # 逐帧捕获 ret, frame = cap.read() # 如果正确读取帧,ret为True if not ret: print("Can't原创 2021-08-18 20:36:49 · 85 阅读 · 0 评论 -
2021-08-18opencv 图像缩放,旋转
图像缩放//图像缩放#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv; int main(){ //Mat image = imread("F:\\opencvpy\\opencvcpp\\pic\\0.jpg",CV_LOAD_IMAGE_GRAYSCALE); //存放自己图像的路径 Mat image = imread("F:\\o原创 2021-08-18 14:32:40 · 628 阅读 · 0 评论 -
2021-08-17opencv 图像卷积
自定义线性滤波卷积是图像处理中一个操作,是kernel(掩膜)在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。Robert算子#include "cv.hpp"#include<iostream>#include<ctime>#include<random>using nam原创 2021-08-18 11:15:53 · 64 阅读 · 0 评论 -
2021-08-17 opencv c++学习笔记
opencv学习教程加载图像(用cv::imread)修改图像色彩空间 (cv::cvtColor)保存图像(cv::imwrite)Matcv::Mat::Mat构造函数图像混合调整图像亮度与对比度绘制形状与文字模糊原理膨胀与腐蚀采样加载图像(用cv::imread)imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称(绝对名称);第二个参数,表示加载的图像是什么类型,支持常见的三个参数值IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变IM原创 2021-08-17 23:17:23 · 181 阅读 · 0 评论