资讯专栏INFORMATION COLUMN

【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 24⚠️ SIFT 算法

DevTalking / 3125人阅读

【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 24⚠️ SIFT 算法

概述

OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 24 课)

图像尺度空间

在一定的范围内, 无论物体是大还是小, 人眼都可以分辨出来. 而计算机要有相同的能力却很难, 所以要让机器能够对物体在不同尺度下有一个统一的认知, 就需要考虑图像在不同的尺度下都存在的特点.

多分辨率金字塔

使用高斯模糊, 不同的 σ 决定了图像的平滑程度, 越大的 σ 值对应的图像越模糊. 通过使用不同的 σ 我们可以实现多分辨率金字塔.

高斯模糊:

cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
  • src: 需要滤波的图片
  • ksize: 卷积核大小
  • sigmaX: 高斯核函数在 X 方向的的标准偏差
  • sigmaY: 高斯核函数在 Y 方向的的标准偏差

例子:

import cv2from matplotlib import pyplot as plt# 读取图片img = cv2.imread("face.jpg")# 画图f, ax = plt.subplots(2, 3, figsize=(12, 8))ax[0, 0].imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))ax[0, 0].set_title("original")ax[0, 0].set_xticks([])ax[0, 0].set_yticks([])# 高斯模糊for i in range(1, 6):    # 高斯模糊    image_blur = cv2.GaussianBlur(img, (15, 15), i)    # 计算子图    ax[int(i/3), i % 3].imshow(cv2.cvtColor(image_blur, cv2.COLOR_BGR2RGB))    # 标题    ax[int(i/3), i % 3].set_title("σ" + str(i))    ax[int(i/3), i % 3].set_xticks([])    ax[int(i/3), i % 3].set_yticks([])# 展示图片plt.show()

输出结果:

高斯差分金字塔

DoG (Difference of Gaussian) 即高斯差分金字塔, 是在高斯金字塔的基础上构建起来的. 通过对高斯金字塔逐层相减, 得到 t-1 的高斯差分金字塔:

计算极值点

DoG 空间极值检测: 将每个像素点和同一层周围的 8 个像素点以及上下两层的 18 个像素点, 共 26 个像素点进行比较. 如果一像素点大于或小于邻近的 26 个像素点的时候, 就成为了极值点.

SIFT 算法

SIFT (Scale Invariant Feature Transform), 即尺度不变特征变换匹配算法. SIFT 算法对于旋转和尺度具有不变性.

函数

实例化 SHIFT 算法:

cv2.SIFT_create()

获取特征点:

sift.detect(img_gray, None)

绘制特征点:

cv2.drawKeypoints(image, keypoints, outImage, color=None, flags=None)
  • image: 输入图像
  • keypoints: 特征点
  • outImage: 输出图像

将特征点转换为128 维的向量:

sift.compute(img, kp)

实战

例子:

import numpy as npimport cv2# 读取图片img = cv2.imread("face.jpg")key_points = img.copy()# 实例化SIFT算法sift = cv2.SIFT_create()# 得到特征点kp = sift.detect(img, None)print(np.array(kp).shape)# 绘制特征点cv2.drawKeypoints(img, kp, key_points)# 图片展示cv2.imshow("key points", key_points)cv2.waitKey(0)cv2.destroyAllWindows()# 保存图片cv2.imwrite("key_points.jpg", key_points)# 计算特征kp, des = sift.compute(img, kp)# 调试输出print(des.shape)print(des[0])

输出结果:

(2183,)(2183, 128)[  9.  18.   1.   0.   0.   0.  10.   8.  11.  18.   7.  34.  37.  14.  31.  11.  15.   6.  33.  50.  26.   9.   8.  10.   2.   1.  77.  94.  72.  17.   2.   5.  20.  44.   4.   1.   0.   0.   0.   0.  37.  63.  34. 128.  53.   4.   1.   1. 144.  11.   8.  56.  45.  25.   9.  63.  20.   1.   5.  22. 144. 144.   8.  18.  16.   3.   0.   0.   0.   0.   0.   2.  49.   7.   2.  17.  80.  35.   0.   9. 144.  39.   1.   5.  44.  19.   1.  12.  47.   9.   0.   0. 144. 126.   1.   2.   8.   0.   0.   0.   0.   0.   0.   1.  34.   2.   0.   0.  60.  25.   0.   5. 144.  38.   0.   0.  39.  14.   0.   2.  61.  13.   0.   0. 144.  50.   0.   0.]


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119271.html

相关文章

  • 苏州程序大白一文教你学会微信小程序开发☀《❤记得收藏❤

    ☀️苏州程序大白一文教你学会微信小程序开发☀️《❤️记得收藏❤️》 目录 ?️‍?开讲啦!!!!?️‍?苏州程序大白?️‍??博主介绍?前言?讲讲专享小程序有什么优势? ?小程序文件分析?事件绑定?图片问题?轮播图swiper?自定义组件?生命周期?页面生命周期?项目制作?缓冲事件?`es7 async`语法 ?触底事件❄️下拉刷新页面❄️css省略号❄️预览大图❄️购物车模拟❄️获取地...

    刘明 评论0 收藏0
  • 女朋友嫌我拍的照片有雾,连夜用OpenCV写出❤去雾算法逃过一劫(收藏保命)

    ❤️欢迎订阅《从实战学python》专栏,用python实现爬虫、办公自动化、数据可视化、人工智能等各个方向的实战案例,有趣又有用!❤️ 更多精品专栏简介点这里 治愈生活的良方 就是保持对生活的热爱 前言 哈喽,大家好,我是一条。 每次和女朋友出去玩,拍照是必须的,天气好还行,天气要是不好,加上我这破手机,那拍的简直惨不忍睹,自己都不过去。 但是没什么能难倒程序员的,为了不挨骂,连夜写出去雾...

    DTeam 评论0 收藏0
  • 两万字《算法 + 数据结构》如何开始❤

    文章目录 1️⃣前言:追忆我的刷题经历2️⃣算法和数据结构的重要性?1、适用人群?2、有何作用?3、算法简介?4、数据结构 3️⃣如何开始持续的刷题?1、立军令状?‍❤️‍?2、培养兴趣?3、狂切水题??4、养成习惯?5、一周出师 4️⃣简单数据结构的掌握?1、数组?2、字符串?3、链表?4、哈希表?‍?‍?5、队列?‍?‍?‍?6、栈?7、二叉树?8、多叉树?9、森林?10、树状数组?11、...

    BoYang 评论0 收藏0
  • Python:SIFT算法的实现

    摘要:安装我们可以使用库中的函数实现,但由于专利保护,很多版本的库已无法提供该函数,目前仅版本的库可使用此函数。算法选择其中最优的四个点程序结果 本文侧重于如何使用Pyt...

    Lsnsh 评论0 收藏0
  • Python OpenCV图像处理:❤转换+梯度❤边缘检测+图像融合,aplacian金字塔合成

    ?????? ???Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照??? ???CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习 ?入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!??? ?最后,愿我们都能在看不到的地方闪闪发光,一起加油进步??? ???一万次悲伤,依然会有Dream,我一直在最温暖的地方等你,唱的就是我!哈哈哈~...

    DevYK 评论0 收藏0

发表评论

0条评论

DevTalking

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<