OpenCV学习之路
量子西瓜
yeah~
展开
-
基于OpenCV+pyqt实现的简单照片美颜
闲着没事在网上找美颜的例子,还真叫我找到了,然后自己就写了很丑很简单的一个小界面,可以实现人脸的磨皮和美白,效果还算不错。美颜部分代码是借鉴的大神的。meiyan.pyimport cv2import numpy as npimport sysimport cv2from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtCore i...原创 2020-03-23 13:53:05 · 815 阅读 · 0 评论 -
opencv+dlib实现人脸特征点找取完整代码
需要工具包:numpy,cv2,dlibdlib在做人脸识别方面非常好用,我们使用dlib提供的现成的训练集来对模型进行训练。网盘链接提取码:rn0n如果对dlib工具包安装有问题的,请移步win10 64 位系统python3.7 安装dlib包对opencv工具包安装有问题的,请移步小白安装opencv-pythonimport cv2import numpy as npimp...原创 2020-02-28 15:46:19 · 755 阅读 · 0 评论 -
OpenCV学习之路(十)轮廓的一些操作/contours返回值详解/轮廓类似详解
在findContours()函数中,我们一共返回了三个参数:image,contours,hierarchy。其中image代表的是修改之后的原图,contours代表的是轮廓,hierarchy代表的是轮廓的层次结构。我们主要来讨论一下第二个返回值:contours。以及轮廓可以进行的一些操作。contourscontours代表的是找到的轮廓,它是一个numpy中的列表结构,那么接下来就...原创 2020-02-24 15:42:06 · 8989 阅读 · 1 评论 -
OpenCV学习之路(九)轮廓详解
有的人可能会问,轮廓跟边缘有什么区别,不都是把物体的边缘画出来吗。实际上是不一样的,边缘一般是不连续的,而轮廓则是把边缘连接成了一个整体。cv2.findContours()这个函数是用来查找图像的轮廓,并且返回几个值。其构造函数如下:image,contours,hierarchy=cv2.findContours(img,mode,method) 参数解释:image:修改后的原...原创 2020-02-21 16:39:17 · 689 阅读 · 0 评论 -
opencv-python中Canny算子边缘检测详解
Canny算子是一种非常流行的边缘检测算法,在opencv中直接提供给了我们Canny函数,但是我们还是有必要对其原理有一定的了解。原理Canny算子包含四步操作:去噪首先要去除图像的噪声,边缘检测很容易受到噪声的影响。去噪操作中我们使用的是5*5的高斯滤波器。计算梯度在这一步要计算图像的梯度。不但要计算梯度的大小,还要求出梯度的方向。梯度的方向被归为四类:水平,垂直,两条对角线方向。...原创 2020-02-21 14:05:03 · 3013 阅读 · 0 评论 -
OpenCV之Laplacian算子
Laplacian算子也是计算图像梯度的一个利器。它相当于二阶Sobel算子的导数。咋来的不再从这里做解释,我们知道怎么用就行了。Laplacian算子的卷积核是这样的:其构造函数如下:cv2.Laplacian(src,ddepth)src:原图ddepth:返回图像的深度。由于在计算梯度时湖出现负数,所以我们选择范围更大的cv2.CV_64F。如果选择-1,即与原图相同,负数就...原创 2020-02-20 16:46:51 · 480 阅读 · 0 评论 -
OpenCV之scharr算子详解/scharr算子和sobel算子的区别
scharr算子实际上是sobel算子的优化,scharr算子在处理边缘时比sobel精度高一些。两种算子唯一的区别就是他们的卷积核不同,他们无论在计算时间还是复杂度都是一样的。容易看出两种算子卷积核的差异。opencv中提供给我们scharr算子的函数:cv2.Scharr(src,ddepth,dx,dy)参数解释同sobel,不清楚的请移步OpenCV之sobel算子详解但是我...原创 2020-02-20 16:28:18 · 3659 阅读 · 1 评论 -
OpenCV之sobel算子详解
原理sobel算子是一种计算不同方向上梯度的工具。原理是使用卷积核对图像进行处理。如果想计算x方向梯度,我们就需要这样的一个卷积核以卷积核的中心为中心,将卷积核与图像上像素值一一对应,卷积核上的数字相当于系数。利用如下公式即可计算出卷积核中心的x方向梯度。同理,如果想要计算y方向的梯度,卷积核应该是这样的,公式也是同理。我们求得了某一像素x方向和y方向的梯度,那么该像素的梯度容易得...原创 2020-02-20 15:49:36 · 9999 阅读 · 3 评论 -
opencv-python结构化元素cv2.getStructuringElement()
在使用opencv的过程中,我们经常需要各种各样的卷积核。如果是正方形的核还好说,但是有时候需要定义椭圆形或者十字形的核,我们就需要用到cv2.getStructuringElement()函数了第一个参数表示核的形状。可以选择三种矩形:MORPH_RECT;交叉形:MORPH_CROSS;椭圆形:MORPH_ELLIPSE;第二个参数表示核的尺寸。例1:import cv...原创 2020-02-19 15:54:09 · 4972 阅读 · 0 评论 -
OpenCV学习之路(八)图像的形态学转换(腐蚀,膨胀,开、闭运算,梯度运算,礼帽,黑帽)
形态学操作是对图像形状进行的操作,一般情况下是对二值化图像进行的操作,两个基本的形态学操作是腐蚀和膨胀。腐蚀腐蚀操作很容易理解,与生活中的腐蚀意义一样,生活中的东西在腐烂的时候,总是会从边缘开始由外向内腐蚀。就是这个意思。原理使用卷积核遍历图像像素值,以卷积核的中心为中心,如果与卷积核对应的像素值全为1(即全是白色),像素值就保持不变。否则与卷积核对应的像素值就全变为0。也就体现出了边缘...原创 2020-02-19 15:20:13 · 2093 阅读 · 0 评论 -
opencv-python实现简单的颜色识别程序
import numpy as npimport cv2font= cv2.FONT_HERSHEY_SIMPLEXlower_red=np.array([0,127,128])#红色阈值下界higher_red=np.array([10,255,255])#红色阈值上界lower_green=np.array([35,110,106])#绿色阈值下界higher_green=np.a...原创 2020-02-18 17:25:38 · 2105 阅读 · 0 评论 -
OpenCV学习之路(七)图像模糊|去除噪声
本章将学习一些去除噪声的方法。对以后进行图像识别等操作很有意义。均值滤波道理不咋懂,直接放函数好了cv2.blur(img,size)size为卷积核尺寸import numpy as npimport cv2img=cv2.imread('D://zopencv//ball.jpg')blur=cv2.blur(img,(5,5))mask=cv2.resize(b...原创 2020-02-18 16:08:22 · 1155 阅读 · 0 评论 -
opencv-python中的cv2.filter()函数随笔
有时候我们想要处理的图像中噪音太多,影响到我们的识别判断,我们就需要对图像进行模糊处理,使图像变得平滑。而opencv-python提供给我们cv2.filter()函数来对图像进行2D卷积,我们可以使用自定义的卷积核来对图像进行卷积操作。构造函数:dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]...原创 2020-02-18 15:36:04 · 4028 阅读 · 2 评论 -
OpenCV学习之路(六)图像阈值
在这一章我们将要学习图像阈值的相关知识,包括简单阈值,自适应阈值, Otsu’s 二值化 。简单阈值构造函数为:cv2.threshold(img,thresh,maxval,type,dst=None)参数解释:img是等待进行处理的图像thresh是一个标记,凡是高于(低于)这个阈值的像素值都会被赋予黑色(或者白色)maxval这个值就是高于或者低于thresh时要赋予的值...原创 2020-02-17 15:34:22 · 226 阅读 · 0 评论 -
OpenCV学习之路(五)图像的几何变换
在这一章将要学习图像的移动、旋转,仿射变换等扩展缩放我们如果想要改变图像的大小,我们就需要对图像进行扩展缩放,opencv提供给我们控制扩展缩放的函数:cv2.resize(src, dst, interpolation=CV_INTER_LINEAR)参数解释:src:进行扩展缩放的原图片dst:可以在此处设置缩放因子,也可手动设置尺寸interpolation:在缩放时我们推...原创 2020-02-16 20:21:01 · 230 阅读 · 0 评论 -
颜色识别各颜色HSV模型的大致范围
转载 2020-02-16 16:48:51 · 1033 阅读 · 0 评论 -
OpenCV学习之路(三)处理鼠标事件
写在最前:本章的目标是学会如何用OpenCV处理鼠标事件,我们将会学会几个函数。OnMouse(event,x,y,flags,param)setMouseCallback(windowsname,OnMouse)这两个函数搭配使用便可以处理鼠标传来的事件并进行相关操作。event表示鼠标事件:EVENT_MOUSEMOVE #滑动EVENT_LBUTTON...原创 2020-02-15 14:38:17 · 436 阅读 · 0 评论 -
OpenCV学习之路(二)绘图
写在最前:在本章中我们将要学习使用OpenCV画各种图形,我们将要用到的这些函数,他们的参数是一样的,如下:img:你想要绘制图形的那幅图像。color:形状的颜色。以RGB为例,需要传入一个元组,例如: (255,0,0) 代表蓝色。对于灰度图只需要传入灰度值。thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形 就会被填充。默认值是 1.linetype:线条...原创 2020-02-14 16:41:38 · 213 阅读 · 0 评论 -
开启OpenCV学习之路
不知不觉假期已经过去一个月了,回想过去一个月,自己好像什么都没学到,又好像学到了一些东西,总之内心颇为不踏实。 尚且不知道何时开学,因此也打算学一些实用的,下一学期用的到的东西,于是自然想到了计算机视觉。今天看了一些公开课,从原理,从数学上理解计算机视觉有关知识实在是一项庞大的工程。于是自己便想从实用层面进行学习,日后需要更深层学习再纠结原理方面。自然而然,我想到了OpenCV。...原创 2020-02-12 18:53:54 · 175 阅读 · 0 评论