python数字图像处理(11):图像自动阈值分割
图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。
在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进行分割得下图:
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(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()
大家可以修改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):图像自动阈值分割相关推荐
- python图像分割动态域值_图像处理基本算法 动态阈值分割
在图像处理时,受外界光线的干扰一般比较大,假如在阈值分割时采用固 定阈值,那么在环境改变时分割效果受影响极大,那么为了避免此影响就 必须采用动态阈值,自动求出合适的阈值进行分割. 本文的介绍几种主要的 ...
- 7.2 Python图像处理之图像分割-单阈值分割
7.2 Python图像处理之图像分割-单阈值分割 文章目录 7.2 Python图像处理之图像分割-单阈值分割 1 算法原理 2 代码 3 效果 1 算法原理 单阈值分割算法原理: 单阈值分割是指将 ...
- Python对DICOM图像进行阈值分割
Python对Dicom图像进行处理,离不开pydicom,opencv-python,matplotlib,numpy四个代码库,安装完成这四个代码库后, 可以读取Dicom图像,并对图像进行处理, ...
- c++opencv汉字分割_机器学习小白,还不快pick一下——【视觉与图像:阈值分割】...
" 前言:安利Python来开发OpenCV的原因其实细心的小伙伴早在?[视觉与图像]Python+OpenCV教程入门篇就找到了想要的答案.(点蓝字即可打开) " 今天周五了! ...
- 图像的阈值分割(Optimum Thresholding)
摘 要:本实验主要实现最优阈值.图像分割就是把图像中具有特殊涵义的不同区域分开来,这些区域是互不相交的,每个区域都满足特定区域的一致性.图像分割是图像处理中的重要问题,也是计算机视觉研究中的一个 ...
- python数字图像处理以及绘图
1, subplot的使用 matlab中的用法: subplot(m,n,p)或者subplot(m n p) subplot是将多个图画到一个平面上的工具.其中,m和n代表在一个图像窗口中显示m行 ...
- 基于数字图像处理的车牌定位和分割的研究 -- 开题报告
本科毕业设计(论文)开题报告 课题名称 基于数字图像处理的车牌定位和分割的研究 毕业设计的内容和意义 采用数字图像处理的原理和技术,进行车牌区域的准确定位和分割的研究,给出相应 ...
- 红外目标图像中阈值分割方法的比较与研究
红外目标图像中阈值分割方法的比较与研究 摘要:本文主要以红外图像目标检测技术为背景,在图像阈值分割中以最大熵准则及遗传算法为基础,研究了一维最大熵值法(KSW法)及基于遗传算法的KSW熵法单阈值. ...
- python绘制灰度图片直方图-python数字图像处理实现直方图与均衡化
在图像处理中,直方图是非常重要,也是非常有用的一个处理要素. 在skimage库中对直方图的处理,是放在exposure这个模块中. 1.计算直方图 函数:skimage.exposure.histo ...
- (附源码)python数字图像处理课程平台 毕业设计 242339
Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
最新文章
- 给UIButton添加背景图片
- 单利计算与复利计算程序
- select .. into输出单/多行
- docker tensorflow_Docker环境下如何使用TensorBoard
- 豪典软件测试版,豪典线材优化软件(通用线材优化工具)V2019.1.0 最新版
- 《穿越计算机的迷雾》读书笔记六
- android抓取微信朋友圈,一种快速提取Android微信朋友圈数据的方法
- git和Github
- 数据库设计——概念模型
- 前端端使用非对称加密解密
- 关于SQL Server中left join on and 用法的介绍
- KALI虚拟机挂代理教程
- 搭建Ubuntu14.04编译环境并下载源代码(一)
- 5.node.js中的事件循环
- html5视频在线剪辑,五种剪辑方法让视频更精彩
- 工业工程跨考计算机难吗,工业工程硕士跨考 难度大不大?
- 哲学家就餐问题python解决_关于哲学家就餐问题的分析代码.
- unity解压缩文件踩坑记录
- 重磅发布!RK3568开发板C应用编程手册
- 谨慎:使用 iptables -F 清除所有规则命令时必须小心
热门文章
- 多个引用类型的变量“引用”同一个对象意味着什么
- Yii 2.0 权威指南(3) 使用数据库
- WinForm设置窗体默认控件焦点
- Oracle中 如何用一个表的数据更新另一个表中的数据(含表备份)
- 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
- 计算机组成原理 多级中断,计算机组成原理的大神们能不能帮忙做几道题啊
- (秒杀项目) 4.4 用户下单与秒杀
- java applet怎么传参,使用不带浏览器的参数运行java applet
- 类似纪念碑谷的unity2d素材包_《纪念碑谷》:引领小清新风格的2.5D插画风游戏...
- python获取eth0_python 获取网卡实时流量