【图像处理】图像二值化的Otsu技术(python)

 时间:2024-10-24 21:37:52

1、给出一幅图片。

【图像处理】图像二值化的Otsu技术(python)

2、读取灰度图:img=cv2.imread('0.png',0)

【图像处理】图像二值化的Otsu技术(python)

3、对灰度图进行二值化处理:ret, th = cv2.threshold(img, 100,255, cv2.THRESH_BINARY)用的方法是cv2.THRESH_BINARY,阈值是100。

【图像处理】图像二值化的Otsu技术(python)

4、看一下上面方法之下,阈值从0增加到255的动画效果。

【图像处理】图像二值化的Otsu技术(python)

5、如果加上Otsu方法,看看效果。ret巳呀屋饔, th = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)这里面,我们没有规定阈值,但是Otsu方法可以按照既定的算法,求出阈值。这个状态必定在上面动态图里面出现过。换言之,Otsu方法求出的阈值,是一个固定的数字。

【图像处理】图像二值化的Otsu技术(python)

6、如果对原图进行局部二值化,且使用上Ot衡痕贤伎su,会不会更好一些呢?for i in range(10): for j in range(10): ret, th = cv2.threshold(img[0+int(u/10)*i:0+int(u/10)*(i+1), 0+int(v/10)*j:0+int(v/10)*(j+1)], 0,255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) pic[0+int(u/10)*i:0+int(u/10)*(i+1),0+int(v/10)*j:0+int(v/10)*(j+1)]=th结果不算如意。

【图像处理】图像二值化的Otsu技术(python)

7、按照步骤五的结果抠图。pic=cv2.imread('0.png')for i in range(u): for j in range(v): if th[i,j]==0: pic[i,j]=pic[i,j]*0

【图像处理】图像二值化的Otsu技术(python)
  • 虚拟机如何选择LAN区段
  • Centos8 解决SSH连接慢方法
  • Linux Ubuntu如何安装chrome浏览器
  • centos7.3没有拼音输入法,怎么安装拼音输入法
  • Ubuntu压缩与解压缩
  • 热门搜索
    安惠产品怎么样 章华染发剂怎么样 ppt超链接怎么返回 猪肚鸡汤怎么煲 烟台南山学院怎么样 下巴长痘是怎么回事 齐齐哈尔大学怎么样 显存怎么看 怎么发淘宝链接 在校大学生怎么赚钱