基于FPGA实现OTSU算法

描述

本文首发于公众号 FPGA开源工坊

OSTU大津法是一种确定图像二值化阈值的方法,由日本学者大津提出来的。

大津法从原理上来看是一种最大类间方差法,因为使用按照大津法求得的图像分割阈值进行图像分割后,得到的图像前景和背景的类间方差最大。

OSTU在图像分割领域被广泛的使用,因为其计算简单,不受图像亮度和对比度的影响。它是按图像的灰度特性,将图像分成背景和前景两部分。

来推导一下OSTU的计算公式:

OTSU算法的假设是存在阈值TH将图像所有像素分为两类C1(小于TH)和C2(大于TH),则这两类像素各自的均值就为m1、m2,图像全局均值为mG。同时像素被分为C1和C2类的概率分别为p1、p2。

因此有下面的式子:
FPGA

其中:
FPGA

根据方差的概念,类间方差表达式为
FPGA

把式(1)带入式(3)并进行化简得到下面的式子
FPGA

其中
FPGA

其实化简到这里已经可以在FPGA里面去实现OSTU了。

无所谓就是从0开始一个循环计算到255,然后再取使式(4)最大的k就可以了。

因为
FPGA

所有式(7)和式(8)就可以变形为
FPGA

所以最终的类间方差计算公式为
FPGA

在FPGA实现的时候首先进行直方图均衡化求概率p

FPGA

然后去求OSTU的各项参数

FPGA

最后输出OSTU的阈值

FPGA

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分