温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-12-13 17:22:23 来源:亿速云 阅读:289 作者:小新 栏目:大数据

这篇文章将为大家详细讲解有关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中阈值二值化动态变化的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI