![](https://img-blog.csdnimg.cn/20200815235109882.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
小白快速入门opencv
博主学习opencv时候的笔记和自己的理解,也会附上自己的源码和解释供大家学习!
大厂offer宝典
这个作者很懒,什么都没留下…
展开
-
20. 案例实战——数字验证码识别
》》点赞,收藏+关注,理财&技术不迷路《《Tesserct-OCR是接收image的方式,image这个方式是PIL处理过的image,而不是我们opencv中数组类型的image。"""验证码识别1.步骤: 1. 预处理-去除干扰线和点 2.不同的结构元素中选择 3. Image和numpy array相互转换 4. 识别和输出 tess.image_to_string2. 报错与处理当出现该错误:raise TesseractN...原创 2020-08-22 15:28:25 · 199 阅读 · 0 评论 -
19. OpenCV--人脸检测
》》点赞,收藏+关注,理财&技术不迷路《《记住知识:HAAR与LBP数据,我们得知道从哪里获取数据。OpenCV人脸检测-Haar级联和LBP,这里不展开细讲,直接上使用过程应用过程。"""使用Haar分类器进行面部检测1. 简单介绍Haar特征分类器对象检测技术它是基于机器学习的,通过使用大量的正负样本图像训练得到一个cascade_function,最后再用它来做对象检测。如果你想实现自己的面部检测分类器,需要大量的正样本图像(面部图像)和负样本图像(不含...原创 2020-08-22 15:27:50 · 173 阅读 · 0 评论 -
18. OpenCV--分水岭算法(前面知识总和的运用)
》》点赞,收藏+关注,理财&技术不迷路《《分水岭算法对图像分割非常有用。这种方法是一种很完美的分割算法。分水岭是一个很重要的算法,能不能实际应用OpenCV在实际中,分水岭就是一个标准。分水岭(Watershed)是基于地理形态的分析的图像分割算法,模仿地理结构(比如山川、沟壑,盆地)来实现对不同物体的分类。分水岭算法中会用到一个重要的概念——测地线距离。OpenCV中的分水岭就是基于距离变换,基于距离变换找到一些种子点(mark),从种子出发找到一些根据像素的梯度变换出发寻找到它的原创 2020-08-22 15:27:16 · 282 阅读 · 0 评论 -
17. OpenCV--其他形态学操作
》》点赞,收藏+关注,理财&技术不迷路《《目录:"""其他形态学操作:顶帽:原图像与开操作之间的差值图像黑帽:比操作与原图像直接的差值图像形态学梯度:其实就是一幅图像膨胀与腐蚀的差别。 结果看上去就像前景物体的轮廓基本梯度:膨胀后图像减去腐蚀后图像得到的差值图像。内部梯度:用原图减去腐蚀图像得到的差值图像。外部梯度:膨胀后图像减去原图像得到的差值图像。"""17.2 顶帽top_hat(使用gray)通过下面方法可以使得输出..原创 2020-08-22 15:26:40 · 86 阅读 · 0 评论 -
16. OpenCV--开闭操作
》》点赞,收藏+关注,理财&技术不迷路《《"""开运算:先进性腐蚀再进行膨胀就叫做开运算,它被用来去除噪声。闭运算:先膨胀再腐蚀。它经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。这里我们用到的函数是 cv2.morphologyEx()。开闭操作作用:1. 去除小的干扰块-开操作2. 填充闭合区间-闭操作3. 水平或垂直线提取,调整kernel的row,col值差异。比如:采用开操作,kernel为(1, 15),提取垂直线,kernel为(15,原创 2020-08-22 15:26:05 · 284 阅读 · 0 评论 -
15. OpenCV--膨胀与腐蚀(图像形态学)
》》点赞,收藏+关注,理财&技术不迷路《《目录:15.1 膨胀与腐蚀理论Dilation and erosion形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-most discriminative)的形状特征,如边界和连通区域等。同时像细化、像素化和修剪毛刺等技术也常应用于图像的预处理和后处理中,成为图像.原创 2020-08-22 15:25:30 · 334 阅读 · 0 评论 -
14. OpenCV--轮廓发现 & 轮廓测量
》》点赞,收藏+关注,理财&技术不迷路《《目录:14.1 轮廓发现介绍轮廓发现基于二值图像,二值图像通过边缘提取(canny)来得到。轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果。我们通过阈值分割提取到图像中的目标物体后,我们就需要通过边缘检测来提取目标物体的轮廓,使用这两种方法基本能够确定物体的边缘或者前景。接下来,我们通常需要做的是拟合这些边缘的前景,如拟合出包含前景或者边缘像素点的最小外包矩形、圆、凸包等几何形状,为计原创 2020-08-18 00:49:33 · 353 阅读 · 0 评论 -
13. OpenCV--直线&圆检测
》》点赞,收藏+关注,理财&技术不迷路《《目录:13.1 直线检测13.1.1 霍夫直线变换定义:霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,可以识别图像中的几何形状。它将图像空间中的特征点映射到参数空间进行投票,通过检测累计结果的局部极值点得到一个符合某特定形状的点的集合。经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。它的抗噪声、抗形变能力较强。另一种直线提取的方法是对图像边缘点进行链码追踪,在得原创 2020-08-18 00:48:51 · 293 阅读 · 0 评论 -
12. OpenCV--Canny边缘提取
》》点赞,收藏+关注,理财&技术不迷路《《Canny算子是John.F.Canny于20世纪80年代提出的一种多级边缘检测算法。该算子最初的提出是为了能够得到一个最优的边缘检测,即:检测到的边缘要尽可能跟实际的边缘接近,并尽可能的多,同时,要尽量降低噪声对边缘检测的干扰。是一个很好的边缘检测器,很常用也很实用的图像处理方法。总共可以分为五步:高斯模糊GaussianBlur。将输入的彩色图像进行高斯模糊来去掉噪声灰度转换cvtColor。计算梯度Sobel/Scharr。去.原创 2020-08-18 00:48:20 · 251 阅读 · 0 评论 -
11. OpenCV--图像梯度
》》点赞,收藏+关注,理财&技术不迷路《《目录:在高等数学中我们了解到梯度不是一个实数,他是一个向量,是有方向有大小的。现在以一个二元函数来举例,假设一二元函数f(x,y),在某点的梯度有:整理后得到:其实也就是他的方向导数。梯度的方向是函数变化最快的方向,沿着梯度的方向容易找到最大值。图像梯度的产生:图像中每两个像素做差,结果赋值给原来像素,像素之间的差值形成的图像就是梯度图像。图像梯度很重要的两个算子:sobel算子和拉普拉斯里面。在一幅模糊图像中的物体的原创 2020-08-18 00:47:28 · 587 阅读 · 0 评论 -
10. OpenCV--图像金字塔
》》点赞,收藏+关注,理财&技术不迷路《《目录:10.1 图像金字塔原理一幅图像的金字塔,是以一系列以金字塔形状排列的分辨率初步降低的图像的集合。如下图所示:金字塔的底部是待处理图像的高分辨率的表示,而顶部是低分辨率的表示当金子塔向上层移动的时候,尺寸和分辨率都会降低。假设基础级(也就是最底层)的尺寸为 或者用log表示,那么金字塔中间任意一级j的尺寸大小为: ,所以说,一个完整的图像金字塔可以由 个分辨率集所组成。10.2 Gaussian &.原创 2020-08-18 00:46:46 · 290 阅读 · 0 评论 -
9. OpenCV--图像二值化(Binary Image)
》》点赞,收藏+关注,理财&技术不迷路《《目录:9.1 二值化概念与原理二值化 —— 图像只有两种色,黑白。0-1,0=黑,1=白灰度:0-255彩色:255,255,255定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于...原创 2020-08-18 00:45:32 · 3785 阅读 · 0 评论 -
8. OpenCV--图像直方图 & 模板匹配
》》点赞,收藏+关注,理财&技术不迷路《《目录:对像素值进行统计。因为每个像素值的像素是0-255,对每个像素值有多少个像素点进行统计的。图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。上图显然 100+ 像素值的像素是最多的。14个像素点可以表示2^14种颜色。bin的大原创 2020-08-18 00:44:47 · 771 阅读 · 2 评论 -
6. OpenCV--ROI 与 泛洪填充
》》点赞,收藏+关注,理财&技术不迷路《《目录:ROI(region of interest),中文翻译过来就是感兴趣区域,在机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,这一部分区域被我们称之为感兴趣区域。ROI选定的这个区域一般是我们所关注的重点,圈定该区域后我们可以进行进一步的处理,在一定程度上可以减少工作量。ROI主要应用在视频监控领域,最常见的为ROI智能视频编码技术,具有ROI功能的摄像机可以让用户选择画面中..原创 2020-08-18 00:42:37 · 291 阅读 · 0 评论 -
7. 模糊操作/原理/API/种类/边缘保留
此章节是楼主码字最多的,也是我个人认为最为重要和基础的一个章节,我对原理,数学公式以及API解释都进行了详细描述,希望能坚持看完!希望对你们有所帮助!!目录:滤波(blur)操作是一种基于邻域的图像平滑方法。7.0 噪声和降噪图像噪声 —— pattern noise图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上..原创 2020-08-18 00:43:25 · 846 阅读 · 0 评论 -
5. OpenCV--像素运算
》》点赞,收藏+关注,理财&技术不迷路《《目录:对两幅图进行运算,这里有两个要求:图像大小要一样图像的数据类型要一样5.1 算数运算5.1.1 加减:这里原理很简单:linux这个图片,他的背景是黑色,黑色的 0 0 0,所以0 0 0 加上其他的数值就是其他的数值,所以最后背景还是蓝色。同理linux这几个字是白色,255, 255, 255. 一般默认类型是uint8, 八个字节最多表示255个数,所以相加一定会超过255, 超过255就截..原创 2020-08-17 00:42:37 · 635 阅读 · 0 评论 -
4. OpenCV--色彩空间(Color Space)
》》点赞,收藏+关注,理财&技术不迷路《《目录:先总结:色彩空间种类和定义的理论掌握转换方法:XXX = cv.cvtColor(image, cv.COLOR_BGR2XXX)调用opencv内部函数都属于调用他的API接口视频输入读取: capture = cv.VideoCapture(“ ”)ret, frame = capture.read()第一个参数ret 为True 或者False,代表有没有读取到图片, ret是布尔值,如果读取帧是正确的则返回T原创 2020-08-17 00:41:05 · 623 阅读 · 0 评论 -
3. Numpy数组操作
》》点赞,收藏+关注,理财&技术不迷路《《目录:3.1 numpy数组中一些矩阵知识理论回顾:一维数组:[0, 0], 就算写多个[ ], [ ], [ ] 也还是一维数组,就算他们几个竖着写也还是一维,因为只有一对括号!二维数组: [ [0, 0], [0, 0] ], 这种不管横着还是竖着都是二维[[0 0][0 0]]三维数组[2,2,2]:[ [ [0 0],[0 0] ] [ [0 0] [0 0] ] ]同理推倒这个:[[[0 0] [0 ...原创 2020-08-17 00:40:06 · 761 阅读 · 0 评论 -
2. OpenCV图片的加载与保存
》》点赞,收藏+关注,理财&技术不迷路《《图片——结构化存储的数据信息。图像就是信息,信息就是数据。总结:载入图片:src = cv.imread(“ ”, 1/0)参数2:加载图像的颜色类型。默认为1. 若为0则灰度返回,若为1则原图返回。显示图片:cv.imshow()第一个参数是窗口的名称第二个是待显示的图像通道数目:src.shape宽与高:src.size图像类型:src.dtype像素数据:pixel_data = np.array(sr.原创 2020-08-17 00:39:09 · 229 阅读 · 0 评论 -
1. OpenCV概述与环境搭建
》》点赞,收藏+关注,理财&技术不迷路《《 OpenCV是一个基于BSD(Berkeley Software Distribution)许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用原创 2020-08-17 00:38:08 · 293 阅读 · 0 评论