import cv2 import numpy as np # 读取图像 img1 = cv2.imread('image1.jpg') img2 = cv2.imread('image2.jpg') # 将图像转化为灰度图像 gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) # 使用Shi-tomasi算法检测关键点 corners1 = cv2.goodFeaturesToTrack(gray1, 1000, 0.01, 10) corners2 = cv2.goodFeaturesToTrack(gray2, 1000, 0.01, 10) # 使用Lucas-Kanade算法进行光流跟踪 lk_params = dict(winSize=(15, 15), maxLevel=2, criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03)) p1, st, err = cv2.calcOpticalFlowPyrLK(gray1, gray2, corners1, None, **lk_params) # 计算转换矩阵 M, mask = cv2.findHomography(p1, corners2, cv2.RANSAC, 5.0) # 将图像1应用转换矩阵 result = cv2.warpPerspective(img1, M, (img1.shape[1] + img2.shape[1], img1.shape[0])) # 将图像2拼接到图像1后面 result[0:img2.shape[0], img1.shape[1]:img1.shape[1] + img2.shape[1]] = img2 # 显示拼接后的图像 cv2.imshow("Result", result) cv2.waitKey(0) cv2.destroyAllWindows()使用cv2.resize()函数调整图像大小以确保它们具有相同的尺寸
时间: 2023-06-24 10:09:04 浏览: 225
可以在读取图像后,使用cv2.resize()函数来调整图像大小,确保它们具有相同的尺寸。例如:
```
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 调整图像大小
img1 = cv2.resize(img1, (640, 480))
img2 = cv2.resize(img2, (640, 480))
# 将图像转化为灰度图像
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 进行光流跟踪等操作
...
```
这样,两张图像就具有了相同的尺寸,可以进行后续的操作了。注意,调整图像大小时,可以根据实际需要调整大小的比例和尺寸。
阅读全文