文章分类 - opencv
1
计算机视觉库
轮廓:更多属性
摘要:1.凸性缺陷 使用cv.convexityDefects()函数找到凸性缺陷。 hull = cv.convexHull(cnt,returnPoints = False) defects = cv.convexityDefects(cnt,hull) 注意:发现凸包时,传递returnPoints
阅读全文
轮廓属性
摘要:1.长宽比 它是对象边界矩形的宽度与高度的比值。 x,y,w,h=cv.boundingRect(cnt) aspect_ratio = float(w)/h 2.范围 范围是轮廓区域与边界矩形区域的比值。 area = cv.contourArea(cnt) x,y,w,h = cv.boundi
阅读全文
轮廓特征
摘要:1.特征矩 特征矩可以帮助计算一些特征,例如物体的质心,物体的面积等。函数cv.moments()会将计算得到的矩以一个字典的形式返回。 import cv2 as cv img=cv.imread('./images/lena.jpeg',0) ret,thresh=cv.threshold(im
阅读全文
轮廓:入门
摘要:轮廓 轮廓是连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。 为了准确,要使用二值化图像。需要进行阈值化处理或者Canny边界检测。 查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像存储到其他变量中。从Opencv3.2开始
阅读全文
图像金字塔
摘要:原理 一般情况下,要处理是一副具有固定分辨率的图像。但是特别情况下,需要对同一个图像的不同分别率的子图像进行处理。如查找图像中的某个目标,如人脸、不知道目标在图像中的尺寸大小。这种情况下,需要创建一组图像,这些图像是具有不同分辨率的原始图像。把这组图像叫做图像金字塔,就是同一图像的不同分辨率的子图集
阅读全文
Canny边缘检测
摘要:原理 1.降噪 由于边缘检测很容易受到噪音影响,所以第一步是使用5x5的高斯滤波器去除噪音。 2.计算图像梯度 对平滑后的图像使用Sobel算子计算水平方向和竖直方向的一阶导数(图像梯度)(Gx和Gy)。根据得到的这两幅梯度图找到边界的梯度和方向。公式如下: 梯度的方向一般总是与边界垂直。梯度方向被
阅读全文
图像梯度
摘要:图像梯度原理:简单来说就是求导。 opencv提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Laplacian。Sobel和Scharr是求一阶或二阶导数。Scharr是对Sobel(使用小的卷积核求解梯度角度时)的优化,Laplacian是求二阶导数。 1.Sobel算子
阅读全文
形态学转换
摘要:形态变换是一些基于图像形状的简单操作。通常在二进制图像上执行。它需要两个输入,一个是原始图像,第二个是决定操作性质的结构元素或内核。两种基本的形态学算子是侵蚀和膨胀。然后,它的变体形式(如“打开”,“关闭”,“渐变”等)也开始起作用。 1.侵蚀 侵蚀的基本思想就像土壤侵蚀一样,它侵蚀前景物体的边界(
阅读全文
图像平滑
摘要:2D卷积(图像过滤) 同一维信号一样,可以对2D图像实施低通滤波(LPF)和高通滤波(HPF)。LPF用于去除噪音,模糊图像;HPF用于找到图像的边缘。 Opencv提供的函数cv.filter2D()可以对一幅图像进行卷积操作。下面使用5x5的平均滤波器核: 操作如下,将核放在图像的一个像素A上,
阅读全文
图像阈值
摘要:图像分类 安装颜色对图像进行分类,可以分为二值图像,灰度图像和彩色图像。 二值图像:只有黑色和白色两种颜色的图像。每个像素点可以用0/1表示,0表示黑色,1表示白色。 灰度图像:只有灰度的图像。每个像素点用8bit数字[0,255]表示灰度,如:0表示纯黑,255表示纯白。 彩色图像:彩色图像通常采
阅读全文
图像的几何变换
摘要:变换 opencv提供了两个转换函数cv.warpAffine和cv.warpPersective,可以使用它们进行各种转换。cv.warpAffine采用2x3转换矩阵,而cv.warpPerspective采用3x3转换矩阵作为输入。 缩放 缩放只是调整图像的大小。为此,opencv带有一个函数
阅读全文
改变颜色空间
摘要:opencv中有超过150中颜色空间转换方法。最常用的BGR<-->灰色和BGR<-->HSV。 BGR转灰度:cv.COLOR_BGR2GRAY BGR转HSV:cv.COLOR_BGR2HSV import cv2 as cv flags=[i for i in div(cv) if i.sta
阅读全文
图像上的算术运算
摘要:图像加法 可以通过opencv函数cv.add()或通过numpy操作res=img1+img2添加两个图像。两个图像应具有相同的深度和类型,或者第二个图像可以只是一个标量值。 注意:opencv加法和Numpy加法之间有区别。Opencv加法是饱和运算,而Numpy加法是模运算。 import n
阅读全文
图像的基本操作
摘要:访问和修改像素值 import cv2 as cv img=cv.imread('./images/lena.jpeg') # 显示某个像素的数据,如果是BGR图像,则返回一个由蓝色、绿色和红色值组成的数组; # 对于灰度图像,只返回相应的灰度 px=img[100,100] print(px) #
阅读全文
轨迹作为调色板
摘要:将轨迹栏固定到OpenCV窗口。 有一个显示颜色的窗口,以及三个用于指定B,G,R颜色的跟踪栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色设置为黑色。 cv.getTrackbarPos(trackbarname,winname) trackbarname:互动条名字 winname:窗
阅读全文
鼠标作为画笔
摘要:opencv处理鼠标事件。cv.setMouseCallback() 查询所有可用的事件 import cv2 as cv events=[i for i in dir(cv) if 'EVENT' in i] print(events) 双击鼠标绘制一个圆 import numpy as np i
阅读全文
绘图功能
摘要:使用opencv绘制不同的几何形状。 cv.line(),cv.circle(),cv.rectangle(),cvellipse(),cv.putText()等。 上述功能,常见参数 img:绘制形状的图像 color:形状的颜色。对于BGR,将其作为元组传递,如(255,0,0)。对于回到只需传
阅读全文
视频入门
摘要:读取视频 要捕获视频,需要创建一个VideoCapture对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字,简单地传0(或-1)。可以传递1来选择第二个相机,以此类推。注意最后释放资源。 import cv2 as cv # 从摄像头里读取 cap=cv.VideoCa
阅读全文
图像入门
摘要:读取图像 cv.imread(filename,flags) filename:图像的完整路径 flags:一个标志,读取图像的方式。常用的方式如下: cv.IMREAD_COLOR:加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。可以用1替代。 cv.IMREAD_GRAYSCALE:以灰
阅读全文
opencv安装
摘要:OpenCV全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发。OpenCV可用于开发实时的图像处理,计算机视觉以及模式识别程序。 1,删除旧版本 pip uninstall opencv-python
阅读全文
1
浙公网安备 33010602011771号