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解惑之True和False详解
Apr 24 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
Python实现自动上京东抢手机
Feb 06 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
python实现requests发送/上传多个文件的示例
Jun 04 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
python中 * 的用法详解
Jul 10 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Python 模拟生成动态产生验证码图片的方法
Feb 01 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 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
PHP读取目录下所有文件的代码
2008/01/07 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
python中return不返回值的问题解析
2020/07/22 Python
人事任命书格式
2014/06/05 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
Ruby处理YAML和json数据
2022/04/18 Ruby