python之阈值分割

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

import numpy as np
import cv2
img=cv2.imread('C:\\Users\\yh\\Pictures\\1.png')
imginfo=img.shape
size=(imginfo[1],imginfo[0])
imgdst=img[100:500,100:500]
print(size)

gray = cv2.cvtColor(imgdst, cv2.COLOR_BGR2GRAY)
#超过阈值thresh,值为255,未超过为0。
ret1, p1 = cv2.threshold(src=gray, thresh=127, maxval=255, type=cv2.THRESH_BINARY)

contours, hierarchy = cv2.findContours(p1, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
n=len(contours)
cv_contours=[]
for contour in contours:
    area=cv2.contourArea(contour)
    if area>1000:
        cv_contours.append(contour)
cv2.drawContours(imgdst, cv_contours, -1, (0,255,0), 3)
k = np.ones((3, 3), np.uint8)  
temp = cv2.erode(p1, k) 
p2= cv2.dilate(temp, k)
 
cv2.imshow('imgdst', imgdst)
cv2.imshow('p1', p1)
cv2.imshow('p2', p2)
cv2.waitKey(0)
cv2.destroyAllWindows()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值