python数字图像处理之图像自动阈值分割示例


Posted in Python onJune 28, 2022

引言

图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。

在skimage库中,阈值分割的功能是放在filters模块中。

我们可以手动指定一个阈值,从而来实现分割。也可以让系统自动生成一个阈值,下面几种方法就是用来自动生成阈值。

1、threshold_otsu

基于Otsu的阈值分割方法,函数调用格式:

skimage.filters.threshold_otsu(image, nbins=256)

参数image是指灰度图像,返回一个阈值。

from skimage import data,filters
import matplotlib.pyplot as plt
image = data.camera()
thresh = filters.threshold_otsu(image)   #返回一个阈值
dst =(image <= thresh)*1.0   #根据阈值进行分割
plt.figure('thresh',figsize=(8,8))
plt.subplot(121)
plt.title('original image')
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title('binary image')
plt.imshow(dst,plt.cm.gray)
plt.show()

返回阈值为87,根据87进行分割得下图:

python数字图像处理之图像自动阈值分割示例

2、threshold_yen

使用方法同上:

thresh = filters.threshold_yen(image)

返回阈值为198,分割如下图:

python数字图像处理之图像自动阈值分割示例

3、threshold_li

使用方法同上:

thresh = filters.threshold_li(image)

返回阈值64.5,分割如下图:

python数字图像处理之图像自动阈值分割示例

4、threshold_isodata

阈值计算方法:

threshold = (image[image <= threshold].mean() +image[image > threshold].mean()) / 2.0

使用方法同上:

thresh = filters.threshold_isodata(image)

返回阈值为87,因此分割效果和threshold_otsu一样。

5、threshold_adaptive

调用函数为:

skimage.filters.threshold_adaptive(image, block_size, method='gaussian')

block_size: 块大小,指当前像素的相邻区域大小,一般是奇数(如3,5,7。。。)

method: 用来确定自适应阈值的方法,有'mean', 'generic', 'gaussian' 和 'median'。

省略时默认为gaussian

该函数直接访问一个阈值后的图像,而不是阈值。

from skimage import data,filters
import matplotlib.pyplot as plt
image = data.camera()
dst =filters.threshold_adaptive(image, 15) #返回一个阈值图像
plt.figure('thresh',figsize=(8,8))
plt.subplot(121)
plt.title('original image')
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title('binary image')
plt.imshow(dst,plt.cm.gray)
plt.show()

python数字图像处理之图像自动阈值分割示例

大家可以修改block_size的大小和method值来查看更多的效果。如:

dst1 =filters.threshold_adaptive(image,31,'mean') 
dst2 =filters.threshold_adaptive(image,5,'median')

两种效果如下:

python数字图像处理之图像自动阈值分割示例

以上就是python数字图像处理之图像自动阈值分割示例的详细内容,更多关于python数字图像自动阈值分割的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中的startswith和endswith函数使用实例
Aug 25 Python
浅谈python字符串方法的简单使用
Jul 18 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python实现类的创建与使用方法示例
Jul 25 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python多进程原理与用法分析
Aug 21 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
python 网络编程要点总结
Jun 18 Python
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 #Python
python数字图像处理:图像简单滤波
Jun 28 #Python
python实现一个简单的贪吃蛇游戏附代码
python数字图像处理之对比度与亮度调整示例
Jun 28 #Python
python数字图像处理实现图像的形变与缩放
在python中读取和写入CSV文件详情
Jun 28 #Python
python数字图像处理之图像的批量处理
You might like
php实现的mongodb操作类实例
2015/04/03 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
php分页查询的简单实现代码
2017/03/14 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
简单实现jQuery轮播效果
2017/08/18 jQuery
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
Vue shopCart 组件开发详解
2018/01/26 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
客户代表自我评价范例
2013/09/24 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
创先争优制度
2014/01/21 职场文书
委托书范本
2014/04/02 职场文书
教师求职自荐书
2014/06/14 职场文书
2014财务年度工作总结
2014/11/11 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang