用copyMakeBorder函数填充过的图像,怎么去除它的边界呢
时间: 2024-05-08 08:20:50 浏览: 137
计算机视觉图像处理Opencv基础知识(附详解代码)上 计算机视觉.pdf
5星 · 资源好评率100%
可以使用cv2.getRectSubPix()函数来去除边界。
具体方法是先使用copyMakeBorder函数将图像边界填充,然后使用getRectSubPix函数提取出图像中心部分,即可去除边界。
以下是示例代码:
```python
import cv2
# 读取原始图像
img = cv2.imread('image.jpg')
# 填充边界
border_size = 50
bordered_img = cv2.copyMakeBorder(img, border_size, border_size, border_size, border_size, cv2.BORDER_CONSTANT, value=[0, 0, 0])
# 提取中心部分
center_size = (img.shape[1], img.shape[0])
center = cv2.getRectSubPix(bordered_img, center_size, (border_size + img.shape[1] / 2, border_size + img.shape[0] / 2))
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Bordered Image', bordered_img)
cv2.imshow('Center Image', center)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,border_size表示边界填充大小,center_size表示提取的中心部分大小,可以根据需要进行调整。
阅读全文