当前位置:网站首页>有趣的opencv-记录图片二值化和相似度实现
有趣的opencv-记录图片二值化和相似度实现
2022-08-03 12:42:00 【51CTO】
一、背景:
前面的文章提到,要实现两个功能
- 实现数字识别
- 实现图标识别
前面的文章已经已经实现了数字的识别,但是发现识别率比较低,并且识别的错误率也比较高。考虑是因为背景比较复杂影响了识别效果,本文主要解决复杂背景的简化,以及图片的对比
二、目标:
- 通过opencv对图片处理,使背景和内容有更加明显的差异,即二值化
- 通过opencv对比二值化后的图片的相似度,来识别图标
三、实现过程:
opencv的集成
1. 下载opencv对应的版本 https://opencv.org/releases/
我使用了最新的4.6.0 的版本

2. 解压下载的zip得到demo和需要集成的module

3. 接入自己的项目
3.1、将2中得到的sdk作为一个独立module放到项目中

3.2、在项目的setting.gradle中引入sdk module

3.3、 在使用opencv的module中引入sdk module

4. 编译使用
至此集成算是完成了,但是因为这个使用了ndk相关的功能,如果本地没有ndk环境的话,可能需要处理下环境问题,这里不再赘述
二值化处理
1. 先上代码
2. 步骤拆解
2.1、先将bitmap转为 Mat方便opencv进行操作
2.2、 调用 Imgproc.cvtColor(src, thresholdImage, Imgproc.COLOR_RGBA2GRAY); 将图像转为灰度图像
2.3、 调用 ` Imgproc.threshold(thresholdImage,thresholdImage,10.0,255.0, Imgproc.THRESH_BINARY_INV|Imgproc.THRESH_OTSU);
` 将图像转为二值图像。 这个方法非常的重要,在这里专门说一下
1. 第一个参数是图像来源
2. 第二个参数是输出的图像
3. 是一个标准。每个像素点会和这个标准比较。这个会和最后一个参数关联在一起使用。
4. 在符合第三个参数的标准的情况下,要赋予的值
5. 第五参数控制第三、第四个参数的使用情况

3. 效果展示


相似度处理
1. 上代码
2. 步骤拆解
2.1、 找到两个图片的特征点
2.2、 选取合适的匹配模式
2.3、避免 大图中包含小图导致认为小图完全匹配大图的场景,所以对大小进行判断,用大图和小图比。
2.4、 选取一个邻近距离阈值
2.5、 比较两个图的特征值的差异,,将差值符合阈值的个数记录
2.6、 符合阈值的个数,比上总特征数,得到匹配率
总结
opencv提供了一整套非常完善的api,可以解决我们遇到的绝大部分场景,大家可以多看文档,学习起来。
关注公众号: arigeweixin ,取得更多联系

边栏推荐
猜你喜欢
随机推荐
nacos应用
IronOS, an open source system for portable soldering irons, supports a variety of portable DC, QC, PD powered soldering irons, and supports all standard functions of smart soldering irons
awk入门教程
An工具介绍之宽度工具、变形工具与套索工具
AMS simulation
[数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念「建议收藏」
YOLOv5训练数据提示No labels found、with_suffix使用、yolov5训练时出现WARNING: Ignoring corrupted image and/or label
数据库系统原理与应用教程(073)—— MySQL 练习题:操作题 131-140(十七):综合练习
Jmeter使用
R语言ggplot2可视化:使用ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图
便携烙铁开源系统IronOS,支持多款便携DC, QC, PD供电烙铁,支持所有智能烙铁标准功能
setTimeout, setInterval requestAnimationFrame
实数取整写入文件(C语言文件篇)
An动画基础之元件的影片剪辑效果
(through page) ali time to upload the jar
Oracle安装完毕(系统盘),从系统盘转移到数据盘
漫画:怎么证明sleep不释放锁,而wait释放锁?
ECCV 2022|通往数据高效的Transformer目标检测器
Unsupervised learning KMeans notes and examples
秋招招工作









