CXX opencv裁剪黑边
时间: 2023-06-30 21:14:39 浏览: 135
opencv 图像切割
3星 · 编辑精心推荐
你可以使用 OpenCV 中的 `cv2.findContours()` 函数来检测图像中的轮廓,并使用 `cv2.boundingRect()` 函数来获取轮廓的边界框。然后,你可以使用 `cv2.crop()` 函数来裁剪图像以去除边界。
以下是一个简单的 Python 代码示例,可以裁剪掉图像边缘的黑色区域:
```python
import cv2
# 读取图像
img = cv2.imread("image.png")
# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测轮廓
contours, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# 获取最大轮廓的边界框
max_contour = max(contours, key=cv2.contourArea)
x, y, w, h = cv2.boundingRect(max_contour)
# 裁剪图像
crop_img = img[y:y+h, x:x+w]
# 显示结果
cv2.imshow("Original Image", img)
cv2.imshow("Cropped Image", crop_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先读取图像并将其转换为灰度图。然后,我们使用 `cv2.findContours()` 检测图像中的轮廓,并使用 `cv2.boundingRect()` 函数获取最大轮廓的边界框。最后,我们使用 `cv2.crop()` 函数裁剪图像以去除边界,并显示结果。
阅读全文