opencv学习笔记系列
文章平均质量分 58
天涯尽头黄鹤楼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于OpenCV的摄像头测距(2022-1-1)
基于OpenCV的摄像头测距前言去年暑假参加了一个比赛,比赛内容中需要确定目标的位置 本来想全用户图像完成的,最后发现不是很符合要求,最终放弃。比完赛之后,就忙别的事了。直到现在突然想试试摄像头测距。就来了一、测距原理摄像头单目测距原理及实现空间的深度或距离等数据的摄像头。人的眼睛长在头部的前方,两只眼的视野范围重叠,两眼同时看某一物体时,产生的视觉称为双眼视觉。双眼视觉的优点是可以弥补单眼视野中的盲区缺损,扩大视野,并产生立体视觉。f为摄像头的焦距,c为镜头光心模型的主要依据公式为f原创 2022-01-01 21:46:51 · 22736 阅读 · 33 评论 -
Open CV系列学习笔记(二十五)数字验证码识别 2021-02-18
Open CV系列学习笔记(二十五)数字验证码识别 OpenCV+Tesserct-OCR OpenCV预处理 Tesserct-OCR验证码识别Tesserct-OCR去 http://pythonware.com/products/pil/https://pypi.python.org/pypi/pytesseract去年装必须的API代码:import cv2 as cvimport numpy as npfrom PIL import Imageimport te原创 2021-02-18 11:11:43 · 261 阅读 · 0 评论 -
Open CV系列学习笔记(二十四)人脸检测 2021-02-18
Open CV系列学习笔记(二十四)人脸检测人脸检测人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有原创 2021-02-18 10:56:01 · 494 阅读 · 0 评论 -
Open CV系列学习笔记(二十三)分水岭算法2021-02-15
Open CV系列学习笔记(二十三)分水岭算法分水岭算法所谓分水岭算法有好多种实现算法,拓扑学,形态学,浸水模拟和降水模拟等方式。分水岭算法(Watershed Algorithm),是根据分水岭的构成来考虑图像的分割。现实中我们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情形。当然在需要的时候,要人工构筑分水岭,以防集水盆之间的互相穿透。而区分高山(plateaus)与水的界线,以及湖与湖之间的间隔或 都是连通的关系,就是分水岭(watershed)。分水岭分割方法,是一种基于拓扑原创 2021-02-15 11:40:18 · 407 阅读 · 0 评论 -
Open CV系列学习笔记(二十二)其他形态学操作 2021-02-15
Open CV系列学习笔记(二十二)其他形态学操作顶帽又称礼帽,是原始图像与进行开运算之后得到的图像的差。因为开运算到来的结果是放大了裂痕或者局部低亮度的区域,因此,从原图中减去运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作和选择的核的大小相关。顶帽运算往往用来分离比邻近点亮一些的斑块。当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。代码:def hat_gray_demo(image): gray = cv.cv原创 2021-02-15 11:32:59 · 199 阅读 · 0 评论 -
Open CV系列学习笔记(二十一)开闭操作 2021-02-14
Open CV系列学习笔记(二十一)开闭操作开操作开操作是一般使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。 图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。 主要是应用在二值图像分析中,灰度图像亦可。 开操作=腐蚀+膨胀, 输入图像 + 结构元素代码:ef open_demo(image):#开操作 print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, bina原创 2021-02-14 21:47:46 · 271 阅读 · 0 评论 -
Open CV系列学习笔记(二十)膨胀与腐蚀 2021-02-14
Open CV系列学习笔记(二十)膨胀与腐蚀图像形态学图像形态学是图像处理学科的一个单独分支学科灰度与二值图像处理中重要手段是由数学的集合论等相关理论发展起来的图像膨胀膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。图中说明了膨胀的计算过程。图(a)显示了包含一个矩形对象的简单二值图像;图(b)是一个结构元素,在此例中它是一条5个像素长的斜线。计算时,结构元素通常用0和1的矩阵表示。有时,如图中所示,为方便起见可只显示1。另外,结构元素的原点原创 2021-02-14 21:40:06 · 470 阅读 · 1 评论 -
Open CV系列学习笔记(十九)对象测量 2021-02-13
Open CV系列学习笔记(十九)对象测量对象测量对象检测是指利用图像处理与模式识别等领域的理论和方法,检测出图像中存在的目标对象,确定这些目标对象的语义类别,并标定出目标对象在图像中的位置。对象检测是对象识别的前提。只有检测到对象才能对对象进行识别。在计算机视觉研究领域,对象检测一般可以分为图形对象检测和视频对象检测,利用图像处理与模式识别等领域的理论和方法,从图像或视频中分离出有一定意义的实体——对象,如人、物体等。在对象检测中有一类通用的对象检测方法, 似物性度量(Objectness meas原创 2021-02-13 17:36:26 · 215 阅读 · 0 评论 -
Open CV系列学习笔记(十八)轮廓发现 2021-02-13
Open CV系列学习笔记(十八)轮廓发现轮廓发现轮廓检测指在包含目标和背景的数字图像中,忽略背景和目标内部的纹理以及噪声干扰的影响,采用一定的技术和方法来实现目标轮廓提取的过程。它是目标检测、形状分析、目标识别和目标跟踪等技术的重要基础。目前轮廓检测方法有两类,一类是利用传统的边缘检测算子检测目标轮廓,另一类是从人类视觉系统中提取可以使用的数学模型完成目标轮廓检测。基于边缘检测的轮廓检测方法是一种低层视觉行为,它主要定义了亮度、颜色等特征的低层突变,通过标识图像中亮度变化明显的点来完成边缘检测,因原创 2021-02-13 17:26:54 · 451 阅读 · 1 评论 -
Open CV系列学习笔记(十七)圆检测 2021-02-12
Open CV系列学习笔记(十七)圆检测霍夫变换霍夫变换是一种特征检测(feature extraction),被广泛应用在图像分析(image analysis)、计算机视觉(computer vision)以及数位影像处理(digital image processing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的算法流程大致如下,给定一个物件、要辨别的形状的种类,算法会在参数空间(parameter space)中执行投票来决定物体的形状,而这是由累加空间(accumulator sp原创 2021-02-12 21:54:12 · 428 阅读 · 0 评论 -
Open CV系列学习笔记(十六)直线检测 2021-02-12
Open CV系列学习笔记(十六)直线检测霍夫变换霍夫变换是一种特征检测(feature extraction),被广泛应用在图像分析(image analysis)、计算机视觉(computer vision)以及数位影像处理(digital image processing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的算法流程大致如下,给定一个物件、要辨别的形状的种类,算法会在参数空间(parameter space)中执行投票来决定物体的形状,而这是由累加空间(accumulator s原创 2021-02-12 21:44:33 · 451 阅读 · 1 评论 -
Open CV系列学习笔记(十六)Canny边缘提取 2021-02-10
Open CV系列学习笔记(十六)Canny边缘提取Canny算法Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。更为重要的是 Canny 创立了边缘检测计算理论(Computational theory of edge detection)解释这项技术如何工作。通常情况下边缘检测的目的是在保留原有图像属性的情况下,显著减少图像的数据规模。有多种算法可以进行边缘检测,虽然Canny算法年代久远,但可以说它是边缘检测的一种标准算法,而且仍在研究中广泛使用原创 2021-02-10 23:04:26 · 544 阅读 · 0 评论 -
Open CV系列学习笔记(十五)图像梯度 2021-02-10
Open CV系列学习笔记(十五)图像梯度图像梯度图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。图像梯度: G(x,y) = dx(i,j) + dy(i,j);dx(i,j) = I(i+1,j) - I(i,j);dy(i,j) = I(i,j+1) - I(i,j);其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。图像梯度一般也可以用中值差分:dx(i,j) = [I(i+1,j) - I(i-1,j)]/2;dy(i,j) = [I(i原创 2021-02-10 22:57:30 · 320 阅读 · 0 评论 -
Open CV系列学习笔记(十四)图像金字塔 2021-02-09
Open CV系列学习笔记(十四)图像金字塔图像金字塔图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。如上述定义所说,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。当向金原创 2021-02-09 21:09:56 · 321 阅读 · 0 评论 -
Open CV系列学习笔记(十三)超大图像二值化 2021-02-09
Open CV系列学习笔记(十三)超大图像二值化1.可以采用分块方法;2.先缩放处理就行二值化,然后还原大小。一:分块处理超大图像的二值化问题局部阈值二值化def big_image_binary0(image): print(image.shape) cw = 256 ch = 256 h, w = image.shape[:2] gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) for row in rang原创 2021-02-09 21:01:25 · 251 阅读 · 0 评论 -
Open CV系列学习笔记(十二)图像二值化 2021-02-06
Open CV系列学习笔记(十二)图像二值化图像二值化图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而原创 2021-02-06 11:04:04 · 699 阅读 · 0 评论 -
Open CV系列学习笔记(十一)模板匹配 2021-02-05
Open CV系列学习笔记(十一)模板匹配模板匹配模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。 所以模板匹配首先需要一个模板图像T(给定的子图像) 另外需要一个待检测的图像-源图像S 工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。模板匹配算法代码:def template_demo():#三种模板匹配方法 tpl = cv.imread("E:/picture/31.jpg")原创 2021-02-05 19:59:34 · 335 阅读 · 0 评论 -
Open CV系列学习笔记(一)图像的加载与保存 2021-01-19
Open CV系列学习笔记(一)图像的加载与保存一、视频读取调用电脑摄像头import cv2 as cvdef video_demo(): # 视屏读取 capture = cv.VideoCapture(0) while (True): ret, frame = capture.read() frame = cv.flip(frame, 1) cv.imshow("video", frame) c = cv.w原创 2021-01-19 11:29:32 · 309 阅读 · 2 评论 -
Open CV系列学习笔记(二)Numpy数组操作 2021-01-27
Open CV系列学习笔记(二)Numpy数组操作遍历图片中的像素点对其修改首先获取图片的的宽(width)高(height)和通道数(channels),遍历每个像素点,对其修改。import cv2 as cvimport numpy as npdef access_pixels(image):#遍历图片中的像素点 对其修改 print(image.shape) height = image.shape[0]#获取图片高 width = image.shape[1]原创 2021-01-27 12:03:14 · 268 阅读 · 0 评论 -
Open CV系列学习笔记(三)色彩空间 2021-01-28
Open CV系列学习笔记(三)色彩空间什么是色彩空间色彩是人的眼睛对于不同频率的光线的不同感受,色彩既是客观存在的(不同频率的光)又是主观感知的,有认识差异。所以人类对于色彩的认识经历了极为漫长的过程,直到近代才逐步完善起来,但至今,人类仍不能说对色彩完全了解并准确表述了,许多概念不是那么容易理解。“色彩空间”一词源于西方的“Color Space”,又称作“色域”,色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。我们经原创 2021-01-28 13:43:55 · 380 阅读 · 3 评论 -
Open CV系列学习笔记(四)像素运算 2021-01-29
Open CV系列学习笔记(三)Numpy色彩空间二级标题三级标题四级标题五级标题六级标题原创 2021-01-29 12:18:48 · 270 阅读 · 1 评论 -
Open CV系列学习笔记(五)Roi与泛洪填充 2021-01-30
Open CV系列学习笔记(五)Roi与泛洪填充一丶Roi1.什么是RoiROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。圈原创 2021-01-30 19:55:52 · 416 阅读 · 0 评论 -
Open CV系列学习笔记(六)模糊操作 2021-01-31
Open CV系列学习笔记(六)模糊操作什么是模糊操作?模糊操作的作用是在图片时减低噪声。模糊操作有均值模糊,中值模糊,高斯模糊和自定义模糊模糊操作的基本原理:1、基于离散卷积2、定义好每一个卷积核3、不同的卷积核得到不同的卷积效果4、模糊是卷积的一种表象卷积原理:一、均值模糊CV2.BLUR原型:blur(src, ksize, dst=None, anchor=None, borderType=None)作用:对图像进行算术平均值模糊参数:ksize:卷积核的大小。dst,原创 2021-01-31 11:13:41 · 349 阅读 · 0 评论 -
Open CV系列学习笔记(七)边缘保留滤波(EPF) 2021-02-01
Open CV系列学习笔记(七)边缘保留滤波(EPF)高斯双边双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点 。双边滤波器的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布原创 2021-02-01 10:24:55 · 722 阅读 · 0 评论 -
Open CV系列学习笔记(八)图像直方图 2021-02-02
Open CV系列学习笔记(八)图像直方图什么是图像直方图图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。图像分割图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度直方图的阈值分割计算简单,适用于目标与背景分布于不同灰度范围的灰度图像,特别是遥感图像。图像检索图像检索是 [原创 2021-02-02 00:02:00 · 286 阅读 · 0 评论 -
Open CV系列学习笔记(九)直方图应用 2021-02-03
Open CV系列学习笔记(九)直方图应用直方图均衡化在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。直方图是品质管理七大工具之一。把直方图上每个属性的计数除以所有属性的计数之和,就得到了归一化直方图。之所以叫“归一”,是因为归一化直方图的所有属性的计数之和为1,也就是说,每个属性对应计数都是0到1之间的一个数(百分比)。这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当原创 2021-02-03 10:54:20 · 231 阅读 · 0 评论 -
Open CV系列学习笔记(十)直方图反向投影 2021-02-04
Open CV系列学习笔记(十)直方图反向投影反向投影概念反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式,简单来讲,反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的特征。反向投影在某一位置的值就是原图对应位置像素值在原图像中的总数目。2D直方图代码:def hist2d_demo(image):#2D直方图 hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV) hist = cv.calcHist([im原创 2021-02-04 20:49:00 · 152 阅读 · 0 评论
分享