Нарисуйте границы объекта на исходном изображении с учетом его контура и маски
У меня есть оригинальное изображение с именем orig_image. Я применил суперпиксельную сегментацию. Я хотел бы сделать границы на исходном изображении, учитывая координаты определенных сегментов. В моем случае это сегменты [15].
Мое оригинальное изображение:
Мой код:
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))
Маска выглядит следующим образом:
Его применение на оригинальном изображении:
Что я получил?:
Тем не менее, я должен получить красные границы данной маски contour=regions[15].bbox
следуя его форме (маске) наоригинальном изображении.
Что-то вроде: