opencv实战week2


图像特征篇我个人觉得就是数学计算方法,实际调用很简单所以本篇是基本原理便于加深理解

图像特征

harris

在这里插入图片描述
基本原理:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调用方法

import cv2
# cv2.cornerHarris()
# img:数据类型为float32的入图像
# blockSize:角点检测中指定区域的大公
# ksize: Sobel求导中使用的窗口大小
# k:取值参数为[0.04,0.06]
def cv_show(name,img):
    #显示的窗口名字,显示的图像
    cv2.imshow(name,img)
    cv2.waitKey(0)# 等待时间,毫秒级,0表示任意键终止
    #销毁当前窗口
    cv2.destroyAllWindows()
img=cv2.imread('picture/chessboard.jpg')
# cv_show('img',img)
print(img.shape)#(512, 512, 3)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst=cv2.cornerHarris(gray,2,3,0.04)
print(dst.shape)
img[dst>0.01*dst.max()]=[255,0,0]
cv_show('dst',img)

sift

在这里插入图片描述
在这里插入图片描述
不同σ的高斯函数决定了对图像的平滑程度,越大的σ值对应的图像越模糊
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
消除边界响应
在这里插入图片描述
特征点的主方向
在这里插入图片描述
在这里插入图片描述
生成特征描述
再完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import cv2
import numpy as np
def cv_show(name,img):
    #显示的窗口名字,显示的图像
    cv2.imshow(name,img)
    cv2.waitKey(0)# 等待时间,毫秒级,0表示任意键终止
    #销毁当前窗口
    cv2.destroyAllWindows()
img=cv2.imread('test_1.jpg')
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift=cv2.SIFT_create()
kp=sift.detect(gray,None)
img=cv2.drawKeypoints(gray,kp,img)

cv_show('img',img)
#计算特征:
kp,des=sift.compute(gray,kp)
print(np.array(kp).shape)
print(des.shape)
print(des[0])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值