python图像处理实战 豆瓣,Python数字图像处理
本文主要介绍python数字图像处理中图像自动阈值分割的一个实例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010简介1,阈值_otsu2,阈值_yen3,阈值_li4,阈值_isodata5,阈值_自适应
目录
图像阈值分割是一种广泛使用的分割技术。利用待提取的目标区域与其背景在灰度特性上的差异,将图像视为两类灰度不同的区域(目标区域和背景区域)的组合,选择合理的阈值来确定图像中的每个像素属于目标区域还是背景区域,从而生成相应的二值图像。
在skimage库中,阈值分割的功能放在过滤器模块中。
我们可以手动指定一个阈值来实现分割。您也可以让系统自动生成一个阈值。以下方法用于自动生成阈值。
引言
基于Otsu的阈值分割方法,函数调用格式:
skim age . filters . threshold _ Otsu(image,nbins=256)
参数image参考灰度图像并返回一个阈值。
从skimage导入数据,过滤器
将matplotlib.pyplot作为plt导入
image=data.camera()
threshold=filters . threshold _ Otsu(image)#返回一个阈值
dst=(image lt;=thresh)*1.0 #根据阈值分割
plt.figure(thresh ,figsize=(8,8))
plt.subplot(121)
plt.title(“原始图像”)
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title(“二进制图像”)
plt.imshow(dst,plt.cm.gray)
plt.show()
阈值回到87,下图:按87划分。
1、threshold_otsu
使用与上述相同的方法:
thresh=filters . threshold _ yen(image)
返回阈值为198,分段如下:
2、threshold_yen
使用与上述相同的方法:
thresh=filters . threshold _ Li(image)
回到64.5的门槛,划分如下:
3、threshold_li
阈值计算方法:
阈值=(图像[图像=阈值]。均值()图像[图像阈值]。平均值())/2.0
使用与上述相同的方法:
thresh=filters . threshold _ iso data(image)
返回阈值为87,所以分割效果与threshold_otsu相同。
4、threshold_isodata
调用函数是:
skim age . filters . threshold _ adaptive(image,block_size,method=gaussian )
Block_size:块大小是指当前像素的相邻区域大小,通常为奇数(如3,5,7。)
方法:用于确定自适应阈值的方法包括“均值”、“一般”、“高斯”和“中值”。
省略时,默认为高斯。
该函数直接访问阈值后的图像,而不是阈值。
从skimage导入数据,过滤器
将matplotlib.pyplot作为plt导入
image=data.camera()
DST=filters . threshold _ adaptive(image,15) #返回一个阈值图像
plt.figure(thresh ,figsize=(8,8))
plt.subplot(121)
plt.title(“原始图像”)
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title(“二进制图像”)
plt.imshow(dst,plt.cm.gray)
plt.show()
可以修改block_size的大小和方法值来查看更多效果。比如:
dst 1=filters . threshold _ adaptive(image,31, mean )
dst 2=filters . threshold _ adaptive(image,5, median )
这两种效果如下:
这就是python数字图像处理中图像自动阈值分割的详细例子。更多关于python数字图像自动阈值分割的信息,请关注热门IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。