OpenCV中阈值二值化动态变化的示例分析

这篇文章将为大家详细讲解有关OpenCV中阈值二值化动态变化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

渌口网站建设公司创新互联公司,渌口网站设计制作,有大型网站制作公司丰富经验。已为渌口近千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的渌口做网站的公司定做!

在OpenCV4Android里面我们用到的比较多的就是二值化,简单的二值化流程就是把图片通过Imgproc.cvtColor改为灰度图,然后再通过Imgproc.threshold进行二值化的处理

Imgproc.threshold

//二值化图像  thresh这里如果指定数就是指定阈值,如果这里设为0,后面参数加上Imgproc.THRESH_OTSU
//多数情况下我们都加上Imgproc.THRESH_OTSU让它自己来算
Imgproc.threshold(src, dst, val, 255, Imgproc.THRESH_BINARY);

其中参数src是Mat源,dst是Mat目标,我们设置的第三个参数val就是我们要输入的阈值,阈值的范围在0-225之间,0就是白色,255就是黑色,然后255那个参数就是最大的阈值数,最后一个参数Imgproc.THRESH_BINARY就是二值化处理,当我们的参数阈值自己手动修改时,就直接填一个这个就可以,如果是默认的阈值是0,建议参数加上Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU, OTSU这样API会自动给你计算最合理的值来进行处理.

Layout布局

我们首先在布局图里面加上一个seekbar和一个TextView用于调整我们的值,并且显示当前值

OpenCV中阈值二值化动态变化的示例分析

都放在一个LinearLayout里,让其水平布局,并且seekbar占长度的比重为8,TextView占的比重为2

OpenCV中阈值二值化动态变化的示例分析

布局效果

MainActivity

然后在MainActivity里面加入加载两个控件并且写对应的事件

SeekBar

OpenCV中阈值二值化动态变化的示例分析

加载SeekBar控件,并且加下的Change事件,事件就是当值改变时就调用我们的二值化方法进行图片的更新,我们为了有个改变效果,所以ImgDealUtil.thresholdbmpforval方法里面我们写了一个返回Bitbmp的图像,再在原来的图片上进行更新显示.

TexView

OpenCV中阈值二值化动态变化的示例分析

加载textView控件

ImgDealUtil.thresholdbmpforval方法

我们在ImgDealUtil类里面重新增加了一个thresholdbmpforval方法

OpenCV中阈值二值化动态变化的示例分析

两个参数, int就是当前的阈值,bitbmp就是当前的图片信息.

进入程序后的效果

OpenCV中阈值二值化动态变化的示例分析

我们选择二值化阈值

OpenCV中阈值二值化动态变化的示例分析

然后在seekbar的控件上进行左右拖动,图片就会跟着改变效果了

关于“OpenCV中阈值二值化动态变化的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


分享名称:OpenCV中阈值二值化动态变化的示例分析
标题网址:http://myzitong.com/article/jhejhp.html