OpenCV编程:最大熵阈值分割算法实现(代码可运行)

本文介绍了如何运用信息论中的Shannon熵来实现图像分割,特别是在图像灰度直方图上的应用。通过寻找使图像熵最大的阈值,达到分割目标与背景的目的。虽然这种方法对于非双峰直方图的图像有较好效果,但速度慢,不适用于实时处理,并且忽略了像素的空间信息。文中提供了一个使用OpenCV的C++实现示例,包括在VS2012环境下针对OpenCV1和OpenCV2的不同版本进行的代码调整,并给出了代码下载链接。
摘要由CSDN通过智能技术生成

        将信息论中的 shannon 熵概念用于图像分割, 其依据是使得图像中目标与背景分布的信息量最大,即通过测量图像灰度直方图的熵,找出最佳阈值。根据 shannon 熵的概念,对于灰度范围为 0,1,2,…,L-1 的图像,其直方图的熵定义为(仅仅是定义) :

其中pi为像素值为 i 的像素占整个图像的概率。

       设阈值 t 将图像划分为目标 O 和背景 B 两类,他们的概率分布分别为:


       最佳阈值 T 为使得图像的总熵取得最大值:T=argmax(H(t))
此方法不需要先验知识, 而且对于非理想双峰直方图的图像也可以进行较好的分割。 缺点:运算速

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值