已经得到图像中一个物体的边缘点坐标,想根据这些坐标将这个物体裁剪出来,仅仅将物体个体裁剪出来,不裁剪附近的像素点代码思路
时间: 2023-09-18 15:12:11 浏览: 73
c# 根据给定二个点的坐标裁剪照片,可批量裁剪,附源代码及可执行程序exe
可以使用OpenCV库中的函数cv2.boundingRect()来得到包围物体的矩形框,然后从原图像中裁剪出该矩形框对应的图像区域,即可将物体裁剪出来。以下是实现的代码思路:
```python
import cv2
import numpy as np
# 假设边缘点坐标已经存储在变量edge_points中
# 得到包围物体的矩形框
x, y, w, h = cv2.boundingRect(np.array(edge_points))
# 从原图像中裁剪出矩形框对应的图像区域
cropped_img = img[y:y+h, x:x+w]
# 显示裁剪出来的图像
cv2.imshow("Cropped Image", cropped_img)
cv2.waitKey(0)
```
其中,`np.array(edge_points)`将边缘点坐标转换为NumPy数组的形式,`cv2.boundingRect()`函数将该数组作为参数输入,返回一个包围物体的矩形框,该矩形框的左上角坐标为`(x, y)`,宽度为`w`,高度为`h`。最后,从原图像中裁剪出矩形框对应的图像区域,即可得到仅包含物体的图像。
阅读全文