zoukankan      html  css  js  c++  java
  • [Python图像处理]八.图像腐蚀和图像膨胀

    图像腐蚀

    1.基础理论

    形态学转换主要针对的是二值图像(0/1)图像类似于领域被蚕食,将图像中的高亮区域白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。主要包括两个输入对对象: 二值图像,卷积核(卷积核是腐蚀中的关键数组,采用numpy库组成)卷积核的中心点逐个像素扫描原始图像。

    被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则其值修改为0。换句话说,遍历到的黄色点位置,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。

    函数原型: 主要是用erode函数,dst = cv2.erode(src, kernel, iternations) 参数dst表示处理的结果,src表示原图像,kernel表示卷积核,iternations表示迭代的次数,默认是1.例如 5*5的卷积核,采用函数np.ones((5, 5), np.uint8)构建。

    代码如下:

    import cv2
    import numpy as np
    src = cv2.imread("1.jpg", cv2.IMREAD_UNCHANGED)
    kernel = np.ones((5, 5), np.uint8)
    erosion = cv2.erode(src, kernel)
    cv2.imshow("src", src)
    cv2.imshow("result",erode)
    if cv2.waitKey() == 27:
        cv2.destroyAllWindows()

    图像膨胀

    1.基础理论

    图像膨胀是腐蚀操作的逆操作,类似于领域扩张,将图像中的高亮区域或白色部分进行扩张,其运行效果图比原图的高亮区域更大,线条变粗了,主要用于去噪

    图像被腐蚀后,去掉了噪声,但是会压缩图像

    对腐蚀过的图像进行膨胀处理,可以去除噪声,并且保持原有形状

    卷积核是腐蚀中的关键数组,采用numpy库可以生成。卷积核的中心点逐个像素扫描原始图像,被扫描到的原始图像中的像素点,当卷积核对应的元素值只要有一个为1时,其值就为1,否则为0

    图像膨胀主要是用dilate函数,dst = cv2.dilate(src, kernel, iternations)

    代码如下:

    import cv2
    import numpy as np
    src = cv2.imread("1.jpg", cv2.IMREAD_UNCHANGED)
    kernel = np.ones((5, 5), np.uint8)
    dilate= cv2.dilate(src, kernel,5)
    cv2.imshow("src", src)
    cv2.imshow("result",dilate)
    if cv2.waitKey() == 27:
        cv2.destroyAllWindows()

    图像去噪通常需要先腐蚀后膨胀,又称为开运算

    erosion = cv2.erode(src, kernel)

    result= cv2.dilate(erosion, kernel)

    转自:https://blog.csdn.net/Eastmount/article/details/83581277

  • 相关阅读:
    利用Jquery实现http长连接(LongPoll)
    使用C#把发表的时间改为几年前,几个月,几天前,几小时前,几分钟前,或几秒前
    跨域调用接口——WebClient通过get和post请求api
    Url重写——伪静态实现
    控制反转(IOC)
    文件上传之——用SWF插件实现文件异步上传和头像截取
    利用枚举展示下拉列表
    时间格式转换—将后台返回的/Date(1448954018000)/格式转换为正常的时间格式
    @RenderSection,@RenderPage,@RenderBody介绍
    简单工厂模式(转)
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/13246560.html
Copyright © 2011-2022 走看看