摘要: 1、原理: 任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是 山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的 水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水 汇合,我们需要在水汇合的地方构建起堤坝。不停的灌水,不停的构建堤坝知 道所有的山峰 阅读全文
posted @ 2020-02-07 14:44 Tomorrow1126 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 1、霍夫变换 2、cv2.HoughLines() 返回值就是(ρ, θ)。ρ 的单位是像素,θ 的单位是弧度。这个函数的第一个参 数是一个二值化图像,所以在进行霍夫变换之前要首先进行二值化,或者进行 Canny 边缘检测。第二和第三个值分别代表 ρ 和 θ 的精确度。第四个参数是 阈值,只有累加其 阅读全文
posted @ 2020-02-07 14:40 Tomorrow1126 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 1、原理:模板匹配是用来在一副大图中搜寻查找模版图像位置的方法 OpenCV 为我们提供了函数:cv2.matchTemplate()。和 2D 卷积一样,它也是用模 板图像在输入图像(大图)上滑动,并在每一个位置对模板图像和与其对应的 输入图像的子区域进行比较。OpenCV 提供了几种不同的比较方 阅读全文
posted @ 2020-02-07 14:35 Tomorrow1126 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 1、初识轮廓 为了准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理,或者Canny边界检测。 查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中。 在 OpenCV 中,查找轮廓就像在黑色背景中超白色物体。你应该记住, 要找的物体应该是白 阅读全文
posted @ 2020-02-07 14:30 Tomorrow1126 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 1、腐蚀 cv2.erode() 就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然 是白色)。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图 像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。 这回产生什么影响呢?根据卷积核的大小靠近前景的所有像素都 阅读全文
posted @ 2020-02-07 14:19 Tomorrow1126 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1、简单阈值(整个图像,采用同一个数作为阈值) cv2.threshhold()第一个参数是原图像,第二个参数就是用来对像素值进行分类的阈值。第三个参数就是当像素值高于(有时是小于)阈值时应该被赋予的新的像素值。 OpenCV 提供了多种不同的阈值方法,这是有第四个参数来决定的。这些方法包括: • 阅读全文
posted @ 2020-02-07 14:03 Tomorrow1126 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 有两类图像金字塔:高斯金字塔和拉普拉斯金字塔 1、高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的。顶 部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值。这样 操作一次一个 MxN 的图像就变成了一个 M/2xN/2 的图像。所以这幅图像 的面积就变为原来图像面积的四分之一 阅读全文
posted @ 2020-02-07 12:33 Tomorrow1126 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 步骤 :噪声去除,计算图像梯度,非极大值抑制, 滞后阈值 cv2.Canny()可以完成以上几步。 import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('messi5.jpg',0) 阅读全文
posted @ 2020-02-07 12:28 Tomorrow1126 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 1、2D卷积 LPF:低通滤波,去除噪音,模糊图像 HPF:高通滤波,帮助我们找到图像的边缘 cv.filter2D()可以对图像进行卷积操作。 操作如下:将核放在图像的一个像素 A 上,求与核对应的图像上 25(5x5) 个像素的和,在取平均数,用这个平均数替代像素 A 的值。重复以上操作直到 将 阅读全文
posted @ 2020-02-07 12:20 Tomorrow1126 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1、变换 OpenCV 提供了两个变换函数,cv2.warpAffine 和 cv2.warpPerspective, 使用这两个函数你可以实现所有类型的变换。cv2.warpAffine 接收的参数是 2 × 3 的变换矩阵,而 cv2.warpPerspective 接收的参数是 3 × 3 的 阅读全文
posted @ 2020-02-07 11:43 Tomorrow1126 阅读(235) 评论(0) 推荐(0) 编辑