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的Django框架下管理站点的基本方法
Jul 17 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Python入门学习指南分享
Apr 11 Python
python线程池threadpool实现篇
Apr 27 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
老生常谈python中的重载
Nov 11 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Python基础类继承重写实现原理解析
Apr 03 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
一起来学习Python的元组和列表
Mar 13 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同时支持GIF、png、JPEG
2006/10/09 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
vue2中使用less简易教程
2018/03/27 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
新学期国旗下演讲稿
2014/05/08 职场文书
亮剑观后感500字
2015/06/05 职场文书
《打电话》教学反思
2016/02/22 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
python 判断文件或文件夹是否存在
2022/03/18 Python
MySQL 计算连续登录天数
2022/05/11 MySQL