1. 图像的裁剪
cv2.selectROI() ###可以通过鼠标选择感兴趣的矩形区域(ROI)
import cv2
img = cv2.imread("xxx.png", flags=1) # flags=1 读取彩色图像(BGR)
roi = cv2.selectROI(img, showCrosshair=True, fromCenter=False)
xmin, ymin, w, h = roi # 矩形裁剪区域
ROI = img[ymin:ymin+h, xmin:xmin+w].copy() # 切片获得裁剪后保留的图像区域
cv2.imshow("Demo", ROI)
cv2.waitKey(0)
输出:
2. 图像的拼接
np.hstack((img1, img2)) ###相同大小图像水平拼接
np.vstack((img1, img2)) ###相同大小图像垂直拼接
import cv2
import numpy as np
img1 = cv2.imread("xxx.jpg") # 读取彩色图像1(BGR)
img2 = cv2.imread("xxx.jpg") # 读取彩色图像2(BGR)
img1 = cv2.resize(img1, (400, 400))
img2 = cv2.resize(img2, (400, 400))
img_transverse = np.hstack((img1, img2)) # 横向水平拼接
img_longitudinal = np.vstack((img1, img2)) # 纵向垂直拼接
cv2.imshow("Demo1", img_transverse)
cv2.imshow("Demo2", img_longitudinal)
key = cv2.waitKey(0)
输出:
横向水平拼接
纵向垂直拼接
3. 总结
本章节用到了numpy库的np.hstack和np.vstack函数完成相同图片的拼接。以及cv2.selectROI()函数来获取图片的矩形区域。
@Neng