opencv
没人不认识我
学无止境
展开
-
2019-10-23 opencv官网教程学习总结
官网对于图像的处理,基本的步骤是这样的:step1.取得图像数据step2.将图像进行平滑处理step3.进行边缘检测,阈值分析step4.进行形态学的操作step5.获取某些特征点step6.分析数据1.opencv中的gui特性1-1.绘图学习2.核心操作 Core Operations2-1.基础操作/数学运算/性能测量和改进3.opencv中的图像处理 Imag...原创 2019-10-23 16:07:19 · 398 阅读 · 0 评论 -
2019-10-22 opencv和python绑定是如何实现的?
官网参见https://docs.opencv.org/3.4.1/da/d49/tutorial_py_bindings_basics.htmlopencv和python绑定是如何生成的?opencv中所有算法都是C++实现的。不过所有算法都可以用其他语言使用的,例如:python,Java。这是通过绑定生成器来实现的。这些生成器在C++和python之间创建了桥梁,让用户可以在python...原创 2019-10-22 13:02:47 · 628 阅读 · 0 评论 -
2019-10-21 opencv对象检测-使用Haar 分类器进行面部检测
官网https://docs.opencv.org/3.4.1/d7/d8b/tutorial_py_face_detection.html学习参见https://mp.csdn.net/mdeditor/93845155#原创 2019-10-21 08:57:09 · 121 阅读 · 0 评论 -
2019-10-18 opencv计算摄影3-高动态范围图像High Dynamic Range (HDR),提供更多的动态范围和图像细节,更好的反映出真实环境中的视觉效果
官网参见https://docs.opencv.org/3.4.1/d2/df0/tutorial_py_hdr.html提供更多的动态范围和图像细节,更好的反映出真实环境中的视觉效果理论高动态范围图像(High Dynamic Range imaging,简称HDRI或者HDR)技术被用于图像和摄影中,相比较标准的数字图像和摄影,它可以提供更多的动态范围光度。虽然人眼可以适应各种光照条...原创 2019-10-18 10:59:57 · 1025 阅读 · 0 评论 -
2019-10-17 opencv计算摄影2-图像修复(2种算法,需要掩膜)
官网https://docs.opencv.org/3.4.1/df/d3d/tutorial_py_inpainting.html基础你们中的大多数人家中都有一些退化的老照片,上面会有一些黑点或者画了几笔。你有没有想过如何修复它们?我们不能简单的在画图工具中擦除它们,因为画图工具只是简单的把白色替代了黑色而已,这是没有用的。这种情况就可以使用图像修复技术。它的基本思路很简单:那些污损部分用它...原创 2019-10-17 10:59:35 · 727 阅读 · 0 评论 -
2019-10-16 opencv计算摄影1-图像去噪(非局部均值去噪,Non-Local Means Denoising。比高斯/中值平滑好)
官网参见https://docs.opencv.org/3.4.1/d5/d69/tutorial_py_non_local_means.html理论前面章节中我们学习了很多图像平滑技术,例如高斯平滑,中值平滑等,它们都可以在一定程度上消除小的噪音。在那些技术中,我们选取像素点周围小领域,然后做一些操作,比如用高斯加权平均或者中值去替代中心点像素。简而言之,像素的噪音去除是依赖它的局部邻域。...原创 2019-10-16 11:14:54 · 711 阅读 · 0 评论 -
2019-10-15 opencv机器学习3-k均值聚类2-opencv中的k均值聚类
官网参见https://docs.opencv.org/3.4.1/d1/d5c/tutorial_py_kmeans_opencv.html参数输入参数1.samples:np.float32类型。每个特征单独一列。2.nclusters(K) :最终需要的聚类数目3.criteria :迭代终止条件。满足该条件,迭代停止。实际上,它应该是有3个成员的元组(type, max_it...原创 2019-10-15 11:54:31 · 174 阅读 · 0 评论 -
2019-10-14 opencv机器学习3-k均值聚类1-理解k均值聚类(K-Means Clustering )
官网参见https://docs.opencv.org/3.4.1/de/d4d/tutorial_py_kmeans_understanding.html自学参见https://zhuanlan.zhihu.com/p/32830192T恤尺寸问题想象有一家公司要上市一款新T恤。显然需要生成不同尺寸的T恤以满足不同用户的需求。所以这家公司需要收集很多人身高和体重信息,并把它们绘制成下图。...原创 2019-10-14 13:38:38 · 178 阅读 · 0 评论 -
2019-9-6 opencv特征检测和描述8-ORB (Oriented FAST and Rotated BRIEF)-FAST特征点和BRIEF描述符的结合
官网参见https://docs.opencv.org/3.4.1/d1/d89/tutorial_py_orb.htmlORB采取FAST算法检测特征点,采取BRIEF算法计算特征点描述子其所解决的问题是SIFT特征的高昂计算代价,以及BRIEF特征本身具有的缺乏旋转不变性、尺度不变性以及对噪声敏感的弱点。作者基于FAST和BRIEF特征提出的二值特征串(0,1)在时间上比SIFT快10...原创 2019-09-06 12:03:35 · 754 阅读 · 0 评论 -
2019-9-5 opencv特征检测和描述7-BRIEF (Binary Robust Independent Elementary Features)描述符快速计算和匹配
官网https://docs.opencv.org/3.4.1/dc/d7d/tutorial_py_brief.html我们已经知道SIFT使用128维描述符,因为它使用的是浮点数,所以长度是512字节。而SURF算法最小256字节(对于64维描述符)。创建一个有上千个特征的向量需要大量内存资源,并不适用于一些资源有限的应用,特别是嵌入式系统。内存需要越大,那匹配时候就需要越多的时间。但是实...原创 2019-09-05 13:18:44 · 449 阅读 · 0 评论 -
2019-9-4 opencv特征检测和描述6-角点检测的快速算法(FAST Algorithm for Corner Detection)
官网参见https://docs.opencv.org/3.4.1/df/d0c/tutorial_py_fast.html我们已经学习了一些特征检测器(Harris 角点检测,Shi-Tomasi角点检测,SIFT,SURF),它们大多数效果都很好。但是从实时应用角度来看,它们都不够快。一个最好的例子就是SLAM(同步定位和映射)移动机器人,它的计算资源就很有限。为了解决这个问题,2006年...原创 2019-09-04 16:33:17 · 546 阅读 · 0 评论 -
2019-9-2 opencv特征检测和描述5-介绍SURF(SIFT算法的改进版)
官网https://docs.opencv.org/3.4.1/df/dd2/tutorial_py_surf_intro.htmlSURT算法是对SIFT算法的一种改进,主要是在算法的执行效率上,比SIFT算法来讲运行更快。上一节https://blog.csdn.net/weixin_42555985/article/details/100130570中介绍了关键点检测和描述。但是它的运行...原创 2019-09-02 16:22:42 · 1155 阅读 · 0 评论 -
2019-8-29 opencv特征检测和描述4-介绍SIFT(尺度不变特征变换)
官网参见 https://docs.opencv.org/3.4.1/da/df5/tutorial_py_sift_intro.html前2节,我们已经学习了一些角点检测技术,例如:Harris角点检测。这些检测具有旋转不变特性,也就是说,即使图像发生旋转,我们也能发现同样的角点。因为很明显,图像即使发生旋转,那些角点依然是角点。那如果是图像缩放会怎么样呢?图像的缩放之后,角点有可能不再是...原创 2019-08-29 15:44:00 · 735 阅读 · 0 评论 -
2019-8-28 opencv特征检测和描述3-Shi-Tomasi角点检测(适合目标跟踪。Harris 角点检测改进)
官网参见 https://docs.opencv.org/3.4.1/d4/d8c/tutorial_py_shi_tomasi.html在https://blog.csdn.net/weixin_42555985/article/details/100112049中已经了解了Harris 角点检测。1994年,Shi和C. Tomasi在《Good Features to Track》一文中对...原创 2019-08-28 11:38:11 · 261 阅读 · 0 评论 -
2019-8-28 opencv特征检测和描述2-Harris 角点检测
官网参见 https://docs.opencv.org/3.4.1/dc/d0d/tutorial_py_features_harris.html以前已经单独学习过了。参见 https://blog.csdn.net/weixin_42555985/article/details/94720257原创 2019-08-28 08:32:22 · 169 阅读 · 0 评论 -
2019-8-27 opencv特征检测和描述1-理解特征
官网 https://docs.opencv.org/3.4.1/df/d54/tutorial_py_features_meaning.html这一节,我们要学习理解什么是特征,为什么特征很重要,为什么角部很重要。大多数人都玩过拼图游戏。你会得到一个图像的一堆小碎片,然后要把它们正确拼装成一副大图像。问题是,你应该怎么做呢?如果用同样的理论编写计算机程序,那计算机是如何玩拼图的呢?如果计算机...原创 2019-08-27 14:27:41 · 218 阅读 · 0 评论 -
2019-8-26 opencv图像处理16-CrabCut算法交互式前景抽取(Interactive Foreground Extraction using GrabCut Algorithm)
官网参见 https://docs.opencv.org/3.4.1/d8/d83/tutorial_py_grabcut.htmlGrabCut算法是微软剑桥研究院的Carsten Rother, Vladimir Kolmogorov和Andrew Blake在《“GrabCut”: interactive foreground extraction using iterated graph...原创 2019-08-26 14:27:09 · 440 阅读 · 0 评论 -
2019-8-23 opencv图像处理15-分水岭算法分割图像(Image Segmentation with Watershed Algorithm )
官网参见 https://docs.opencv.org/3.4.1/d3/db4/tutorial_py_watershed.html以前自己也了解过了,https://blog.csdn.net/weixin_42555985/article/details/93713477这里为了确保资料完成性,就按照官网内容再了解一下。任何一个灰度图都可以看成一个地形表面,灰度值高的部分代表为山峰,...原创 2019-08-23 14:34:39 · 2865 阅读 · 0 评论 -
2019-9-9 opencv特征检测和描述9-特征匹配(图片在opencv下载)Brute-Force Matcher/FLANN Matcher
官网https://docs.opencv.org/3.4.1/dc/dc3/tutorial_py_matcher.htmlBrute-Force(暴力)匹配基础暴力匹配是很简单的。先取第一个集合(图像)中一个特征的描述符,然后和第二个集合(图像)中所有特征进行距离计算,最后返回距离最近的那个特征点(最匹配)。BF匹配,首先我们使用cv.BFMatcher()函数创建BFMatcher对象...原创 2019-09-09 14:19:47 · 461 阅读 · 0 评论 -
2019-9-10 opencv特征检测和描述10-特征匹配+单应(Homography,投影映射)查找对象
官网https://docs.opencv.org/3.4.1/d1/de0/tutorial_py_feature_homography.html在上一节我们做了什么呢?我们先有一副查找图像(queryImage),在图像上找到一些特征点;然后在有一副目标图像(trainImage),也在这个图上找到一些特征点。最后我们在2幅图的特征点之间进行匹配。简而言之,我们在另外一副杂乱的图像中找到了...原创 2019-09-10 11:42:03 · 466 阅读 · 2 评论 -
2019-9-12 opencv视频分析1-Meanshift(均值漂移)和Camshift(连续自适应均值漂移,根据追踪物体远近变化窗口大小)算法
官网https://docs.opencv.org/3.4.1/db/df8/tutorial_py_meanshift.htmlMeanshift均值漂移Meanshift背后的原理很简单。假设你有一堆点(就像直方图反向投影一样的像素分布)。给你一个小窗口(圆形的),你需要把窗口移动到最大像素灰度区域(或者是点数量最多的区域)。如下图所示初始窗口是图中蓝色圆形框C1,它的初始圆心标记为...原创 2019-09-12 13:36:27 · 721 阅读 · 0 评论 -
2019-10-11 opencv机器学习2-SVM2-使用SVM识别手写数据OCR
官网https://docs.opencv.org/3.4.1/dd/d3b/tutorial_py_svm_opencv.html手写数字的OCR在kNN中,我们使用像素灰度值作为特征向量。这次我们使用方向梯度直方图(Histogram of Oriented Gradients ,简称HOG)作为特征向量。在计算HOG之前,我们需要使用图像的二阶矩来进行抗扭斜处理。下面是自定义的desk...原创 2019-10-11 13:39:08 · 424 阅读 · 0 评论 -
2019-10-10 opencv机器学习2-SVM1-理解SVM(支持向量机)
官网https://docs.opencv.org/3.4.1/d4/db1/tutorial_py_svm_basics.html自学可以参见https://zhuanlan.zhihu.com/p/32188239线性分割数据观察下图在图中有2类数据,分别用红色和蓝色表示。kNN算法,对于测试数据,我们通常测试它和所有训练数据的距离,从中挑选一个最近的(训练数据分类作为测试数据的分类...原创 2019-10-10 16:14:40 · 186 阅读 · 0 评论 -
2019-10-9 opencv机器学习1-KNN2-使用kNN识别手写数据OCR
官网https://docs.opencv.org/3.4.1/d8/d4b/tutorial_py_knn_opencv.html手写数字的OCR我们的目标是构建一个应用可以识别手写的数字,为此我们需要一些训练数据和测试数据。OpenCV在opencv/samples/data目录中有一副包含5000个手写数字图片,每个数字500个,每个数字是20x20的图像。我们要做的第一步就是这个图片分...原创 2019-10-09 11:36:12 · 318 阅读 · 0 评论 -
2019-10-8 opencv机器学习1-KNN1-理解kNN(k近邻)
官网https://docs.opencv.org/3.4.1/d5/d26/tutorial_py_knn_understanding.htmlKNN是有监督机器学习中最简单的分类算法。它的想法就是在特征空间中找到距离测试数据最近的匹配。观察下图在图中有2组数据,蓝色方块和红色三角。我们把每一组数据称为类(Class)。可以把把蓝色和红色标记想象成在城镇地图中的一栋栋房子,这个城镇地图就...原创 2019-10-08 17:28:10 · 256 阅读 · 0 评论 -
2019-9-29 opencv摄像机标定与三维重构4-Depth Map from Stereo Images立体图像中的深度图(视差图)
官网参见https://docs.opencv.org/3.4.1/dd/d53/tutorial_py_depthmap.html上一节中,我们学习了极线约束的概念和相关术语。主要包含:如果我们有同一个场景的2幅图像,我们就可以直观的获得图像的深度信息。下图和其中的数学公式可以证明该理论。上图是上一节2幅图像间对极几何关系的等价三角形。它的等价方程式如下disparity=x−x′=Bf...原创 2019-09-29 11:23:14 · 1130 阅读 · 0 评论 -
2019-9-27 opencv摄像机标定与三维重构3-Epipolar Geometry 对极几何(极点/极线,画2个图像间的极线)
官网https://docs.opencv.org/3.4.1/da/de9/tutorial_py_epipolar_geometry.html基本概念当我们使用针孔相机获取图像时候,会丢失一些重要的信息,例如:图像的深度,或者从图像上的点到摄像机的距离,因为这是从3D到2D的转换。所以这里就有一个重要的问题,使用这种相机,我们是否可以获得信息的深度。答案就是使用多个相机。其实我们的眼界也是...原创 2019-09-27 14:56:19 · 1955 阅读 · 1 评论 -
2019-9-26 opencv摄像机标定与三维重构2-Pose Estimation 姿态估计
官网https://docs.opencv.org/3.4.1/d7/d53/tutorial_py_pose.html上一节学习了摄像机标定(图像畸变校正),你可以得到摄像机矩阵,畸变系数。得到图像图案之后,我们可以利用以上信息计算姿态,或者物体在空间中的位置,比如:物体如何旋转,如何放置等。对于平面对象,我们假设Z=0,由此问题就变为摄像机在空间中是如何放置,来获得我们的图像图案。所以,如果...原创 2019-09-26 15:25:44 · 828 阅读 · 0 评论 -
2019-9-25 opencv摄像机标定与三维重构1-Camera Calibration摄像机标定/图像畸变校准
官网https://docs.opencv.org/3.4.1/d9/db7/tutorial_py_table_of_contents_calib3d.html今天的廉价针孔摄像机带来了图像的畸变(distortion )。畸变主要有2种:径向畸变和切向畸变。径向畸变会让直线出现弯曲。离图像中心越远,效果越明显。以下图为例,国际象棋棋盘2边用红色线标注出来。可以发现棋盘边界和红线并不重合,说...原创 2019-09-25 15:43:24 · 1149 阅读 · 0 评论 -
2019-9-25 opencv视频分析3-Background Subtraction背景消除
官网https://docs.opencv.org/3.4.1/db/d5c/tutorial_py_bg_subtraction.html学习参见https://blog.csdn.net/weixin_42555985/article/details/94435602原创 2019-09-25 08:53:25 · 216 阅读 · 0 评论 -
2019-9-23 opencv视频分析2-Optical Flow光流
官网参见https://docs.opencv.org/3.4.1/d7/d8b/tutorial_py_lucas_kanade.html光流是由于物体或者摄像机的移动引起图像对象在2个连续帧之间的视运动(apparent motion)模式。它是一个向量场,每个向量都是显示点从第一个帧到第二个帧移动的位移矢量(displacement vector)。如下图所示在图中显示了5个连续帧。箭...原创 2019-09-23 16:25:17 · 376 阅读 · 1 评论 -
2019-8-22 opencv图像处理14-霍夫曼圆形变换(Hough Circle Transform )-识别图像中圆形
官网 https://docs.opencv.org/3.4.1/da/d53/tutorial_py_houghcircles.html以前自己也了解过了,https://blog.csdn.net/weixin_42555985/article/details/93467432这里为了确保资料完成性,就按照官网内容再了解一下。圆形的数据表达式为 (x−xcenter)2 + (y−yce...原创 2019-08-22 10:40:53 · 882 阅读 · 0 评论 -
2019-8-16 opencv图像处理11-图像变换(傅里叶变换)numpy和opencv实现-分析频率特性
官网 https://docs.opencv.org/3.4.1/de/dbc/tutorial_py_fourier_transform.html傅里叶变换通常被用来分析各种滤波器的频率特性。对于图像,2D离散傅里叶变换(DFT)被用于发现频域(frequency domain)。有一个计算DFT的快速算法叫快速傅里叶变换(FFT)。以上内容细节可以在任何一本图像处理或者信号处理的书中找到。...原创 2019-08-16 15:28:14 · 1129 阅读 · 0 评论 -
2019-8-21 opencv图像处理13-霍夫曼直线变换(Hough Line Transform )-识别图像中直线
官网参见 https://docs.opencv.org/3.4.1/d6/d10/tutorial_py_houghlines.html以前自己也了解过了,https://blog.csdn.net/weixin_42555985/article/details/93467432这里为了确保资料完成性,就按照官网内容再了解一下。霍夫曼变换 是一种用来检测任何形状的通用技术,只要这个形状可以...原创 2019-08-21 13:48:25 · 1305 阅读 · 0 评论 -
2019-7-15 opencv图像处理3-图像阈值(Image Thresholding)
官网参见https://docs.opencv.org/3.4.1/d7/d4d/tutorial_py_thresholding.html图像阈值处理是实现图像分割的一种方法。它利用图像中要提取的目标物 和 目标物的背景在灰度特性上的差异,把图像视为具有不同灰度级的两个区域(目标和背景)的组合。选取一个合适的阈值,以确定图像中的每个像素点应该属于目标区域还是背景区域,最终产生对应的二值图像,...原创 2019-07-15 15:07:12 · 502 阅读 · 0 评论 -
2019-7-5 opencv中的Harris 角点检测(Harris Corner Detection )
Harris 角点检测原理Harris 角点检测在python应用关于Harris 角点检测,官网参见https://docs.opencv.org/3.4.1/dc/d0d/tutorial_py_features_harris.htmlHarris 角点检测原理Chris_Harris 和 Mike_Stephens 于1988年在《A Combined Corner and Ed...原创 2019-07-05 14:05:43 · 313 阅读 · 0 评论 -
2019-7-4 opencv霍夫曼变化应用进阶(HSV颜色模型)
https://blog.csdn.net/weixin_42555985/article/details/94559401, 该例中提到利用霍夫曼变化,结合HSV变化可以识别不同颜色的形态。我们继续来尝试一下识别下图中不同颜色的球。以识别蓝色球为例代码# -*- coding: cp936 -*-import cv2import numpy as np# Step1. 转换为H...原创 2019-07-04 11:50:27 · 543 阅读 · 0 评论 -
2019-7-9 opencv核心操作(基础操作/数学运算/性能测量和改进)
官网参见https://docs.opencv.org/3.4.1/d7/d16/tutorial_py_table_of_contents_core.html图像基础操作获取像素值和修改像素值获取图像属性图像ROI(region of interest,感兴趣的区域)拆分和合并图像通道为图像制作边框(填充)。含:RGB和BGR互换。1.图像基础操作1-1. 获取像素值和...原创 2019-07-09 12:36:56 · 256 阅读 · 0 评论 -
2019-7-3 opencv视频中霍夫曼变化应用
继续使用上例中的视频https://blog.csdn.net/weixin_42555985/article/details/94435602霍夫曼变化参见https://blog.csdn.net/weixin_42555985/article/details/93467432应用代码import cv2import numpy as npcap = cv2.VideoCaptur...原创 2019-07-03 14:14:31 · 186 阅读 · 0 评论 -
2019-6-27 opencv人脸识别(Face Detection with Haar Feature-based Cascade Classifiers)
官网参考https://docs.opencv.org/3.4.0/d7/d8b/tutorial_py_face_detection.html上来就说了opencv使用的是基于Haar特征的级联分类(Haar Feature-based Cascade Classifiers)来进行人脸识别。同时还支持眼睛识别。。。基于Haar特征的级联分类是Paul Viola和Michael Jone...原创 2019-06-27 11:51:01 · 986 阅读 · 0 评论