首页前端开发CSScss3 table居中

css3 table居中

时间2023-10-22 10:14:03发布访客分类CSS浏览171
导读:Python是一种十分强大的编程语言,拥有丰富的库和模块,其中也有很多优秀的全景图拼接库。那么如何使用Python球形全景拼接呢?# 导入必要的库import cv2import numpy as np# 读取左、右图像img1 = cv2...

Python是一种十分强大的编程语言,拥有丰富的库和模块,其中也有很多优秀的全景图拼接库。那么如何使用Python球形全景拼接呢?

# 导入必要的库import cv2import numpy as np# 读取左、右图像img1 = cv2.imread('left.jpg')img2 = cv2.imread('right.jpg')# 获取图像宽度和高度w, h = img1.shape[1], img1.shape[0]# 计算相机的焦距和水平视角f = w / 2 / np.tan(np.pi / 3 / 2) / 2hfov = 2 * np.arctan2(w / 2, f)# 构建相机投影矩阵K = np.array([[f, 0, w / 2], [0, f, h / 2], [0, 0, 1]])P1 = np.hstack((K, np.zeros((3, 1))))P2 = np.hstack((K, np.array([[-w, 0, w], [0, 1, 0], [0, 0, 1]])))# 在两幅图像中提取特征点sift = cv2.xfeatures2d.SIFT_create()kp1, des1 = sift.detectAndCompute(img1, None)kp2, des2 = sift.detectAndCompute(img2, None)# 获取两幅图像中的相同特征点bf = cv2.BFMatcher()matches = bf.match(des1, des2)matches = sorted(matches, key=lambda x: x.distance)[:300]# 计算两个图片的投影矩阵pts1 = np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)pts2 = np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)F, mask = cv2.findFundamentalMat(pts1, pts2, cv2.FM_RANSAC)E = K.T @ F @ K_, R, t, _ = cv2.recoverPose(E, pts1, pts2, K)# 计算拼接结果的大小new_camera_matrix, roi = cv2.getOptimalNewCameraMatrix(K, np.array([0, 0, 0, 0]), (w * 2, h), 1, (w * 2, h))mapx, mapy = cv2.initUndistortRectifyMap(K, np.array([0, 0, 0, 0]), np.eye(3), new_camera_matrix, (w * 2, h), cv2.CV_32F)img1_rect = cv2.remap(img1, mapx, mapy, cv2.INTER_LINEAR)# 拼接两幅球形全景图dst = cv2.warpPerspective(img1_rect, np.dot(new_camera_matrix, np.hstack((R, t))), (w * 2, h))dst[0:h, 0:w, :] = img2[0:h, 0:w, :]# 显示拼接结果cv2.imshow('result', dst)cv2.waitKey(0)cv2.destroyAllWindows()

上文中,我们首先读取了两张球形全景图像。接着,计算相机的焦距和水平视角,构建相机投影矩阵。之后,提取两幅图像中相同的特征点,并计算两张图的投影矩阵。最后,计算拼接结果的大小并拼接,最终得到了球形全景图的拼接效果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: css3 table居中
本文地址: https://pptw.com/jishu/505733.html
css3 div一行显示图片 css3 transform搭配

游客 回复需填写必要信息