读《Adaptive Thresholding Using the Integral Image》自适应图像阈值
图像的二值化问题总是一个问题。虽然使用深度学习的方法取得了不小的进展,但是传统的方法还是值得借鉴。
刚好随机游走到这篇文章 挖个07年的坟 地址:http://people.scs.carleton.ca/~roth/iit-publications-iti/docs/gerh-50002.pdf

这是二值化后的效果。
全局阈值法在上面的情况下会失效,所以本文使用了一种自适应的阈值算法。
作者使用了积分图 (Integral Image) 作为阈值分割工具,这也算是积分图的应用吧。



公式(1)是坐标(x,y)处的积分值的计算方法, (2)是计算两个对角点像素的和。
图像2给出了积分图的计算事例。 左:图像灰度值 中:计算的对应的积分图 最后一个是解释公式(2),类似于几何文氏图
作者给出的阈值分割判据是:
计算目标点周围S邻域正方形内的均值
比较该目标点与均值的差距
如果目标点灰度值小于均值的 某一百分比(阈值) 目标点为0
如果目标点灰度值大于均值的某一百分比(阈值) 目标点为1
作者取的邻域S,和百分比 没有找到,公布代码的网址也挂掉了。
检测结果:

乱侃:
这是很早的一篇文章了,和现在Opencv里的adaptivethreshold原理差不多。
该文章里引用的另一个人的方法比较有意思:
对图像进行按行扫描,计算前s个像素的滑动平均值,对于要判定的像素,比较其与这个滑动平均值的大小,然后判定。
总之,这篇文章比较老,作者使用了积分图来加快计算某一像素领域内的均值,这点在当时应该比较新,对于深度学习来说就是做了个sxs的均值卷积,现在根本不是问题。
当然,现在这种局部自适应阈值的方法还是大量使用,因为他最能讲的通,简单明了。但是就像图1里的阈值分割结果,四周的假阳性有点多啊。这个的消除才是现在的难点。
消除这些假阳性的方法有: 形态学的方法(膨胀,腐蚀) ,几何尺寸先验知识过滤,等 ,传统论文大概都是这个套路。总之,难点还是如何消除分割错误的像素。

读《Adaptive Thresholding Using the Integral Image》自适应图像阈值的更多相关文章
- Adaptive Thresholding & Otsu’s Binarization
Adaptive Thresholding Adaptive Method - It decides how thresholding value is calculated. cv2.ADAPTIV ...
- Domain Adaptive Faster R-CNN:经典域自适应目标检测算法,解决现实中痛点,代码开源 | CVPR2018
论文从理论的角度出发,对目标检测的域自适应问题进行了深入的研究,基于H-divergence的对抗训练提出了DA Faster R-CNN,从图片级和实例级两种角度进行域对齐,并且加入一致性正则化来学 ...
- Wellner 自适应阈值二值化算法
参考文档: Adaptive Thresholding for the DigitalDesk.pdf Adaptive Thresholding Using the Integral I ...
- 一种局部二值化算法:Sauvola算法
之前接触过全局二值化(OTSU算法),还有OPENCV提供的自适应二值化,最近又了解到一种新的局部二值化算法,Sauvola算法. 转载自:http://www.dididongdong.com/ar ...
- Computer Graphics Research Software
Computer Graphics Research Software Helping you avoid re-inventing the wheel since 2009! Last update ...
- ostu进行遥感图像的分割
城市地区道路网的简单的阈值分割.采用的是单ostu(最佳阈值分割)算法,废话少说,如果不太清楚该算法,请参考文献[1]中的图像分割这一章的介绍.程序直接运行的效果如下.
- 限制对比度自适应直方图均衡(Contrast Limited Adaptive histgram equalization/CLAHE)
转自:http://www.cnblogs.com/Imageshop/archive/2013/04/07/3006334.html 一.自适应直方图均衡化(Adaptive histgram eq ...
- InnoDB关键特性之自适应hash索引
一.索引的资源消耗分析 1.索引三大特点 1.小:只在一个到多个列建立索引 2.有序:可以快速定位终点 3.有棵树:可以定位起点,树高一般小于等于3 2.索引的资源消耗点 1.树的高度,顺序访问索引的 ...
- Dubbo 源码分析 - 自适应拓展原理
1.原理 我在上一篇文章中分析了 Dubbo 的 SPI 机制,Dubbo SPI 是 Dubbo 框架的核心.Dubbo 中的很多拓展都是通过 SPI 机制进行加载的,比如 Protocol.Clu ...
随机推荐
- springcloud-zuul初级篇
一 前言 zuul路由网关的核心作用是用于后台服务的统一管理:由于微服务是部署在多台服务器上,服务器的ip地址并不能统一,我们需要暴露一个统一的ip地址给前台使用进行接口调用:zuul就是起到路由网关 ...
- 计算机基础 - 时间戳(timestamp)位数
分为10位数字(ten digit)和13位(thirteen digit)数字 1. Unix, Python为10 time +%s import time time.time() 2. Java ...
- C++的const成员函数
我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误.例如, const char blank = ‘’; blank = ‘\n’; // 错误 面向对象 ...
- git 删除分支和回退到以前某个提交版本
1.git 创建和删除分支: 创建:git branch 分支名字 本地删除:git branch -D 分支名字 远程删除:git push origin :分支名字 2.git 回退到以前提交的版 ...
- C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别
写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...
- Nvidia发布更快、功耗更低的新一代图形加速卡
导读 不出意外的,Nvidia在其举行的Supercomputing 19大会上公布了很多新闻,这些我们将稍后提到.但被忽略的一条或许是其中最有趣的:一张更快.功耗更低的新一代图形加速卡. 多名与会者 ...
- Spring Cloud Hystrix 请求熔断与服务降级
在Java中,每一个HTTP请求都会开启一个新线程.而下游服务挂了或者网络不可达,通常线程会阻塞住,直到Timeout.你想想看,如果并发量多一点,这些阻塞的线程就会占用大量的资源,很有可能把自己本身 ...
- #P1099 树网的核 题解
题目描述 pdf 题解 这一题,刚开始看题目感觉好像很难,题目又长……一看数据范围,呵呵. 已经给出来这是个DAG,所以不用担心连通性的问题.那么怎么做呢? 朴素的做法是把树的直径的两个端点都统计出来 ...
- Tensorflow机器学习入门——网络可视化TensorBoard
一.在代码中标记要显示的各种量 tensorboard各函数的作用和用法请参考:https://www.cnblogs.com/lyc-seu/p/8647792.html import tensor ...
- django 模版内置的过滤器
一.add 将传进来的参数添加到原来的值上面.这个过滤器会尝试将“值”和“参数”转换成整形然后进行相加.如果转换成整形过程中失败了,那么将会将“值”和“参数”进行拼接.如果是字符串,那么会拼接成字符串 ...