# import cv2
# # 读取图像 0加载灰度图像 1加载原图像
# img = cv2.imread('../image/1.jpg',-1)
# # 0可以自由缩放 1不能调整大小
# cv2.namedWindow('美女',1)
# cv2.imshow('美女',img)
# # 显示多少毫秒 0或者什么都不填表示一直显示,直到任何按键为止
# cv2.waitKey()
# # 销毁所有窗口 销毁特定窗口请加参数
# cv2.destroyAllWindows()
# import cv2
# img = cv2.imread('../image/3.jpg',1)
# px = img[100,100]
# print(px)
# # 精确到某个像素
# print(img.item(100,100,0))
# # 查看图像属性
# print(img.shape)
# # 图像像素个数
# print(img.size)
# # 图像数据类型
# print(img.dtype)
# # 图像特定区域的选取
# ROI = img[1:240,60:270]
# cv2.imshow('ROI',ROI)
# # split拆分图像通道
# b, g, r = cv2.split(img)
# img[:, :, 2] = 0
# r = img[:, :, 2]
# # merge合并
# img = cv2.merge((b, g, r))
# import cv2
# img1 = cv2.imread('../image/dongman1.jpg')
# img2 = cv2.imread('../image/dongman2.jpg')
# # 两幅图像的减法 目标检测
# res = cv2.subtract(img1,img2)
# # 非运算,二值化图像取反
# fei = cv2.bitwise_not(img1,img2)
# cv2.imshow('res',fei)
# import cv2
# img = cv2.imread('../image/1.jpg')
# # 颜色空间转化 灰度化
# gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# # HSV色彩空间
# hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# hls = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
# lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
# luv = cv2.cvtColor(img, cv2.COLOR_BGR2LUV)
# cv2.imshow('gray', gray)
# cv2.imshow('hsv', hsv)
# cv2.imshow('hls', hls)
# cv2.imshow('lab', lab)
# cv2.imshow('luv', luv)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
# import cv2
# import numpy as np
# import matplotlib.pyplot as plt
#
# src = cv2.imread("image/paojie.jpg", cv2.IMREAD_GRAYSCALE)
# # 设置画布尺寸
# plt.figure(figsize=(8, 10))
# # 喷涂灰度显示
# plt.imshow(src, cmap="gray")
# # 显示图片
# plt.show()
# # 拷贝副本
# src1 = src.copy()
# min, max, minLoc, maxLoc = cv2.minMaxLoc(src)
# print("min: %.2f, max: %.2f" % (min, max))
# print("min loc: ", minLoc)
# print("max loc: ", maxLoc)
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../image/2.jpg', 1)
surf = cv2.xfeatures2d.SURF_create(30000)
kp = surf.detect(img, None)
img2 = cv2.drawKeypoints(img, kp, None, (255, 0, 255), 4)
surf.setUpright(True)
surf.setHessianThreshold(40000)
kp = surf.detect(img, None)
img3 = cv2.drawKeypoints(img, kp, None, (255, 0, 255), 4)
plt.subplot(121), plt.imshow(img2),
plt.title('Dstination'), plt.axis('off')
plt.subplot(122), plt.imshow(img3),
plt.title('Dstination'), plt.axis('off')
plt.show()
def BRIEF(img):
# Initiate FAST detector
star = cv2.xfeatures2d.StarDetector_create()
# Initiate BRIEF extractor
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()
# find the keypoints with STAR
kp = star.detect(img, None)
# compute the descriptors with BRIEF
kp, des = brief.compute(img, kp)
print(brief.descriptorSize())
print(des.shape)
# draw only keypoints location,not size and orientation
img2 = cv2.drawKeypoints(img, kp, None, color=(0, 255, 0), flags=0)
plt.imshow(img2), plt.show()
def ORB(img):
# Initiate ORB detector
orb = cv2.ORB_create()
# find the keypoints with ORB
kp = orb.detect(img, None)
# compute the descriptors with ORB
kp, des = orb.compute(img, kp)
# draw only keypoints location,not size and orientation
img2 = cv2.drawKeypoints(img, kp, None, color=(0, 255, 0), flags=0)
plt.imshow(img2), plt.show()
ORB(img)