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的汉字转GBK码实现代码
Feb 19 Python
python中map()与zip()操作方法
Feb 27 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
Php多进程实现代码
May 07 Python
python中for用来遍历range函数的方法
Jun 08 Python
Python中的Django基本命令实例详解
Jul 15 Python
python导入坐标点的具体操作
May 10 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Python中npy和mat文件的保存与读取
Apr 24 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性能的原理介绍
2012/09/05 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python缩进和冒号详解
2016/06/01 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
Python高并发和多线程有什么关系
2020/11/14 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
老公给老婆的保证书
2014/04/28 职场文书
安全目标管理责任书
2014/07/25 职场文书
小学重阳节活动总结
2015/03/24 职场文书
大学体育课感想
2015/08/10 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
Python基于百度API识别并提取图片中文字
2021/06/27 Python
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
Python中time与datetime模块使用方法详解
2022/03/31 Python