python---简单最大类间方差法(OTSU)算法
from matplotlib import pyplot as plt
# cv2.imread()用于读取图片文件
# imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式
image = cv2.imread('shengwuxibao.jpg')
# cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。
# cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
# plt.subplot(131)
# 其中131表示我们整个图是由一行三列的子图构成的
# cv2.imShow()函数可以在窗口中显示图像
plt.subplot(131),plt.imshow(image,'gray')
# xticks :设置x轴 y轴的位置
plt.title('source image'),plt.xticks([]),plt.yticks([])
# hist:在x轴上绘制定量数据的分布特征(用于连续数据,而柱状图用于离散数据)
# image.ravel():将多为数组降为一维数组。 256是bins 每32为是1bin 总共8个bin
plt.subplot(132),plt.hist(image.ravel(),256)
plt.title('Histogram'),plt.xticks([]),plt.yticks([])
#v2.threshold()函数:在opencv中比较常用,但一开始不是很理解是什么意思。
#Python: cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst
#src:表示的是图片源
#thresh:表示的是阈值(起始值)
#maxval:表示的是最大值
#type:表示的是这里划分的时候使用的是什么类型的算法**,常用值为0(cv2.THRESH_BINARY)**
# 返回两个参数 ret1 应该是阈值分割点 th1 应该是 经过处理后的图片
# cv2.THRESH_BINARY(黑白二值)
# cv2.THRESH_BINARY_INV(黑白二值反转)
ret1,th1 = cv2.threshold(gray,0,255,cv2.THRESH_OTSU)
print('ret1',ret1)
print('th1',th1)
plt.subplot(133),plt.imshow(th1,'gray')
plt.title('OTSU,threshold is'+str(ret1)),plt.xticks([]),plt.yticks([])
plt.show()
截图:

python---简单最大类间方差法(OTSU)算法的更多相关文章
- 最大类间方差法(Otsu)
由Otsu(大津展之)于1978年提出的最大类间方差法,是引起较多关注的一种阈值选取方法.它是在判决分析或最小二乘原理的基础上推导出来的. 参考文献: [1] Otsu N. A threshold ...
- OpenCV2.x自学笔记——最大类间方差法OTSU
推荐用法:(参数勿动) threshold(gray,binary,0,255,CV_THRESH_OTSU+CV_THRESH_BINARY);
- 图像二值化----otsu(最大类间方差法、大津算法)
最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津 法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间的类间方差越大,说明构成图像 ...
- 自适应阈值二值化之最大类间方差法(大津法,OTSU)
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间 ...
- Otsu 类间方差法
又称最大类间方差法.是由日本学者大津(Nobuyuki Otsu)于1979年提出的[1],是一种自适合于双峰情况的自动求取阈值的方法.又叫大津法,简称Otsu. 算法提出初衷是是按图像的灰度特性 ...
- 大津法---OTSU算法
简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...
- python 简单谈谈“类”
文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...
- 用OpenCV实现Otsu算法
算法的介绍 otsu法(最大类间方差法,有时也称之为大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找 ...
- OTSU算法学习 OTSU公式证明
OTSU算法学习 OTSU公式证明 1 otsu的公式如下,如果当前阈值为t, w0 前景点所占比例 w1 = 1- w0 背景点所占比例 u0 = 前景灰度均值 u1 = 背景灰度均值 u = ...
- 自适应阈值分割—大津法(OTSU算法)C++实现
大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...
随机推荐
- IDEA连接数据库
我只想卷死各位,或者被各位卷死 在入门案例映射配置文件中存在报红的情况.问题如下: 产生的原因:Idea和数据库没有建立连接,不识别表信息.但是大家一定要记住,它并不影响程序的执行. 解决方式:在Id ...
- 使用Python接口自动化测试post请求和get请求,获取请求返回值
引言我们在做python接口自动化测试时,接口的请求方法有get,post等:get和post请求传参,和获取接口响应数据的方法: 请求接口为Post时,传参方法我们在使用python中request ...
- AIGC:新AI时代,推动数字人进化的引擎
摘要:CV.NLP.大模型...AI技术的加持下,让数字人内外在更加生动真实.在未来的发展中,数字人的应用场景越来越广泛,并将发挥出重要的作用,让美好照进生活. 本文分享自华为云社区<AIGC: ...
- java发送http请求(jquery发送http请求,前后端看这一篇文章够了,很完整)
为什么写这篇博客? 1.目前很多系统使用了微服务架构,那么各个微服务之间进行内部通信一般采用http协议的方式,springcloud中提供了ribbon,feign,openFeign等组件. 但是 ...
- [爬虫]2.2.1 使用Selenium库模拟浏览器操作
Selenium是一个非常强大的工具,用于自动化Web浏览器的操作.它可以模拟真实用户的行为,如点击按钮,填写表单,滚动页面等.由于Selenium可以直接与浏览器交互,所以它可以处理那些需要Java ...
- Django跨域问题解决方案: django-cors-headers安装与配置
django-cors-headers安装与配置 官方文档:https://pypi.org/project/django-cors-headers/ 安装 pip install django-co ...
- enumerate()使用方法
enumerate()(单词意思是枚举的意思)是python中的内置函数, enumerate(X,[start=0]) 函数中的参数X可以是一个迭代器(iterator)或者是一个序列, start ...
- 基于AIidlux平台的自动驾驶环境感知与智能预警
自动驾驶汽车又称为无人驾驶车,是一种需要驾驶员辅助或者完全不需操控的车辆. 自动驾驶分级: 自动驾驶系统的组成部分: 环境感知系统: 自动驾驶系统架构: 自动驾驶数据集: Aidlux的作用: YOL ...
- python=2.7-not available from current channels
现象 使用miniconda3创建python2的环境 Collecting package metadata (current_repodata.json): done Solving enviro ...
- AcWing 第 92 场周赛 C题 4866. 最大数量 题解
原题链接 链表 + 并查集乱搞做法: 思路 首先可以发现,想要让度数尽量大,那我们应该构造成菊花图,即下图所示: 对于每个需求,我们可以知道,如果之前他们没有连在一起,那我们一定得把他们连在一起,该过 ...