Python图像处理,cv2模块,OpenCV实现检索图片

本文介绍了如何使用Python的cv2模块和OpenCV库进行图像处理,特别是图像特征检测算法如Harris、FAST、SIFT、SURF、ORB,并讲解了特征匹配中的暴力匹配法和FLANN匹配法。通过示例展示了图像检索的过程,最终实现了从原始图片中检索出目标图片的微博Logo。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

利用Python实现OpenCV实现边缘检测。废话不多说。

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

cv2模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

OpenCV可以检测图像的主要特征,然后提取图像的特征,使其成为图像描述符

这些图像特征,也就是图像描述符,可以作为图像搜索的数据库

1.jpg

特征检测算法

这里简单介绍一下OpenCV常用的几种特征检测和提取算法。

Harris、FAST:用于检测角点的。

SIFT、SURF、BRIEF:用于检测斑点的。

ORBFAST算法和BRIEF算法的结合体。\

检测和提取的工作做完了,就是特征匹配。

主要是「暴力匹配法」和「FLANN匹配法」。

提了好几次特征了,那么什么是图像的特征呢?

图像特征就是指有意义的图像区域,具有独特性或易于识别性,比如角点、斑点以及高密度区

角点可以通过OpenCV的cornerHarris来识别。

「SIFT」则是一种与图像比例无关的角点检测方法,尺度不变特征变换。

采用DoG和SIFT来检测关键点并提取关键点周围的特征。

「SURF」特征检测算法,则是采用Hessian算法检测关键点,使用SURF提取特征。

图像检索

采用FLANN匹配,近似最近邻的快速库

原始图片如下,为微博的Logo

2.jpg

目标图片如下,包含新浪微博的名称

3.jpg

具体代码如下

import cv2

good = []
# 原始图片
queryImage = cv2.imread('wb1.jpg', 0)
# 目标图片
trainingImage = cv2.imre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小雁子学Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值