
OpenCV
医生的托马斯
这个作者很懒,什么都没留下…
展开
-
OpenCV学习1-从文件读入和保存图像
# -*- coding: utf-8 -*-"""OpenCV学习1-从文件读入图像"""import numpy as npimport cv2 as cv&a原创 2019-01-08 10:48:32 · 242 阅读 · 0 评论 -
OpenCV学习10-图像的阈值
'''简单阈值,这种方法非常简单。但像素值高于阈值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是 cv2.threshhold()。这个函数的第一个参数就是原图像,原图像应该是灰度图。第二个参数就是用来对像素值进行分类的阈值。第三个参数就是当像素值高于(有时是小于)阈值时应该被赋予的新的像素值。OpenCV提供了多种不同的阈值方法,这...原创 2019-01-22 09:53:03 · 220 阅读 · 0 评论 -
OpenCV学习20-直方图反向投影
'''直方图反向投影是由 Michael J. Swain 和 Dana H. Ballard 在他们的文章“Indexing via color histograms”中提出。那它到底是什么呢?它可以用来做图像分割,或者在图像中找寻我们感兴趣的部分。简单来说,它会输出与输入图像(待搜索)同样大小的图像,其中的每一个像素值代表了输入图像上对应点属于目标对象的概率。用更简单的话来解释,输...原创 2019-02-01 15:37:51 · 229 阅读 · 0 评论 -
OpenCV学习8-图像的几何变换,缩放、平移和旋转
'''图像的缩放INTER_NEAREST 最近邻插值INTER_LINEAR 双线性插值(默认设置)INTER_AREA 使用像素区域关系进行重采样。 它可能是图像抽取的首选方法,因为它会产生无云纹理的 结果。 但是当图像缩放时,它类似于INTER_NEAREST方法。INTER_CUBIC 4x4像素邻域的双三次插值INTER_LANCZOS4 8x8像素邻域的...原创 2019-01-16 23:04:15 · 375 阅读 · 0 评论 -
OpenCV学习11-图像平滑 模糊
'''2D卷积 与一维信号一样,我们也可以对 2D 图像实施低通滤波(LPF),高通滤波(HPF)等。LPF 帮助我们去除噪音,模糊图像。HPF 帮助我们找到图像的边缘OpenCV 提供的函数 cv.filter2D() 可以让我们对一幅图像进行卷积操作。下面我们将对一幅图像使用平均滤波器。下面是一个 5x5 的平均滤波器核: [ 1 1 1 1 1 ] 1...原创 2019-01-22 20:39:50 · 212 阅读 · 0 评论 -
OpenCV学习12-形态学转换
# coding:utf-8'''形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。腐蚀就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然是白色)。这是怎么做到的呢?卷积核沿着图像滑动...原创 2019-01-22 22:19:02 · 167 阅读 · 0 评论 -
OpenCV学习13-图像梯度
'''图像梯度 梯度简单来说就是求导。OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr 和 Laplacian。我们会意义介绍他们。Sobel,Scharr 其实就是求一阶或二阶导数。Scharr 是对 Sobel(使用小的卷积核求解求解梯度角度时)的优化。Laplacian 是求二阶导数。Sobel 算子和 Scharr 算子Sobel 算子是高...原创 2019-01-23 09:31:13 · 294 阅读 · 1 评论 -
OpenCV学习14-Canny边缘检测
'''[Canny](https://baike.baidu.com/item/canny%E7%AE%97%E6%B3%95/8439208?fr=aladdin)边缘检测算法可以分为以下5个步骤: 1.应用高斯滤波来平滑图像,目的是去除噪声 2.找寻图像的强度梯度(intensity gradients) 3.应用非最大抑制(non-maximum suppress...原创 2019-01-23 14:36:48 · 128 阅读 · 0 评论 -
OpenCV学习16-直方图
'''什么是直方图呢?通过直方图你可以对整幅图像的灰度分布有一个整体的了解。直方图的 x 轴是灰度值(0 到 255),y 轴是图片中具有同一个灰度值的点的数目。直方图其实就是对图像的另一种解释。一下图为例,通过直方图我们可以对图像的对比度,亮度,灰度分布等有一个直观的认识。几乎所有的图像处理软件都提供了直方图分析功能。'''import numpy as npimport cv2...原创 2019-01-30 16:42:58 · 355 阅读 · 0 评论 -
OpenCV学习19-2D直方图
'''在前面的部分我们介绍了如何绘制一维直方图,之所以称为一维,是因为我们只考虑了图像的一个特征:灰度值。但是在 2D 直方图中我们就要考虑两个图像特征。对于彩色图像的直方图通常情况下我们需要考虑每个的颜色(Hue)和饱和度(Saturation)。根据这两个特征绘制 2D 直方图。OpenCV 的官方文档中包含一个创建彩色直方图的例子。本节就是要和大家一起来学习如何绘制颜色直方图,这...原创 2019-01-31 15:54:32 · 263 阅读 · 0 评论 -
OpenCV学习9-图像的仿射变换和透视变换
'''图像的仿射变换在仿射变换中,原图中所有的平行线在结果图像中同样平行。为了创建这个矩阵我们需要从原图像中找到三个点以及他们在输出图像中的位置。然后cv2.getAffineTransform 会创建一个 2x3 的矩阵,最后这个矩阵会被传给函数 cv2.warpAffine。'''import cv2 as cvimport numpy as np from matplotli...原创 2019-01-21 22:27:05 · 211 阅读 · 0 评论 -
OpenCV学习18-直方图均衡化-Opencv方法
'''直方图均衡化,如何使用它来改善图片的对比。如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样呢?例如,如果一幅图片整体很亮,那所有的像素值应该都会很高。但是一副高质量的图像的像素值分布应该很广泛。所以你应该把它的直方图做一个横向拉伸(如下图),这就是直方图均衡化要做的事情。通常情况下这种操作会改善图像的对比度。使用Numpy'''import cv2 a...原创 2019-01-31 14:37:34 · 203 阅读 · 0 评论 -
OpenCV学习5-图像加噪声
'''对于灰度图像(黑白图像),像素是8位无符号数,0表示黑色,255表示白色。对于彩色图像,需要用三原色数据来重现不同的可见色,这是因为我们人类的视觉系统是三原色的,视网膜上有三种类型的视锥细胞,它们将颜色信息传递给大脑。这意味着对于彩色图像,每个像素都要对应三个数值。在摄影和数字成像技术中,常用的主颜色通道是红色、绿色和蓝色,因此每3个8位数值组成矩阵的一个元素。为了说明如何直接...原创 2019-01-13 23:12:00 · 1293 阅读 · 0 评论 -
OpenCV学习2-摄像头和视频文件操作
# -*- coding: utf-8 -*-"""用摄像头捕获视频"""import numpy as npimport cv2 as cv#为了获取视频,创建一个 VideoCapture 对象。它参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在#指定要使用的原创 2019-01-08 15:33:17 · 274 阅读 · 1 评论 -
Anaconda Python 3.7.1 Opencv 4.0.1安装
Anaconda Python 3.7.1 Opencv 4.0.1安装清华镜像下载Anaconda3-5.3.1-Windows-x86_64.exe,Python 版本是3.7.1。安装Anaconda3-5.3.1-Windows-x86_64.exehttps://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载相应的软件包,比如:openc...原创 2019-01-08 23:52:01 · 3665 阅读 · 1 评论 -
OpenCV学习6-图像水平翻转、垂直翻转
'''图像水平翻转、垂直翻转'''import numpy as npimport cv2 as cv#读入图片(需要3通道彩色图片)img = cv.imread('timg.jpg')#X轴的镜像,水平翻转img1 = img[::-1]#Y轴的镜像,垂直翻转img2 = img[:,::-1]#BGR转换为RGB的操作,但因为imshow也是按照BGR方式显示,所以...原创 2019-01-15 08:28:50 · 2567 阅读 · 0 评论 -
OpenCV学习3-图像的基本操作
# -*- coding: utf-8 -*-"""图像的基本操作"""import numpy as npimport cv2 as cv#从文件读取图像img = cv.imread('timg.jpg',1)#可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 的值。img[100,100]#array([255,原创 2019-01-10 00:12:42 · 206 阅读 · 0 评论 -
OpenCV学习4-图像上的算术运算
'''图像上的算术运算目标• 学习图像上的算术运算,加法,减法,位运算等。• 将要学习的函数与有:cv2.add(),cv2.addWeighted() 等。'''#图像加法'''你可以使用函数 cv2.add() 将两幅图像进行加法运算,当然也可以直接使用 numpy,res=img1+img。两幅图像的大小,类型必须一致,或者第二个图像可以使一个简单的标量值。注意:OpenCV...原创 2019-01-10 09:06:28 · 232 阅读 · 0 评论 -
OpenCV学习7-摄像头物体追踪-红色瓶盖
'''摄像头物体追踪-红色瓶盖'''import numpy as npimport cv2 as cvimport time#为了获取视频,创建一个 VideoCapture 对象。它参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在#指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。cap = c...原创 2019-01-15 22:56:04 · 2877 阅读 · 0 评论 -
OpenCV学习15-轮廓
'''轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。• 为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。• 查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中。• 在 OpenCV 中,查找轮廓就像在黑色背景中超白...原创 2019-01-26 11:32:43 · 265 阅读 · 0 评论 -
OpenCV学习17-直方图均衡-Numpy计算
'''直方图均衡化,如何使用它来改善图片的对比。如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样呢?例如,如果一幅图片整体很亮,那所有的像素值应该都会很高。但是一副高质量的图像的像素值分布应该很广泛。所以你应该把它的直方图做一个横向拉伸(如下图),这就是直方图均衡化要做的事情。通常情况下这种操作会改善图像的对比度。使用Numpy'''import cv2 a...原创 2019-01-31 12:09:46 · 581 阅读 · 0 评论