上面的图像分割目标有两个,需要找到两个检测框
时间: 2024-02-24 22:56:01 浏览: 24
好的,如果需要找到两个检测框,可以稍微修改一下代码:
```python
import cv2
# 读入图像和分割结果
img = cv2.imread("image.jpg")
segmented_img = cv2.imread("segmented_image.jpg", 0)
# 找到分割结果中所有不为0的像素坐标
non_zero_points = cv2.findNonZero(segmented_img)
# 计算并绘制检测框
for i in range(len(non_zero_points)):
if i == 0:
x, y, w, h = cv2.boundingRect(non_zero_points[i])
else:
x_, y_, w_, h_ = cv2.boundingRect(non_zero_points[i])
if x_ < x:
x = x_
if y_ < y:
y = y_
if x_ + w_ > x + w:
w = x_ + w_ - x
if y_ + h_ > y + h:
h = y_ + h_ - y
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示结果
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
与之前的代码相比,这里使用了一个循环遍历分割结果中所有不为0的像素坐标,然后根据这些坐标计算出两个检测框的位置和大小。最后使用`cv2.rectangle`函数将两个检测框绘制在原始图像上。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)