当前位置:网站首页>有趣的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 ,取得更多联系

边栏推荐
猜你喜欢

B站回应“HR 称核心用户都是 Loser”:该面试官去年底已被劝退,会吸取教训加强管理

Feature dimensionality reduction study notes (pca and lda) (1)

From the physical level of the device to the circuit level

setTimeout, setInterval requestAnimationFrame

Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法

超多精美礼品等你来拿!2022年中国混沌工程调查启动

特征降维学习笔记(pca和lda)(1)

An工具介绍之摄像头

nacos应用

Apache APISIX 2.15 版本发布,为插件增加更多灵活性
随机推荐
无监督学习KMeans学习笔记和实例
Image fusion GAN-FM study notes
从器件物理级提升到电路级
基于php校园医院门诊管理系统获取(php毕业设计)
Oracle is installed (system disk) and transferred from the system disk to the data disk
An动画基础之按钮动画与基础代码相结合
论文理解:“Gradient-enhanced physics-informed neural networks for forwardand inverse PDE problems“
R语言ggplot2可视化:使用ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图
安全自定义 Web 应用程序登录
How to build an overseas purchasing system/purchasing website - source code analysis
图像融合GAN-FM学习笔记
类和对象(中上)
利用ChangeStream实现Amazon DocumentDB表级别容灾复制
【蓝桥杯选拔赛真题48】Scratch跳舞机游戏 少儿编程scratch蓝桥杯选拔赛真题讲解
Use %Status value
Station B responded that "HR said that core users are all Loser": the interviewer was persuaded to quit at the end of last year and will learn lessons to strengthen management
Sogou news - dataset
欧曼自动挡、银河大马力、行星新产品 欧曼全新产品以燎原之势赢领市场
SQL分页查询_Sql根据某个字段分页
The Yangtze river commercial Banks to the interview