图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。

在skimage库中,阈值分割的功能是放在filters模块中。

我们可以手动指定一个阈值,从而来实现分割。也可以让系统自动生成一个阈值,下面几种方法就是用来自动生成阈值。

1、threshold_otsu

基于Otsu的阈值分割方法,函数调用格式:

skimage.filters.threshold_otsu(imagenbins=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进行分割得下图:

2、threshold_yen

使用方法同上:

thresh = filters.threshold_yen(image) 

返回阈值为198,分割如下图:

3、threshold_li

使用方法同上:

thresh = filters.threshold_li(image)

返回阈值64.5,分割如下图:

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(imageblock_sizemethod='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()

大家可以修改block_size的大小和method值来查看更多的效果。如:

dst1 =filters.threshold_adaptive(image,31,'mean')
dst2 =filters.threshold_adaptive(image,5,'median')

两种效果如下:

转载于:https://www.cnblogs.com/denny402/p/5131004.html

python数字图像处理(11):图像自动阈值分割相关推荐

  1. python图像分割动态域值_图像处理基本算法 动态阈值分割

    在图像处理时,受外界光线的干扰一般比较大,假如在阈值分割时采用固 定阈值,那么在环境改变时分割效果受影响极大,那么为了避免此影响就 必须采用动态阈值,自动求出合适的阈值进行分割. 本文的介绍几种主要的 ...

  2. 7.2 Python图像处理之图像分割-单阈值分割

    7.2 Python图像处理之图像分割-单阈值分割 文章目录 7.2 Python图像处理之图像分割-单阈值分割 1 算法原理 2 代码 3 效果 1 算法原理 单阈值分割算法原理: 单阈值分割是指将 ...

  3. Python对DICOM图像进行阈值分割

    Python对Dicom图像进行处理,离不开pydicom,opencv-python,matplotlib,numpy四个代码库,安装完成这四个代码库后, 可以读取Dicom图像,并对图像进行处理, ...

  4. c++opencv汉字分割_机器学习小白,还不快pick一下——【视觉与图像:阈值分割】...

    " 前言:安利Python来开发OpenCV的原因其实细心的小伙伴早在?[视觉与图像]Python+OpenCV教程入门篇就找到了想要的答案.(点蓝字即可打开) " 今天周五了! ...

  5. 图像的阈值分割(Optimum Thresholding)

    摘    要:本实验主要实现最优阈值.图像分割就是把图像中具有特殊涵义的不同区域分开来,这些区域是互不相交的,每个区域都满足特定区域的一致性.图像分割是图像处理中的重要问题,也是计算机视觉研究中的一个 ...

  6. python数字图像处理以及绘图

    1, subplot的使用 matlab中的用法: subplot(m,n,p)或者subplot(m n p) subplot是将多个图画到一个平面上的工具.其中,m和n代表在一个图像窗口中显示m行 ...

  7. 基于数字图像处理的车牌定位和分割的研究 -- 开题报告

    本科毕业设计(论文)开题报告             课题名称 基于数字图像处理的车牌定位和分割的研究 毕业设计的内容和意义 采用数字图像处理的原理和技术,进行车牌区域的准确定位和分割的研究,给出相应 ...

  8. 红外目标图像中阈值分割方法的比较与研究

    红外目标图像中阈值分割方法的比较与研究   摘要:本文主要以红外图像目标检测技术为背景,在图像阈值分割中以最大熵准则及遗传算法为基础,研究了一维最大熵值法(KSW法)及基于遗传算法的KSW熵法单阈值. ...

  9. python绘制灰度图片直方图-python数字图像处理实现直方图与均衡化

    在图像处理中,直方图是非常重要,也是非常有用的一个处理要素. 在skimage库中对直方图的处理,是放在exposure这个模块中. 1.计算直方图 函数:skimage.exposure.histo ...

  10. (附源码)python数字图像处理课程平台 毕业设计 242339

    Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

最新文章

  1. 给UIButton添加背景图片
  2. 单利计算与复利计算程序
  3. select .. into输出单/多行
  4. docker tensorflow_Docker环境下如何使用TensorBoard
  5. 豪典软件测试版,豪典线材优化软件(通用线材优化工具)V2019.1.0 最新版
  6. 《穿越计算机的迷雾》读书笔记六
  7. android抓取微信朋友圈,一种快速提取Android微信朋友圈数据的方法
  8. git和Github
  9. 数据库设计——概念模型
  10. 前端端使用非对称加密解密
  11. 关于SQL Server中left join on and 用法的介绍
  12. KALI虚拟机挂代理教程
  13. 搭建Ubuntu14.04编译环境并下载源代码(一)
  14. 5.node.js中的事件循环
  15. html5视频在线剪辑,五种剪辑方法让视频更精彩
  16. 工业工程跨考计算机难吗,工业工程硕士跨考 难度大不大?
  17. 哲学家就餐问题python解决_关于哲学家就餐问题的分析代码.
  18. unity解压缩文件踩坑记录
  19. 重磅发布!RK3568开发板C应用编程手册
  20. 谨慎:使用 iptables -F 清除所有规则命令时必须小心

热门文章

  1. 多个引用类型的变量“引用”同一个对象意味着什么
  2. Yii 2.0 权威指南(3) 使用数据库
  3. WinForm设置窗体默认控件焦点
  4. Oracle中 如何用一个表的数据更新另一个表中的数据(含表备份)
  5. 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
  6. 计算机组成原理 多级中断,计算机组成原理的大神们能不能帮忙做几道题啊
  7. (秒杀项目) 4.4 用户下单与秒杀
  8. java applet怎么传参,使用不带浏览器的参数运行java applet
  9. 类似纪念碑谷的unity2d素材包_《纪念碑谷》:引领小清新风格的2.5D插画风游戏...
  10. python获取eth0_python 获取网卡实时流量