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随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
用生成器来改写直接返回列表的函数方法
May 25 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
python中列表和元组的区别
Dec 18 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
解决pycharm界面不能显示中文的问题
May 23 Python
Python读取stdin方法实例
May 24 Python
python框架flask表单实现详解
Nov 04 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Python基础 括号()[]{}的详解
Nov 07 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 Google的translate API代码
2008/12/10 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php格式化电话号码的方法
2015/04/24 PHP
php实现word转html的方法
2016/01/22 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
python函数的5种参数详解
2017/02/24 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python计算两个数的百分比方法
2018/06/29 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python speech模块的使用方法
2020/09/09 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
性能测试工程师的面试题
2015/02/20 面试题
会计电算化个人求职信范文
2014/01/24 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
国际会计专业求职信
2014/08/04 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
幼儿园见习总结
2015/06/23 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
同乡会致辞
2015/07/30 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP