第1关:腐蚀


任务描述

本关任务:编写对图像进行腐蚀运算的小程序。

相关知识

本关将介绍形态学中的腐蚀运算。

腐蚀运算

腐蚀运算是形态学中的基本运算,它的作用是提取图像的核心轮廓和结构而忽略图像中不重要的细节,腐蚀运算只能对二值图像进行运算,如下是一个腐蚀运算的例子:

,

最左侧是原图,剩下的三幅图是使用不同大小的结构元进行腐蚀运算的结果。可以看出,最右侧的图片只保留了原来的图片的核心部分,这就是腐蚀运算的效果。

腐蚀运算的过程是:遍历图像的每一个像素点,取当前像素点以及结构元映射到的所有像素点的像素的最小值,作为当前像素点的新的像素值。

比如下面是结构元:

,

黑色表示结构元的核心。

下面是原图像:

,

经过腐蚀后的结果如下:

,

可以看到,有两块原来是白色的像素点变成了黑色,我们来分析以下: 对于左侧中间的像素点,当遍历到它时,结构元映射到的像素点是它和它下方的像素点,取最小值则是0(黑色的像素点的像素值是0),所以它被染黑。 右侧中间的像素点同理。

python腐蚀运算

opencvpython版本的腐蚀函数是erode,它的原型是:

 
  1. erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)

各个参数的含义:

  • src, 原图
  • kernel, 结构元
  • dst=None, 腐蚀后的图片
  • anchor=None, 核心
  • iterations=None, 迭代次数
  • borderType=None, 边界类型
  • borderValue=None,边界值

最后两个参数很少用到,可以忽略。

下面是一个使用矩形结构元腐蚀二值图像的代码实例:

 
  1. import cv2
  2. # 原图片的名字
  3. pic = 'e_rode_yuan.png'
  4. # 图像的二值化
  5. src = cv2.imread(pic, cv2.IMREAD_UNCHANGED)
  6. # 矩形结构元
  7. kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (25, 25))
  8. # 进行腐蚀
  9. erosion = cv2.erode(src, kernel)
  10. # 展示原图
  11. cv2.imshow('origin', src)
  12. # 展示腐蚀后的图片
  13. cv2.imshow('after erosion', erosion)
  14. cv2.waitKey()

它的原图片如下所示:

s

腐蚀后的图片如下所示:

,

可以看到,四周的白色的线条全部腐蚀掉了,只剩下中心最核心的部分。

编程要求

根据提示,在右侧编辑器BeginEnd之间补充代码,使用一个5x5的交叉型结构元(核心在几何中心)对二值图片src进行腐蚀,腐蚀后的图片保存到erosion

测试说明

平台会测试图片腐蚀后的打印结果。

输出结果: 12608502


开始你的任务吧,祝你成功!

import cv2
import numpy as np
# 原图片的名字
pic = '/data/workspace/myshixun/step3/原图/e_rode_yuan.png'
# 图像的二值化
src = cv2.imread(pic, cv2.IMREAD_UNCHANGED)
######### Begin #########
# 使用一个5x5的交叉型结构元(核心在几何中心)对二值图片src进行腐蚀
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))
# 将腐蚀后的图片保存
erosion = cv2.erode(src, kernel)
cv2.imwrite("/data/workspace/myshixun/step3/学员文件/erosion.jpg", erosion)
######### End #########
print(np.sum(erosion))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值