随笔分类 - OpenCV
摘要:凸缺陷,以及如何找到凸缺陷 找某一点到一个多边形的最短距离 不同形状的匹配 1.凸缺陷 前面已经设计了轮廓的凸包和凸性缺陷的概念。OpenCV中有一个函数cv2.convexityDefect()可以帮助我们找到凸缺陷: hull = cv2.convexHull(cnt,returnPoints=
阅读全文
摘要:提取一些经常使用的对象特征 1.长宽比 边界矩形的宽高比 x,y,w,h = cv2.boundingRect(cnt) aspect_ratio = floart(w)/h 2.Extent 轮廓面积与边界矩形面积的比。 area = cv2.contourArea(cnt) x,y,w,h =
阅读全文
摘要:查找轮廓的不同特征,例如面积,周长,重心,边界等 1.矩 图像的矩可以帮助我们计算图像的质心,面积等。 函数cv2.momen()会将计算得到的矩以一个字典的形式返回, 我们的测试图像如下: 例程如下: # -*- coding:utf-8 -*-import numpy as npimport c
阅读全文
摘要:什么是轮廓 找轮廓、绘制轮廓等 1.什么是轮廓 轮廓可看做将连续的点(连着边界)连在一起的曲线,具有相同的颜色和灰度。轮廓在形态分析和物体的检测和识别中很有用。 为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者Canny边界检测。 查找轮廓的函数会修改原始图像。如果に在找到轮廓后
阅读全文
摘要:了解Canny边缘检测的概念 1.原理 Canny边缘检测是一种非常流行的边缘检测算法,是 John F。Canny在1986年提出的。它是一个有很多步构成的算法 1)噪声去除 使用5*5的高斯滤波器去除噪声 2)计算图像梯度 对平滑后的图像使用Sobel算子计算水平方向和竖直方向的一阶导数。根据得
阅读全文
摘要:学习图像梯度,图像边界等 梯度简单来说就是求导。 OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian。Sobel,Scharr其实就是求一阶或二阶导。Scharr是对Sobel的部分优化。Laplacian是求二阶导。 1.Sobel算子和Schar
阅读全文
摘要:不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行操作。需要的参数有两个,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。 1.腐蚀 就像
阅读全文
摘要:使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等。LPF帮助我们去除噪声,模糊图像。而HPF帮助我们找到图像边缘。 OpenCV提供的函数cv2.filter2D()可以让我们对一幅图像进行卷积操作。
阅读全文
摘要:简单阈值,自适应阈值,Otsu's二值化等 1.简单阈值 当像素值高于阈值时,我们给这个像素赋予一个新值,否则给他赋予另一个值。这个函数就是cv2.threshhold()。这个函数的第一个参数就是原图像,一般是灰度图(貌似非灰度图也可以)。第二个参数就是用来对像素值进行分类的阈值。第三个参数就是当
阅读全文
摘要:对图像进行各种变换,如移动,旋转,仿射变换等 变换 opencv提供了两个变换函数cv2.warpAffine cv2.warpPerspective使用这两个函数你可以实现所有类型的变换。前者接收的参数是2*3的变换矩阵,后者接收的是3*3的变换矩阵 1. 扩展缩放 扩展缩放知识改变图像的尺寸大小
阅读全文
摘要:学习如歌对图像进行颜色空间转换,从BGR到灰度图,或者从BGR到HSV等 创建一个程序用来从一幅图像中获取某个特定颜色的物体 1.转换颜色空间 OpenCV中有超过150种进行颜色空间转化的方法,但是实际上经常用到的也就两种:BGR<->Gray,BGR<->HSV 要用的函数是cv2.cvtCol
阅读全文
摘要:学习图像上的算术运算,加法,减法,位运算等 1.图像加法 使用cv2.add()将两幅图像进行加法运算,也可以用numpy运算,直接img+img1。两幅图像的大小和类型必须一致,或者第二个图像可以是一个简单的标量值。 两种操作的本质区别在于OpenCV的加法是一种饱和操作,加到顶后就不在上升了;而
阅读全文
摘要:获取图像的像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 1.获取并修改像素值 先读入图像装入一个图像实体,然后该实体相当于一个多维list,可以直接用数组操作提取像素信息,像素信息为按照BGR顺序排列(灰度图像会返回其灰度值)的一个list,也可以用list操作提取其
阅读全文
摘要:如何用OpenCV处理视频 读取视频文件,显示视频,保存视频文件 从摄像头获取并显示视频 1.用摄像头捕获视频 为了获取视频,需要创建一个VideoCapature对象。其参数可以是设备的索引号,也可以是一个视频文件。设备索引号一般笔记本自带的摄像头是0。之后就可以一帧一帧的捕获视频,但是一定要记得
阅读全文
摘要:一、读入图像 使用cv2.imread()读入图像,图像应该在此程序的工作路径,第二个参数是告诉函数应该如何读取这幅图片 cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。 cv2.IMREAD_GRAYSCALE:以灰度模式读入图像,也可以用0表示 cv2.I
阅读全文
浙公网安备 33010602011771号