opencv
布比与迈克大炮
这个作者很懒,什么都没留下…
展开
-
python+opencv-16 图像轮廓检测和拟合
python+opencv-16 图像轮廓检测和拟合图像轮廓检测和拟合图像轮廓的查找与绘制轮廓的周长与面积面积计算几何图形的最小外包与拟合霍夫检测图像轮廓检测和拟合边缘检测只能检测出图像边缘信息,并不能得到一幅图像的整体信息,而图像轮廓是指将边缘信息连接起来形成一个整体。通过对图像轮廓进行操作,可以获取目标图像的大小、位置和方向等信息。图像轮廓的查找与绘制图像轮廓由一系列点组成,这些点以某种方式表示图像中的一条曲线。图像的轮廓绘制就是将检测到的边缘信息图像的前景信息进行拟合,从而得到图像的轮廓。原创 2020-09-13 21:01:07 · 9162 阅读 · 4 评论 -
python+opencv-15 图像梯度与边缘检测
python+opencv-15 图像梯度与边缘检测图像梯度与边缘检测Soble算子Scharr算子Canny边缘检测Laplacian算子图像梯度与边缘检测图像梯度是一种描述图像像素之间差异的方法,可以作为图像的一种特征来表征图像。图像梯度计算的是图像的边缘信息,它能够反应图像像素变化的速度,如灰度值变化较大的地方,梯度值也较大。图像梯度就是指像素的一阶导数,在图像处理中可以通过计算像素值的差近似导数值。图像边缘是指灰度值发生急剧变化的地方,边缘检测的目的是在不破坏图像信息的条件下,减少图像的数据量原创 2020-09-13 12:14:17 · 1277 阅读 · 1 评论 -
python+opencv-14 图像金字塔
python+opencv-14 图像金字塔图像金字塔高斯金字塔拉普拉斯金字塔代码实现pyrDown()函数实现下采样pyrUp()函数实现上采样实现拉普拉斯金字塔用金字塔实现图像复原图像金字塔图像金字塔是一种以多分辨率来解释图像的有效结构,常用于图像分割、机器视觉和图像压缩中。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低且来源于同一张原始图的图像集合。通过梯次向下采样获得。金字塔的底部是待处理图像的高分辨率表示,顶部是低分辨率的近似。通常情况下,向上移动一级,图像的宽和高都降低为原来的二原创 2020-09-12 19:47:41 · 161 阅读 · 0 评论 -
python+opencv-13 分水岭算法实现图像分割
python+opencv-13 分水岭算法实现图像分割图像分割分水岭算法确定一幅图像的前景图像图像分割图像分割是一种基本的图像处理技术,是指将图像分成不同特性的区域,并对目标进行提取的技术,它是由图像处理到图像分析的关键步骤。目标提取和图像理解都是在图像分割的基础上进行的。分水岭算法分水岭算法会把临近像素间的相似性作为重要的参考因素,在空间位置上相近和灰度值相近的像素点互相连接起来构成一个封闭的区域。可以把灰度图与地形图做对比。灰度值低的地方是山谷,灰度值高的地方是山峰。这样山峰包围了山谷,也原创 2020-09-12 17:27:54 · 1895 阅读 · 0 评论 -
python+opencv-12 黑帽和礼帽运算
python+opencv-12 黑帽和礼帽运算黑帽和礼帽运算黑帽和礼帽运算黑帽和礼帽运算是建立在开运算与闭运算基础上的。原创 2020-08-30 10:16:53 · 936 阅读 · 0 评论 -
python+opencv-11 开运算与闭运算
python+opencv-11 开运算开运算与闭运算代码展示开运算与闭运算开运算与闭运算都是在腐蚀和膨胀的基础上进行的。开运算是指先腐蚀后膨胀的操作,定义为:I⋅S=(I−S)+SI\cdot S=(I-S)+SI⋅S=(I−S)+S其中III为输入图像,SSS为卷积核函数。开运算可以用来消除亮度较高的细小区域,在纤细处分离物体。闭运算是指先膨胀后腐蚀的操作,定义为:I⋅S=(I+S)−SI\cdot S=(I+S)-SI⋅S=(I+S)−S其中III为输入图像,SSS为卷积核函数。闭原创 2020-08-29 20:39:22 · 3867 阅读 · 1 评论 -
python+opencv-10 形态学梯度运算
python+opencv-10 形态学梯度运算形态学梯度运算代码展示重要代码展示形态学梯度运算如果说腐蚀是去掉了图像的边缘信息,膨胀加强了边缘信息,那么当用膨胀后的图像减去腐蚀后的图像,就得到了图像的边缘信息。形态学梯度的定义为:G=I⊕S−I!SG=I\oplus S-I!SG=I⊕S−I!S其中GGG为输出图像,III为输入图像,SSS为卷积核函数。⊕\oplus⊕为膨胀运算,!!!为腐蚀运算。代码展示import cv2 as cvimport numpy as npimage原创 2020-08-29 20:08:07 · 747 阅读 · 0 评论 -
python+opencv-09 膨胀
python+opencv-09 膨胀膨胀代码展示重要代码展示膨胀与腐蚀相反,膨胀是由图像的边界点处向外部扩张。如果说腐蚀是用像素点与核函数做与运算全1时才保留,那么膨胀做的就是或运算,只要由像素点扩展出的与卷积核等大区域有重叠的地方,就会置1。代码展示import cv2 as cvimport numpy as npimage = cv.imread("fu.jpg")k = np.ones((3, 3), np.uint8)img = cv.dilate(image, k, iter原创 2020-08-29 19:51:27 · 209 阅读 · 0 评论 -
python+opencv-08 腐蚀
python+opencv-08 腐蚀腐蚀代码展示重要代码解释腐蚀腐蚀是形态学基本操作中的一种,它通过使图像沿着边界向内收缩,达到消除边界点的目的。一般输入图像为二值图像。腐蚀操作是将像素点与卷积核函数做与运算,只有全1时才保留这个像素点,否则则舍弃这个点。代码展示import cv2 as cvimport numpy as npimage = cv.imread("fu.jpg")k = np.ones((3, 3), np.uint8)img = cv.erode(image, k原创 2020-08-29 19:29:33 · 1958 阅读 · 0 评论 -
python+opencv-07 Otsu阈值处理
python+opencv-07 Otsu阈值处理Otsu阈值处理代码展示Otsu阈值处理Ostu是一种阈值选择的算法,在面对色彩分布不均匀的图像时,阈值的选择就会变得很复杂。这时我们就不需要凭借经验去认为设定,而是根据Otsu算法来计算出最合适的阈值。Ostu的思想很简单,属于暴力寻优的一种,分别计算选用不同灰度级作为阈值时的前景、背景、整体方差。当方差最大时,此时的阈值最好。代码展示我们从百度图片库中选择一张偏暗的图片来测试程序。import cv2 as cvimage = cv.im原创 2020-08-29 11:34:06 · 3030 阅读 · 0 评论 -
python+opencv-06 局部阈值处理
python+opencv-06 局部阈值处理局部阈值处理代码展示重要代码解释局部阈值处理当图像的色彩分布不均衡时,使用全局阈值处理的效果不是很好,这是使用局部阈值处理来进行分割,可以产生很好的效果。局部阈值的处理原理是,针对每一个像素点专门配置一个阈值来进行处理,这些阈值就构成了和原图像维度相同的矩阵。代码展示import cv2 as cvimage = cv.imread("lena.jpg", cv.IMREAD_GRAYSCALE)ret, dst = cv.threshold(i原创 2020-08-29 11:14:55 · 1513 阅读 · 1 评论 -
python+opencv-05 全局阈值处理
python+opencv-05 全局阈值处理阈值处理与区域分割全局阈值处理阈值处理与区域分割在图像处理中,我们希望把通过物体的所在位置,把图像分成若干个特定的区域,从而达到区域分割的目的。阈值处理通过剔除高于或低于区域物体像素值的方法来达到这一目的。通过灰度信息提取前景,在前景物体与背景对比度较强时,效果明显。而对比度较弱时,可以先增强对比度再进行阈值处理。处理以后的图像为二值图像,因此也被称为二值化处理。在阈值处理中一般有全局阈值处理和局部阈值处理两种方法全局阈值处理全局阈值处理一般有两种处理方原创 2020-08-29 10:43:54 · 1473 阅读 · 0 评论 -
python+opencv-04 边缘保留滤波(EPF) 磨皮神器
python+opencv-04 边缘保留滤波(EPF) 磨皮神器边缘保留滤波(EPF)程序代码代码分析边缘保留滤波(EPF)关于去燥的方法,在前两个博客中我们已经进行了初步的讨论,我么已经见证了中值滤波、均值滤波、自定义滤波和高斯滤波,也看到了他们都可以对噪声进行抑制。让我们接着上两节的问题继续思考,在对图像进行去燥时前两节提到的那四种滤波算法有没有什么不足呢。我们对去燥之后的照片进行观察可以发现,前面的四种去燥方法的确抑制了噪声,但是同时也使图像本身变得更加朦胧了。当人物和背景同时存在时,人物和背原创 2020-07-27 21:54:30 · 1024 阅读 · 0 评论 -
python+opencv-03 高斯模糊
python+opencv-03 高斯模糊高斯与高斯模糊程序代码代码分析高斯与高斯模糊在这个世界上数学界被分为两类:其他数学家与高斯。他是“数学王子”,是站在数学高峰上的神。我们对他了解最多的是他7岁那一年,在解决1+2+3+……+100时,创造性的发现1+100=101, 2+99=101 , …… , 相当于50个101相加,于是“高斯算法”应运而生,梯形公式就此出现。在他18岁时,他发现了质数分布定理和有序数列搜索算法中的一个经典算法——最小二乘法。从质数分布定理出发,他创造了一套数据处理方法,根原创 2020-07-27 20:20:49 · 572 阅读 · 0 评论 -
Python+OpenCV(02) 卷积及模糊操作
Python+OpenCV-02 模糊操作OpenCV学习的实质模糊操作简介卷积操作OpenCV学习的实质我们经常说,OpenCV更像一个库函数,里面提供了大量的接口API,集合了许多图像操作的算法。对OpenCV的学习其本质就是对这些算法的学习。对我们来说比较好的一面是,学习OpenCV,我们不需要从头开始自己再编写算法,而是学习怎么调用这个算法。算法的调用其本质就是传参的过程,我们需要做的是仔细的阅读OpenCV的官方文档,把每一个方法中需要传递的参数的类型和约束条件理解了就好。官方文档是英文的,我原创 2020-07-26 20:15:33 · 1576 阅读 · 0 评论 -
python+opencv-01 图片显示
python+opencv-01 图片显示OpenCV简介OpenCV环境的安装第一个程序代码解释OpenCV简介OpenCV 是由BSD发行的跨平台计算机视觉和机器学习算法库,可以在Linux、Windows、Android等多操作系统上运行,它由C++语言编写,并为Python,Java和Matlab语言提供了方法接口。OpenCV实现了很多图像处理和计算机视觉的通用算法,在工作和学习上可以直接调用方法,缩短了开发周期。本文使用Python3作为运行环境,编写了helloworld程序。OpenC原创 2020-07-25 16:51:41 · 253 阅读 · 0 评论