91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .py
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-15
  • 語言: Python
  • 標簽: python??opencv??

資源簡介

可以將圖像集按輸入的順序進行全景圖的拼接,但未實現拼縫處理。 使用python語言編寫。

資源截圖

代碼片段和文件信息

import?numpy?as?np
import?cv2
import?time


def?getSURFFeatures(image):
????gray?=?cv2.cvtColor(image?cv2.COLOR_BGR2GRAY)
????surf?=?cv2.xfeatures2d.SURF_create()
????kp?des?=?surf.detectAndCompute(gray?None)
????return?kp?des


def?match(image1?image2?direction=None):
????print(“Direction?:?“?direction)
????kp1?des1?=?getSURFFeatures(image1)
????kp2?des2?=?getSURFFeatures(image2)
????FLANN_INDEX_KDTREE?=?0
????index_params?=?dict(algorithm=FLANN_INDEX_KDTREE?trees=5)
????search_params?=?dict(checks=50)
????flann?=?cv2.FlannbasedMatcher(index_params?search_params)
????matches?=?flann.knnMatch(des2?des1?k=2)
????good?=?[]
????for?m?n?in?matches:
????????if?m.distance?????????????good.append(m)
????if?len(good)?>?10:
????????src_pts?=?np.float32([kp2[m.queryIdx].pt?for?m?in?good]).reshape(-1?1?2)
????????dst_pts?=?np.float32([kp1[m.trainIdx].pt?for?m?in?good]).reshape(-1?1?2)
????????H?s?=?cv2.findHomography(src_pts?dst_pts?cv2.RANSAC?4)
????????return?H
????return?None


def?getPointsCoordinate(image?H):
????[x1?y1?z1]?=?np.dot(H?np.array([0?0?1]))??#?[0?0]
????x1?=?x1?/?z1
????y1?=?y1?/?z1
????[x2?y2?z2]?=?np.dot(H?np.array([image.shape[1]?0?1]))??#?[width?0]
????x2?=?x2?/?z2
????y2?=?y2?/?z2
????[x3?y3?z3]?=?np.dot(H?np.array([0?image.shape[0]?1]))??#?[0?height]
????x3?=?x3?/?z3
????y3?=?y3?/?z3
????[x4?y4?z4]?=?np.dot(H?np.array([image.shape[1]?image.shape[0]?1]))??#?[width?height]
????x4?=?x4?/?z4
????y4?=?y4?/?z4
????return?x1?x2?x3?x4?y1?y2?y3?y4


def?calculate_newSize(image1?image2?H):??#?變換圖,不變圖
????x1?x2?x3?x4?y1?y2?y3?y4?=?getPointsCoordinate(image1?H)
????Xmin?=?min([x1?x2?x3?x4?0])
????Xmax?=?max([x1?x2?x3?x4?image2.shape[1]])
????Xsize?=?int(Xmax?-?Xmin)
????print(Xmin?Xmax?Xsize)
????Ymin?=?min([y1?y2?y3?y4?0])
????Ymax?=?max([y1?y2?y3?y4?image2.shape[0]])
????Ysize?=?int(Ymax?-?Ymin)
????print(Ymin?Ymax?Ysize)
????size?=?(Xsize?Ysize)
????offsetx?=?-int(Xmin)
????offsety?=?-int(Ymin)
????print(x1?x2?x3?x4?y1?y2?y3?y4)
????print(offsetx?offsety)
????pts1?=?np.float32([[0?0]?[image1.shape[1]?0]?[0?image1.shape[0]]?[image1.shape[1]?image1.shape[0]]])
????pts2?=?np.float32([[x1+offsetx?y1+offsety]?[x2+offsetx?y2+offsety]?[x3+offsetx?y3+offsety]?[x4+offsetx?y4+offsety]])
????M?=?cv2.getPerspectiveTransform(pts1?pts2)
????print(‘M:‘?M)
????r

評論

共有 條評論