当前位置:网站首页>有趣的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 ,取得更多联系
边栏推荐
- 博客记录生活
- AMS simulation
- 便携烙铁开源系统IronOS,支持多款便携DC, QC, PD供电烙铁,支持所有智能烙铁标准功能
- Five, the function calls
- 基于php家具销售管理系统获取(php毕业设计)
- 使用 %Status 值
- 类和对象(中下)
- R language ggplot2 visualization: use the patchwork bag plot_layout function will be more visual image together, ncol parameter specifies the number of rows, specify byrow parameters configuration dia
- 为冲销量下探中低端市场,蔚来新品牌产品定价低至10万?
- 新评论接口——京东评论接口
猜你喜欢
(通过页面)阿里云云效上传jar
899. 有序队列
超多精美礼品等你来拿!2022年中国混沌工程调查启动
便携烙铁开源系统IronOS,支持多款便携DC, QC, PD供电烙铁,支持所有智能烙铁标准功能
利用ChangeStream实现Amazon DocumentDB表级别容灾复制
leetcode 11. 盛最多水的容器
别再用if-else了,分享一下我使用“策略模式”的项目经验...
Oracle is installed (system disk) and transferred from the system disk to the data disk
从器件物理级提升到电路级
AMS simulation
随机推荐
Image fusion GAN-FM study notes
数据库系统原理与应用教程(073)—— MySQL 练习题:操作题 131-140(十七):综合练习
B站回应“HR 称核心用户都是 Loser”:该面试官去年底已被劝退,会吸取教训加强管理
R语言拟合ARIMA模型并使用拟合模型进行预测推理、使用autoplot函数可视化ARIMA模型预测结果、可视化包含置信区间的预测结果
nacos app
An基本工具介绍之选择线条工具(包教会)
【深度学习】高效轻量级语义分割综述
Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法
An动画优化之补间形状与传统补间的优化
流式编程使用场景
Nodejs 安装依赖cpnm时,install 出现Error: Cannot find module ‘fs/promises‘
Secure Custom Web Application Login
PolarFormer: Multi-camera 3D Object Detection with Polar Transformers 论文笔记
特征降维学习笔记(pca和lda)(1)
特征工程学习笔记
R语言ggplot2可视化:使用ggpubr包的ggsummarystats函数可视化箱图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格
基于php旅游网站管理系统获取(php毕业设计)
An工具介绍之宽度工具、变形工具与套索工具
易观分析:2022年Q2中国网络零售B2C市场交易规模达23444.7亿元
使用工作队列管理器(四)