主页网站怎么建设,网站如何提高流量,网站刷链接怎么做的,wordpress头像同步前言#xff1a;Hello大家好#xff0c;我是小哥谈。腐蚀和膨胀是图像形态学中的两种核心操作#xff0c;通过这两种操作可以清除或者强化图像中的细节。本节课就对OpenCV中的腐蚀和膨胀操作进行详细的介绍。#x1f308; 前期回顾#xff1a; OpenCV基础知识#xff08;… 前言Hello大家好我是小哥谈。腐蚀和膨胀是图像形态学中的两种核心操作通过这两种操作可以清除或者强化图像中的细节。本节课就对OpenCV中的腐蚀和膨胀操作进行详细的介绍。 前期回顾 OpenCV基础知识1— OpenCV概述 OpenCV基础知识2— 图像处理的基本操作 OpenCV基础知识3— 图像数字化基础像素、色彩空间 OpenCV基础知识4— 绘制图形 OpenCV基础知识5— 几何变换 OpenCV基础知识6— 滤波器 目录
1.腐蚀
2.膨胀
3.总结 1.腐蚀
腐蚀操作可以让图像沿着自己的边界向内收缩。OpenCV通过“核”来实现收缩计算。“核”的英文名为kernel在形态学中可以理解为“由n个像素组成的像素块”像素块包含一个核心核心通常在中央位置也可以定义在其他位置。像素块会在图像的边缘移动在移动过程中核会将图像边缘那些与核重合但又没有越过核心的像素点都抹除就像削土豆皮一样将图像一层一层地“削薄”。
OpenCV将腐蚀操作封装成erode()方法该方法的语法如下
dst cv2.erode(src,kernel,anchor,iterations,borderType,borderValue)
参数说明
src原始图像
kernel腐蚀使用的核
anchor可选参数核的锚点位置。
iterations可选参数腐蚀操作的迭代次数默认值为1。
borderType可选参数边界样式建议默认。
borderValue可选参数边界值建议默认。
返回值说明
dst经过腐蚀之后的图像
在OpenCV做腐蚀或者其他形态学操作时通常使用Numpy模块来创建核数组例如
import numpy as np
k np.ones((5,5),np.uint8)
这两行代码就是通过Numpy模块的ones()方法创建一个5行5列简称5*5、数字类型为无符号8位整数、每一个数字的值都是1的数组这个数组就可以当做erode()方法的核参数。除了5×5的结构还可以使用3×3、9×9、11×11等结构行列数越大计算出的效果就越粗糙行列数越小计算出的效果就越精细。
案例
使用3*3的核对仙人球图像进行腐蚀操作可以将图像里的刺抹除掉具体代码如下
import cv2
import numpy as np
img cv2.imread(cactus.jpg) # 读取原图
k np.ones((3, 3), np.uint8) # 创建3*3的数组作为核
cv2.imshow(img, img) # 显示原图
dst cv2.erode(img, k) # 腐蚀操作
cv2.imshow(dst, dst) # 显示腐蚀效果
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
运行效果如图所示 2.膨胀
膨胀操作与腐蚀操作正好相反膨胀操作可以让图像沿着自己的边界向外扩张。图像经过膨胀操作之后可以放大一些外部的细节。同样是通过核来计算当核在图像的边缘移动时核会将图像边缘填补新的像素就像一面墙上反反复复地涂水泥让墙变得越来越厚。
OpenCV将膨胀操作封装成dilate()方法该方法的语法如下
dst cv2.dilate(src,kernel,anchor,iterations,borderType,borderValue)
参数说明
src原始图像
kernel膨胀使用的核
anchor可选参数核的锚点位置。
iterations可选参数腐蚀操作的迭代次数默认值为1。
borderType可选参数边界样式建议默认。
borderValue可选参数边界值建议默认。
返回值说明
dst经过膨胀之后的图像
案例
近视眼由于聚焦不准看东西都是放大并且模模糊糊的利用膨胀操作可以将正常画面处理成近视眼看到的画面。采用9×9的数组作为核来进行膨胀操作。具体代码如下
import cv2
import numpy as np
img cv2.imread(sunset.jpg) # 读取原图
k np.ones((9, 9), np.uint8) # 创建9*9的数组作为核
cv2.imshow(img, img) # 显示原图
dst cv2.dilate(img, k) # 膨胀操作
cv2.imshow(dst, dst) # 显示膨胀效果
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 释放所有窗体
运行效果如图所示 3.总结 总结♨️♨️♨️ 腐蚀图像向内收缩消除外部细节。 膨胀图像向外扩张消除内部细节。