AR学习笔记(七):阈值二值化优化与颜色分割的优化
AR学习笔记(七):阈值二值化优化与颜色分割的优化
- 阈值二值化的优化
- 当前方案
- 图像预处理
- 阈值二值化
- 优化方案
- otsu法
- 顶帽变换
- 分块阈值法
- 颜色分割的优化
- 当前方案
- 优化方案
- HSV模型分割
- 查找表方法
接下来改进一下阈值二值化的方法,使分割更加完整,然后改进颜色分割的方法,让阈值适应不同牙齿颜色以及光照条件
阈值二值化的优化
当前方案
图像预处理
图像预处理包括尺寸修改、限制对比度自适应直方图均衡、中值滤波,其中CLAHE能够增强牙齿和牙龈间的对比度,中值滤波可以削弱牙齿反光从而减少噪声
下面是不同参数下的CLAHE的效果
ClipLimit = 2.0
ClipLimit = 4.0
ClipLimit = 8.0
结论:当ClipLImit上升后,对比度增强,但牙齿底部颜色失真严重,灰度值变低,这里取3.0比较合适,对于其它样本图片同样适用
下面是CLAHE对不同均匀光照(暗/正常/亮)下图片的效果
结论:CLAHE能够使得在不同光照下的图片亮度趋向于一致,但是对于不均匀光照,没有统一局部光照的效果
ps.矫正光照的其他方法:在HSV颜色模型下,使多幅图像的V参数达到一致
阈值二值化
下面是对于均匀光照(暗/正常/亮)条件的图片,采用不同阈值的二值化处理效果对比
thresh = 100
thresh = 120
下面是对于不均匀光照(暗/正常/亮)条件的图片,采用不同阈值的二值化处理效果对比
thresh = 100
thresh = 120
结论:
由于阈值thresh固定,所以只在正常光照下,二值化的效果比较好,对于光照过强或过弱情况,轮廓的提取存在较大误差
优化方案
otsu法
otsu法(最大类间方差法,大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别来划分。 所以可以在二值化的时候采用otsu算法来自动选取阈值进行二值化。
otsu算法被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响。
代码参考:OTSU算法介绍及openCV的C++实现
下面是测试结果:
ostuthresh = 107
ostuthresh = 111
ostuthresh = 117
结论:使用ostu得到的阈值还需要进一步地优化,但优化难度比较大,目前通过对多幅图像测试,采取×1.3的方法来拟合合理阈值,相比固定阈值的优化有一定的改善
顶帽变换
可以用来矫正不均匀光照,下面是不同结构元素尺寸(2121,3131,4141,5151)的测试结果,效果不好
分块阈值法
参考:光照不均匀图像分割技巧
颜色分割的优化
当前方案
图像预处理同样包括尺寸修改、限制对比度自适应直方图均衡、中值滤波,然后在HSV空间下进行颜色分割
分割效果见:AR学习笔记(五):边缘分割优化和提取特征点
优化方案
HSV模型分割
查找表方法
AR学习笔记(七):阈值二值化优化与颜色分割的优化相关推荐
- [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...
- OpenCV.反阈值二值化
反阈值二值化 反阈值二值化与阈值二值化互为逆操作.在OpenCV中该类的实现依赖于threshold() 函数.下面是该函数的声明: threshold(src, dst, thresh, maxva ...
- java 图像二值化阀值,阈值 二值化图像程序
在Matlab中将一幅图像阈值分割二值化非常简单,若需要通过阈值th2二值化保留一些大面积的.且有灰度值含有大于th1的点的前景区域,而不需要小面积的区域(th1大于th2),这时会遇到这样的问题:当 ...
- python-opencv 图像阈值二值化
本文讲解基于OpenCV-python的图像二值化API及浅显原理讲解 文章目录 一. 阈值 1. 简单阈值 2. 自适应阈值 二. 图像二值化 1. 全局图像二值化 2. 局部图像二值化 3. Ot ...
- Opencv3.0--第二篇【双阈值二值化图像】
数字图像处理最主要的就是对像素进行操作,然而Opencv提供了14中像素的操作方法,但是处理速度有所不一样,常用的可以用指针进行访问,本文采用的也是用指针进行访问,其次可以采用vector容器指针的方 ...
- opencv学习5——大律二值化(ostu)
opencv中有多种方法进行图像的二值化,前面的3中直接设置二值化的阈值,比较粗暴无脑,而且用人眼看的话根本看不出来最佳阈值,因此人为的设置阈值是一种很不科学不严谨的方法,在opencv中ostu二值 ...
- matlab中使用阈值二值化,腐蚀,膨胀,反色等操作进行图像处理,去噪声,网纹、摩尔纹等
有兴趣可以对下方的一些方法和参数进行更换,以达到更好的效果. 主要涉及到二值化,阈值,腐蚀,膨胀,反色等 clc; close all; clear; workspace; fontSize = 14 ...
- Wellner 自适应阈值二值化算法
本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/archive/2013/04/2 ...
- Android--Bitmap灰度、二值化、反转颜色
一.灰度图 /*** 将彩色图转换为灰度图** @param img 位图* @return 返回转换好的位图*/public static Bitmap convertGreyImg(Bitmap ...
最新文章
- 67)vector的begin() end() 和 front() back()的区别 rbegin() rend()
- 企业安全挑战 内网安全技术十大策略
- django captcha 验证码插件
- 开源的,跨平台的.NET机器学习框架ML.NET
- uva 1203—— Argus
- Leetcode--50. Pow(x,y)
- [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree
- go语言中文网中的资源
- 程序员面试金典——3.3集合栈
- MySql免安装版绿化版安装配置,附MySQL服务无法启动解决方案
- Bandicam v5.2.1.1860 班迪录屏绿色便携版
- 360顽固木马专杀工具 千万别用
- 大话Chrome浏览器原理
- Android自定义View--Flyme6的Viewpager指示器
- 高维非空间数据可视化
- Matlab论文插图绘制模板第39期—阶梯图(Stairs)
- 国华小状元1号年金险怎么样?好不好?
- 磁盘分区MBR和GPT格式详解(Linux)
- 计算机如何分页打印,[计算机]Excel表格如何分页打印、自动分页、取消分页等技巧.doc...
- 三星SCH-I739官方原版ROM下载及刷机教程
热门文章
- 设置数据库可外网访问
- 电子信息工程水声考研去向_水声工程专业考研专业介绍及就业解析
- HTML5 autofocus属性用法简单介绍
- 国际快递查询代码,网站的online track
- 用javascript实现五子棋(二)
- java开发环境(sts,eclipse等等)解决项目上的红叉和红色感叹号的方法。
- android悬浮窗只只点击按钮,只有安卓才能体验的悬浮窗!果粉看了默默收起手机...
- poi导出excel 损坏_急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”...
- 【零声教育】C/C++Linux服务器开发/高级架构师 课程
- CC1310手册的射频核心介绍