• python之阈值分割


    阈值分割法是一种基于区域的图像分割技术,原理是把图像像素点分为若干类。图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域不具有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

    1. import numpy as np
    2. import cv2
    3. img=cv2.imread('C:\\Users\\yh\\Pictures\\1.png')
    4. imginfo=img.shape
    5. size=(imginfo[1],imginfo[0])
    6. imgdst=img[100:500,100:500]
    7. print(size)
    8. gray = cv2.cvtColor(imgdst, cv2.COLOR_BGR2GRAY)
    9. #超过阈值thresh,值为255,未超过为0。
    10. ret1, p1 = cv2.threshold(src=gray, thresh=127, maxval=255, type=cv2.THRESH_BINARY)
    11. contours, hierarchy = cv2.findContours(p1, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
    12. n=len(contours)
    13. cv_contours=[]
    14. for contour in contours:
    15. area=cv2.contourArea(contour)
    16. if area>1000:
    17. cv_contours.append(contour)
    18. cv2.drawContours(imgdst, cv_contours, -1, (0,255,0), 3)
    19. k = np.ones((3, 3), np.uint8)
    20. temp = cv2.erode(p1, k)
    21. p2= cv2.dilate(temp, k)
    22. cv2.imshow('imgdst', imgdst)
    23. cv2.imshow('p1', p1)
    24. cv2.imshow('p2', p2)
    25. cv2.waitKey(0)
    26. cv2.destroyAllWindows()

  • 相关阅读:
    Wordpress - Xydown独立下载页面插件
    显示屏DIN 4102-1 Class B1防火测试要求
    nms非极大抑制
    All One Needs to Know about Metaverse
    Gmail 将停止支持基本 HTML 视图
    【Vue3】第十二部分 Vue-Router 4 (路由)
    Go | 基本数据类型
    WPF使用TextBlock实现查找结果高亮显示
    电脑重装系统后内存占用高怎么解决?
    【微服务】mysql + elasticsearch数据双写设计与实现
  • 原文地址:https://blog.csdn.net/T20151470/article/details/133494157