【发布时间】:2021-05-09 08:30:34
【问题描述】:
在给定对象的编码像素的情况下,为该对象收缩边界框的有效方法是什么。我正在尝试将任务从分割转换为 yolo 中的对象检测。欢迎提出任何建议。
【问题讨论】:
标签: python python-3.x image-processing object-detection image-segmentation
在给定对象的编码像素的情况下,为该对象收缩边界框的有效方法是什么。我正在尝试将任务从分割转换为 yolo 中的对象检测。欢迎提出任何建议。
【问题讨论】:
标签: python python-3.x image-processing object-detection image-segmentation
如果您有分割的点,那么您可以通过迭代并记录 [x,y] 的最低和最高值来找到点的范围。这将为您提供左上角和右下角。
如果您尝试从彩色分割图像向后工作,则可以使用 opencv 对颜色进行阈值处理并从 blob 中获取框,如下所示:
import cv2
import numpy as np
# load image
img = cv2.imread("mask.png");
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY);
# threshold
thresh = cv2.inRange(gray, 100, 255);
# contour
_, contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE);
# draw rectangle
x,y,w,h = cv2.boundingRect(contours[0]);
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2);
# show
cv2.imshow("box", img);
cv2.imshow("Thresh", thresh);
cv2.waitKey(0);
# save
cv2.imwrite("boxed.png", img);
【讨论】: