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)算法的更多相关文章

  1. 最大类间方差法(Otsu)

    由Otsu(大津展之)于1978年提出的最大类间方差法,是引起较多关注的一种阈值选取方法.它是在判决分析或最小二乘原理的基础上推导出来的. 参考文献: [1] Otsu N. A threshold ...

  2. OpenCV2.x自学笔记——最大类间方差法OTSU

    推荐用法:(参数勿动) threshold(gray,binary,0,255,CV_THRESH_OTSU+CV_THRESH_BINARY);

  3. 图像二值化----otsu(最大类间方差法、大津算法)

    最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津 法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间的类间方差越大,说明构成图像 ...

  4. 自适应阈值二值化之最大类间方差法(大津法,OTSU)

    最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间 ...

  5. Otsu 类间方差法

    又称最大类间方差法.是由日本学者大津(Nobuyuki Otsu)于1979年提出的[1],是一种自适合于双峰情况的自动求取阈值的方法.又叫大津法,简称Otsu.   算法提出初衷是是按图像的灰度特性 ...

  6. 大津法---OTSU算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

  7. python 简单谈谈“类”

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...

  8. 用OpenCV实现Otsu算法

    算法的介绍 otsu法(最大类间方差法,有时也称之为大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找 ...

  9. OTSU算法学习 OTSU公式证明

    OTSU算法学习   OTSU公式证明 1 otsu的公式如下,如果当前阈值为t, w0 前景点所占比例 w1 = 1- w0 背景点所占比例 u0 = 前景灰度均值 u1 = 背景灰度均值 u = ...

  10. 自适应阈值分割—大津法(OTSU算法)C++实现

    大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...

随机推荐

  1. SpringBoot RabbitMQ 实战解决项目中实践

    1 基础预览 1.1 环境准备 Springboot 1.5.6.RELEAS Springcloud Dalston.SR2 1.2 交换机类型 交换机是用来发送消息的AMQP实体.交换机拿到一个消 ...

  2. react项目中使用plop

    第一步,安装依赖 npm install plop --dev //或者用yarn yarn add plop --dev 第二步,在package同级目录下新建plopfile.js 这是plop的 ...

  3. 2021-11-18 wpf模板

    自定义模板 <ControlTemplate x:Key="ButtonStyle1" TargetType="Button"> <Borde ...

  4. 没有显示器可用的电脑找IP

    一台在手边没有显示器可用的电脑找IP记录 问题 老大给我一台服务器(在我前面的工位)让我自己玩,但是不知道IP地址,我本来想用自己的显示器连上,结果两个DHMI口试过都没反应,不知道ip地址就没法连上 ...

  5. python 打包模块:nuitka

    该模块可以将python编译成C++级的可执行文件,是解决python图形化界面启动慢的神器. 1.环境配置 配置c/c++编译器:MinGW64 ,最低使用8.1版本,该资源自行下载. 百度网盘链接 ...

  6. 在Java中List, Set, Map是否继承自Collection接口?

    List和Set是继承自Collection接口的接口,Set不允许重复的项目,List允许重复项目, Set接口派生的类有TreeSet,HashSet,LinkedHashSet. List接口派 ...

  7. tensorflow-2.7-M1-安装依赖openblas问题

    问题描述 安装过程 conda create -n conda-forge-tensorflow conda-forge::tensorflow conda info -e conda activat ...

  8. 高效构建 vivo 企业级网络流量分析系统

    作者:vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展,网络状况的良好与否已经直接关系到了企业的日常收益,故障中的每一秒都会导致大量的用户流失与经济亏损.因此,如何快速发现网 ...

  9. SQL-去除最大值与最小值求均值的问题

    背景 今天有同事问我一道关于数据库SQL的面试题,我刚开始随便给了一个思路,后来思索发现这个思路有漏洞,于是总结下来,仅供参考. 问题: 薪水表中是员工薪水的基本信息,包括雇员编号,和薪水,查询除去最 ...

  10. 发布关于PostGIS对于USD格式的拓展

    我们非常高兴的发布为了一年一度的SIGGRAPH 2023发布关于为PostGIS支持USD格式的新拓展. 新添加了3个函数 ST_AsUSDA(geom geometry, usd_root_nam ...