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编程中的字符串
Oct 14 Python
python 链接和操作 memcache方法
Mar 04 Python
Python信息抽取之乱码解决办法
Jun 29 Python
Python读取word文本操作详解
Jan 22 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
解决python flask中config配置管理的问题
Jul 26 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
Python中的延迟绑定原理详解
Oct 11 Python
Python基于pandas爬取网页表格数据
May 11 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 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
Search Engine Friendly的URL设计
2006/10/09 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python中的下划线详解
2015/06/24 Python
Python 类的继承实例详解
2017/03/25 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
用django设置session过期时间的方法解析
2019/08/05 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
架构师岗位职责
2013/11/18 职场文书
鉴定评语大全
2014/05/05 职场文书
银行求职信模板
2015/03/20 职场文书