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多线程学习资料
Dec 19 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python与Redis的连接教程
Apr 22 Python
python实现简单爬虫功能的示例
Oct 24 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
pandas 对group进行聚合的例子
Dec 27 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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
如何做到多笔资料的同步
2006/10/09 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
快速排序 php与javascript的不同之处
2011/02/22 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
vue.js表格分页示例
2016/10/18 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
webpack3之loader全解析
2017/10/26 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
在Python中使用成员运算符的示例
2015/05/13 Python
python WindowsError的错误代码详解
2017/07/23 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
志愿者爱心公益活动策划方案
2014/09/15 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
python识别围棋定位棋盘位置
2021/07/26 Python
总结高并发下Nginx性能如何优化
2021/11/01 Servers