
OpenCV
文章平均质量分 95
OpenCV学习专栏
趴抖
大二菜鸡,想搞SLAM和自动驾驶,先给您磕一个
展开
-
【OpenCV入门】第九部分——模板匹配
单模板多模板匹配”的过程可以封装成一个方法,方法参数为模板和原始图像,方法内部将计算结果再加工一下,直接返回所有红框左上角和右下角两点横纵坐标的列表。模板移动到原始图像的边缘之后就不会继续移动了,所以模板的移动区域如下图所示,该区域的边长为“原始图像边长 - 模板边长 +1”,最后加 1 是因为移动区域内的上下、左右的两个边都被模板覆盖到了,如果不加1会丢失数据。想要找到重复的图像,可以使用matchTemplate()来判断两幅图像的相似度,如果相似度大于0.9,就认为这两幅图像是相同的。原创 2023-09-05 23:20:47 · 2607 阅读 · 0 评论 -
【OpenCV入门】第八部分——滤波器
但在高斯滤波中,越靠近核心的像素权重越大,越远离核心的像素权重越小。在上图的计算过程中,滤波核中的每个像素值都会与卷积核对应位置的权重值相乘最后计算出9个值,让这9个值相加,再四舍五入取整,就得到了高斯滤波的计算结果。均值滤波器 (也被称为低通滤波器) 可以把图像中的每一个像素都当成滤波核的核心,然后计算出核内所有像素的平均值,最后让核心像素值等于这个平均值。中值滤波器的原理与均值滤波器非常相似,唯一的不同就是不会计算像素的平均值,而是将所有像素值排序,把最中间的像素值取出,赋值给核心像素。原创 2023-09-02 15:34:34 · 2078 阅读 · 0 评论 -
【OpenCV入门】第七部分——图像的几何变换
从不同的角度观察物体,会看到不同的变形画面,例如矩形会变成不规则的四边形、直角会变成锐角或钝角、圆形会变成椭圆等。因为要保证图像的“平直性”和“平行性”,所以不需要“右下角”的点做第四个参数,右下角这个点的位置会根据 A、B、C 三点的变化自动计算得出。除了前述 OpenCV 提供的用于对图像进行几何变换的方法外,借助 Python 中的 cmath模块也能让图像呈现特定的视觉效果。仿射变换是一种仅在二维平面中发生的几何变形,变换之后的图像仍然可以保持直线的“平直性”和“平行性”,包含平移、旋转和倾斜。原创 2023-09-02 11:16:09 · 1270 阅读 · 1 评论 -
【OpenCV入门】第六部分——腐蚀与膨胀
这三张图就是开运算的过程,从结果可以明显地看出: 经过开运算之后,二叉树中的连接线消失了,只剩下光秃秃的节点。如果对此图像进行腐蚀操作,可以得出如图 7.14 所示的图像,连接线消失了,节点也比原图节点小一圈。然后再将图像进行腐蚀操作,让膨胀的小蜘蛛缩回原来的大小,效果如图 7.21 所示。除了5×5的结构,还可以使用3×3、9×9等其他结构,行列数越大,计算出来的效果就越粗糙,行列数越小,计算出的效果就越精细。因为膨胀图比原图大,腐蚀图像比原图小,利用腐蚀图像将膨胀图像掏空,就得到了原图的。原创 2023-09-01 21:14:38 · 2369 阅读 · 0 评论 -
【OpenCV入门】第五部分——图像运算
当计算机处理图像时,有些内容需要处理,有些内容不需要处理。能够覆盖原始图像,仅暴露原始图像“感兴趣区域”(ROI)的模板图像就叫做。(mask),也叫做掩码,在程序中用二值图像来表示:0值(纯黑)区域表示被遮盖的部分,255值(纯白)区域表示暴露的部分(某些场景下也会用0和1当作掩模的值)。示意图如下:在使用OpenCV处理图像时,通常使用NumPy库提供的方法来创建掩模图像。创建3通道掩模图像利用NumPy库的zeros()方法创建一幅掩模图像。原创 2023-09-01 17:02:54 · 2099 阅读 · 0 评论 -
【OpenCV入门】第四部分——阈值
在PhotoShop里头,有一个工具可以快速抠出一幅图像中的轮廓,这个工具就是阈值。OpenCV也提供了阈值,且与PS里头的阈值有相同的作用。在OpenCV中,阈值是一个临界值,类似一个”像素值的标准线“。所有像素值都会与这条“标准线”进行比较,最后得到三种结果:像素值比阈值大、像素值比阈值小和像素值等于阈值。程序会根据这些结果将所有像素进行分组,然后对某一组像素进行“加深”或者“变淡”的操作,使得一幅图像的轮廓更加鲜明,更容易被计算机和肉眼识别。原创 2023-08-31 19:59:25 · 823 阅读 · 0 评论 -
【OpenCV入门】第三部分——绘制图形与文字
使用line()方法可绘制长短不一的、粗细各异的、五颜六色的线段。当使用line()方法绘制线段时,要指定线条颜色。绘制线段使用line()方法分别绘制颜色为蓝色,线条宽度为5的线段。结果如下:如果想随机绘制线段,需要借助numpy.random下的uniform()方法。uniform()方法的作用是从一个均匀分布的数据中随机采样。需要注意两个问题:一个是样本的取值范围,即包含low,但不包含high;原创 2023-08-31 11:01:42 · 805 阅读 · 0 评论 -
【OpenCV入门】第二部分——Numpy模块
这个部分是Numpy模块与OpenCV有关的部分。如果想了解Numpy库是什么,或者想要直接单独学习Numpy库,可以看看我以前写的这篇。原创 2023-08-30 12:39:34 · 849 阅读 · 0 评论 -
【OpenCV入门】第一部分——图像处理基础
图像处理包括4个基本操作:读取图像、显示图像、保存图像和获取图像属性。原创 2023-08-29 20:20:17 · 4326 阅读 · 0 评论