首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从图像标签创建边界框

问从图像标签创建边界框
EN

Stack Overflow用户
提问于 2020-10-20 10:22:53
回答 1查看 2.2K关注 0票数 1

我有一个2D彩色图像和一个标签图像(标签的投影)

标签图像的输出如下:

代码语言:javascript
复制
[[16 16 16 ... 16 16 16 ]
 [16 16 16 ... 16 16 16 ]
 [16 16 16 ... 16 16 16 ]
 ...
 [ 2  2  2 ...  2  2  2 ]
 [ 2  2  2 ...  2  2  2 ]
 [ 2  2  2 ...  2  2  2 ]]

如何在原始2D彩色图像中的所有对象(由标签表示)周围绘制边界框?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 16:59:39

使用NumPy的boolean array indexing和OpenCV的boundingRect函数可以很容易地完成这项任务。

在here上,我拍摄了这张图片

​

​

这个分割掩码

​

​

蒙版是一个索引图像,OpenCV对此有问题,另请参阅here。这就是为什么,我们还将使用Pillow来完成此任务。

代码如下:

代码语言:javascript
复制
import cv2
import numpy as np
from PIL import Image

# Read color image
img = cv2.imread('0.jpg')

# Read mask; OpenCV can't handle indexed images, so we need Pillow here
# for that, see also: https://stackoverflow.com/q/59839709/11089932
mask = np.array(Image.open('0_mask.png'))

# Iterate all colors in mask
for color in np.unique(mask):

    # Color 0 is assumed to be background or artifacts
    if color == 0:
        continue

    # Determine bounding rectangle w.r.t. all pixels of the mask with
    # the current color
    x, y, w, h = cv2.boundingRect(np.uint8(mask == color))

    # Draw bounding rectangle to color image
    out = cv2.rectangle(img.copy(), (x, y), (x+w, y+h), (0, int(color), 0), 2)

    # Show image with bounding box
    cv2.imshow('img_' + str(color), out)

# Show mask
cv2.imshow('mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

以下是输出:

​

​

我决定输出几个图像,因为对于给定的图像,边界框严重重叠。要将所有矩形绘制到同一图像,只需将相应的rectangle命令替换为

代码语言:javascript
复制
img = cv2.rectangle(img, (x, y), (x+w, y+h), (0, int(color), 0), 2)
代码语言:javascript
复制
----------------------------------------
System information
----------------------------------------
Platform:    Windows-10-10.0.16299-SP0
Python:      3.8.5
NumPy:       1.19.2
OpenCV:      4.4.0
Pillow:      7.2.0
----------------------------------------
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64437590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档