opencv平移不留黑框
时间: 2023-11-30 10:43:09 浏览: 70
在进行图像平移时,如果不想出现黑框,可以通过扩展图像边缘的方式来实现。具体步骤如下:
1.读取原始图像并获取其大小。
2.定义平移矩阵M,其中第三列分别为x和y方向的平移量。
3.根据平移矩阵M,使用cv2.warpAffine()函数对图像进行平移。
4.将平移后的图像进行裁剪,使其大小与原始图像相同。
5.显示平移后的图像。
下面是实现代码:
```python
import cv2
# 读取原始图像并获取其大小
img = cv2.imread('test.jpg')
rows, cols = img.shape[:2]
# 定义平移矩阵M,其中第三列分别为x和y方向的平移量
M = np.float32([[1, 0, 100], [0, 1, 50]])
# 根据平移矩阵M,使用cv2.warpAffine()函数对图像进行平移
img_translation = cv2.warpAffine(img, M, (cols, rows))
# 将平移后的图像进行裁剪,使其大小与原始图像相同
img_translation = img_translation[50:rows, 100:cols]
# 显示平移后的图像
cv2.imshow('Translation', img_translation)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文