Нарисуйте границы объекта на исходном изображении с учетом его контура и маски

У меня есть оригинальное изображение с именем orig_image. Я применил суперпиксельную сегментацию. Я хотел бы сделать границы на исходном изображении, учитывая координаты определенных сегментов. В моем случае это сегменты [15].

Мое оригинальное изображение:

ORIGINAL_IMAGE

Мой код:

img = skimageIO.imread(orig_image)
segments = slic(img_as_float(img), n_segments=50, sigma=5)
regions = regionprops(segments)

Теперь я получу координаты сегментов, которые я хотел бы проследить за его границами на исходном изображении.

contour=regions[15].bbox
contour = np.array(contour).reshape((-1, 1, 2)).astype(np.int32)
cv2.drawContours(img, [contour], -1, (0, 0, 255), 5) 

Вот маска и ее применение на исходном изображении, полученном следующим образом:

    mask = np.zeros(image.shape[0:2], dtype="uint8")
    mask[segments == 15] = 255
    cv2.imshow("Mask", mask)
    cv2.imshow("Applied", cv2.bitwise_and(img, img, mask=mask))

Маска выглядит следующим образом:

маскировать

Его применение на оригинальном изображении:

mask_application

Что я получил?:

wrong_result

Тем не менее, я должен получить красные границы данной маски contour=regions[15].bbox следуя его форме (маске) наоригинальном изображении.

Что-то вроде:

desired_output

0 ответов

Другие вопросы по тегам