微软手机做网站服务器,阿里国际网站首页可以做全屏不,整站seo优化一般多少钱,常州网站设计文章目录 #x1f9e1;#x1f9e1;实验流程#x1f9e1;#x1f9e1;1.图像膨胀2.图像腐蚀3.膨胀与腐蚀的综合使用4.对下面二值图像的目标提取骨架#xff0c;并分析骨架结构。 #x1f9e1;#x1f9e1;全部代码#x1f9e1;#x1f9e1; #x1f9e1;#x1f9e1… 文章目录 实验流程1.图像膨胀2.图像腐蚀3.膨胀与腐蚀的综合使用4.对下面二值图像的目标提取骨架并分析骨架结构。 全部代码 实验流程
1.图像膨胀
膨胀原理设置一个3x3的矩阵遍历每个像素点该像素点的值等于以该像素点为中心的3*3范围内的最大值。由于是二值图像要么0黑要么255白所以只要包含周围白255的部分就变为白的。如下字的外轮廓变粗。
2.图像腐蚀
腐蚀原理与膨胀相反设置一个3x3的矩阵遍历每个像素点该像素点的值等于以该像素点为中心的3*3范围内的最小值。由于是二值图像要么0黑要么255白所以只要包含周围黑0的部分就变为黑的。如下腐蚀后减少了一些毛刺并且字体外形向内凹陷变瘦。
3.膨胀与腐蚀的综合使用
开操作原理在上述腐蚀操作中虽然能去除毛刺但是会对原字体有影响轮廓变细了因此再补上膨胀操作使得字体加粗即进行先腐蚀后膨胀的操作。如下图“开”字的毛刺去除了同时字体轮廓粗细跟原来一样。 闭操作原理与开操作相反即进行先膨胀后腐蚀的操作。相当于先放大所有细节这样子一些缺陷就可以闭合然后腐蚀缩小到原字体粗细。如下“闭”字几个封口闭合了。
4.对下面二值图像的目标提取骨架并分析骨架结构。 梯度计算原理膨胀图像-腐蚀图像用大一圈的图像减去小一圈的图像正好就是边缘的信息
全部代码
import cv2
import numpy as np
import matplotlib.pyplot as pltdef cv_show(img):cv2.imshow(Image, img)cv2.waitKey(0)cv2.destroyAllWindows()2-1 膨胀操作ori cv2.imread(img/test1_dilate.png) # 注意不要有中文
kernel np.ones((3, 3), dtypenp.uint8)
dilate cv2.dilate(ori, kernel, iterations1) # 1:迭代次数也就是执行几次膨胀操作
res np.hstack((ori, dilate)) # 拼接在一起
cv_show(res)2-2 腐蚀操作ori cv2.imread(img/test1_erode.png)
kernel np.ones((3, 3), dtypenp.uint8)
erosion cv2.erode(ori, kernel, iterations1)
res np.hstack((ori, erosion))
cv_show(res)2-3 开闭运算ori cv2.imread(img/test1_open_close.png)
kernel np.ones((5, 5), dtypenp.uint8)opening cv2.morphologyEx(ori, cv2.MORPH_OPEN, kernel, 1)
res np.hstack((ori, opening))
cv_show(res)
closing cv2.morphologyEx(ori, cv2.MORPH_CLOSE, kernel, 1) # 有缺陷填补缺陷
res np.hstack((ori, closing))
cv_show(res)2-4 梯度计算 -- 提取骨架ori cv2.imread(img/test1_morph.png)
kernel np.ones((3, 3), dtypenp.uint8)
gradient cv2.morphologyEx(ori, cv2.MORPH_GRADIENT, kernel)
cv_show(gradient)