![](https://img-blog.csdnimg.cn/20190426082135562.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Opencv+Python入门
总结计算机视觉库Opencv在Python中的常见使用方法,以及一些比较零散的经典算法在python中实现的用法。
秋名鱼酱
Import motivation!!!
展开
-
【Opencv3+Python3入门(22)验证码识别】
验证码识别:利用Opencv+Tesserct-OCR(TesseractOCR ,它是一款由HP实验室开发由 Google 维护的开源 OCR(Optical Character Recognition , 光学字符识别)引擎)因此需要借助该引擎完成识别过程。首先采用Opencv预处理,然后利用Tesserct-OCR进行验证码识别 依赖于pytesseract模块以及PIL模块,需...原创 2019-04-29 18:01:12 · 911 阅读 · 0 评论 -
【Opencv3+Python3入门(21)人脸检测】
人脸检测主要利用Opencv中的API与其中封装好的Haar人脸特征数据(小数部分较多计算更复杂)以及LBP数据(多数为整数计算)来调用进行人脸识别的任务。若下载安装了Opencv,则其文件中包含数据,或者可以取其github网站上下载文件。Haar特征数据下载地址:https://github.com/opencv/opencv/blob/master/data/haarcascad...原创 2019-04-29 11:55:46 · 617 阅读 · 0 评论 -
【Opencv3+Python3入门(20)分水岭算法】
分水岭算法基于距离变换的分水岭分割算法一般流程:1,输入图像2,变换为灰度图像3,二值化图像4,距离变换5,寻找种子点6,生成marker7,分水岭变换8,输出图像#20,分水岭算法import cv2 as cvimport numpy as npdef image_Watershed(image): print(image.shape)...原创 2019-04-29 10:47:40 · 1319 阅读 · 0 评论 -
【Opencv3+Python3入门(19)膨胀腐蚀开闭运算等形态学操作】
膨胀腐蚀操作:图像的形态学是图像处理中可以化为一个单独的分支,主要是由数学的集合论中的相关理论发展而来,用于处理灰度图像与二值化图像中的重要手段。膨胀(Dilate):n*n模板(矩形或十字交叉等)对图像所有像素进行窗口滑动,用窗口内最大值替换中心像素(即锚点)的值。腐蚀(Erode):n*n模板对图像所有像素进行窗口滑动,用窗口内最小值替换中心像素(即锚点)的值。#19,...原创 2019-04-29 10:05:58 · 815 阅读 · 0 评论 -
【Opencv3+Python3入门(18)几何对象测量】
对象测量主要包括一些:弧长与面积,图像中的多边形拟合,几何矩计算等。下面了解其API的使用方式。弧长与面积:步骤:轮廓发现完成,计算每个轮廓的弧长与面积,单位为像素。### 18,几何对象测量import cv2 as cvimport numpy as npdef image_Measure(image): #防止随机噪声影响效果,首先对原图高斯滤波 dst...原创 2019-04-28 23:36:58 · 612 阅读 · 0 评论 -
【Opencv3+Python3入门(17)图像轮廓发现】
Opencv中有两个主要用于轮廓发现的API:findContours发现轮廓,drawContours绘制轮廓。轮廓发现的原理:是基于图像的边缘提取的基础上,寻找对象的轮廓的方法。因此边缘提取的阈值大小会影响到轮廓最终的结果好坏。#17,轮廓发现import cv2 as cvimport numpy as npdef image_Contours(image): #防...原创 2019-04-28 21:47:04 · 766 阅读 · 0 评论 -
【Opencv3+Python3入门(16)图像霍夫圆检测】
Opencv中实现霍夫圆检测一般是基于图像梯度的实现,而且其检测效果对噪声特别敏感,因此需要对图像首先进行滤波处理。一般步骤:1,检测边缘,发现可能的圆心。2,基于第一步的基础上,计算可能的候选圆心的半径大小。图像霍夫圆检测在实际的检测中,各种参数之类需要自行进行调节。#16,霍夫圆检测import cv2 as cvimport numpy as npdef ...原创 2019-04-28 11:54:07 · 1883 阅读 · 0 评论 -
【Opencv3+Python3入门(15)图像霍夫变换直线检测】
图像霍夫变换直线检测霍夫直线检测是利用点在直角坐标与极坐标之间的互相转换关系来进行求解的。检测前提:边缘检测已经完成。根据图像的边缘上的每一个点的坐标(x,y)都有其对应的极坐标表示,此时若固定(x,y),将角度θ作为自变量,极半径r作为因变量,则可以根据下面的表达式(即上面红色直线的平面坐标表达式,(x,y)为其上面的点):得到r随θ变化的曲线。在不知道对于每一个图像...原创 2019-04-26 19:05:22 · 1674 阅读 · 0 评论 -
【Opencv3+Python3入门(14)图像Canny边缘检测】
图像Canny边缘检测算法为一种非常有效的图像边缘检测的算法。基本步骤参考:https://blog.csdn.net/KID_yuan/article/details/88566444#14,canny边缘检测import cv2 as cvimport numpy as np#边缘检测算法def edge_image(image): blurred = cv....原创 2019-04-26 15:02:05 · 430 阅读 · 0 评论 -
【Opencv3+Python3入门(13)图像的梯度】
Opencv中已经封装好了API用于处理图像的梯度,因此了解其调用方式。#13,图像梯度import cv2 as cvimport numpy as npdef sobel_demo(image): #使用sobel算子计算梯度 grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) grad_y = cv.Sobel(image...原创 2019-04-26 15:01:56 · 227 阅读 · 0 评论 -
【Opencv3+Python3入门(12)图像金字塔与拉普拉斯金字塔】
高斯金字塔的过程为:高斯模糊+降采样拉普拉斯金字塔:本层图像上采样,减去上一层的高斯金字塔对应图像即可(即差值)。#12,图像金字塔操作import cv2 as cvimport numpy as np#高斯金字塔def pyramid_demo(image): level = 3 #设置金字塔的层数为3 temp = image.copy() #...原创 2019-04-26 14:34:21 · 660 阅读 · 0 评论 -
【Opencv3+Python3入门(11)图像二值化方法】
Opencv中封装好了二值化许多方法,例如,全局阈值二值化和局部阈值二值化。二值化方法可以应用在比如图像的前景与背景的分割。#图像二值化处理import cv2 as cvimport numpy as npdef threshold_demo(image): #局部阈值 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)...原创 2019-04-26 14:22:05 · 923 阅读 · 0 评论 -
【Opencv3+Python3入门(10)直方图绘制与直方图均衡化】
图像的直方图也是图像的一个重要的属性组成,通过分析直方图分布,可以初步大致推断图像的信息,另外通过直方图的一些计算,例如直方图匹配等,可以用于模板匹配和搜索等。除此之外,直方图均衡化也是对一幅图像进行对比度调整的重要方法。## 10,绘制图像直方图import cv2 as cvimport numpy as npimport matplotlib.pyplot as plt...原创 2019-04-26 13:52:10 · 821 阅读 · 1 评论 -
【Opencv3+Python3入门(9)模糊操作与基本滤波操作】
图像的模糊处理,滤波,卷积等操作等是图像处理与计算机视觉中的一个重要内容。图像均值滤波:函数:cv.blur(src, ksize[, dst[, anchor[, borderType]]])#9,图像滤波操作import cv2 as cvimport numpy as npdef mean_Filter(image): #均值滤波 #第一个参数:输入...原创 2019-04-26 13:34:31 · 575 阅读 · 0 评论 -
【Opencv3+Python3入门(8)分割ROI兴趣区域与漫水填充】
在常见的计算机视觉问题中,通常我们只对图像中的某一部分区域感兴趣,比如人脸区域等,因此我们只需要对人脸区域部分进行提取,然后再进行后续的操作。图像ROI兴趣区域对于图像ROI区域,只需要将自己预先计算好的区域大概范围的图像值赋值给新的变量并显示即可。最方便的方式是使用Numpy来进行获取图像数组数据。#8.1,图片ROI切割import cv2 as cvimport ...原创 2019-04-26 12:13:54 · 1528 阅读 · 0 评论 -
【Opencv3+Python3入门(7)调整对比度与亮度使用createTrackbar()滑动条】
在Opencv中封装了许多函数,而这些函数的调用形式一般都是以cv.×××等命名的,根据意思来进行判断就可以判断出来个大概。图像调整对比度与亮度:#7,调整图片对比度和亮度import cv2 as cvimport numpy as npdef contrast_Ratio_brightness(image,a,g): #a为对比度,g为亮度 h,w,c=...原创 2019-04-26 10:35:39 · 2607 阅读 · 0 评论 -
【Opencv3+Python3入门(6)图像数据增强平移旋转仿射变换】
在深度学习等计算机视觉的一些应用领域,通常我们拿到的数据集很少或者数据千篇一律了,图像数据缺乏多样性和代表性,此时我们考虑需要对图像进行一定的旋转,平移,仿射变换等来对图像进行增强操作,以此来增加数据的多样性,进而可以训练出更好的网络模型。图像平移:import numpy as np import cv2 as cvdef imageShift(image): #图...原创 2019-04-26 09:15:41 · 1570 阅读 · 1 评论 -
【Opencv3+Python3入门(5)彩色图像通道分离与合并】
首先要了解,在Opencv中的图像数据通道存储顺序是BGR而不是RGB,和我们常规的显示通道顺序正好相反,可以通过结合matplotlib进行验证,并且进而实现对图像的通道分离与合并操作。彩色图像通道分离与合并#5,图像通道分离与合并import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltdef spli...原创 2019-04-25 22:09:20 · 3808 阅读 · 0 评论 -
【Opencv3+Python3入门(4)图像色彩空间转换】
在图像处理的应用中各种色彩空间的转换非常重要,尤其是RGB与HSV(HIS)空间相互转换,H(色调)S(饱和度)V(亮度)。图像色彩空间转换RGB:• RGB颜色模型称为与设备相关的颜色模型,RGB颜色模型所覆盖的颜色域取决于显示设备荧光点的颜色特性,与硬件相关。• 使用最多,最熟悉的颜色模型。它采用三维直角坐标系。红、绿、蓝原色是加性原色,各个原色混合在一起可以产生复合色。• ...原创 2019-04-25 22:09:02 · 757 阅读 · 0 评论 -
【Opencv3+Python3入门(3)图像数组运算操作】
在python版本的opencv中图像数据是以多维数组的形式读取与操作的,因此利用opencv并结合numpy对图像数据进行操作非常方便地可以对图像某一位置像素数据或者某一区域的像素进行修改和添加等操作。还可以使用opencv中自带的cv.bitwise_not(image)对图像像素进行取反。以及最基本的使用for循环来复制每个通道的像素,这样会消耗更多时间。1,图像像素取反操作:...原创 2019-04-25 12:58:18 · 1403 阅读 · 0 评论 -
【Opencv3+Python3入门(2)读取摄像头与视频文件】
在Opencv中读取视频文件时,需要注意的是视频文件的路径,如果遇到路径即使是全英文时仍然不能读取的情况时,需要在前面加上r,表示原生字符串,(我读取图片操作时不管是'F:\OutputResult\srcImage\image.jpg',还是“\\”,还是“/”都可以;但是读视频就需要加一个r,不知道是为什么,可能是由于版本的问题。)#2,python读取摄像头或视频文件import ...原创 2019-04-24 23:02:10 · 1135 阅读 · 0 评论 -
【Opencv3+Python3入门(1)图像读取与保存】
Opencv是于1999年由Intel建立,如今由Willow Garage提供支持。实现了图像处理和计算机视觉方面的很多通用算法,可以说是计算机视觉入门的必要了解的基础,并且包括许多编程语言例如:C++、Python、Ruby、MATLAB等的接口。若学过C++中的opencv,再学习其在python中的应用的话可能会很容易理解,不过,由于最近用python比较多,所以就想着把Opencv在...原创 2019-04-24 15:22:03 · 744 阅读 · 0 评论