Как показать наложение объекта на изображение только с границами в Python? - PullRequest
3 голосов
/ 09 июля 2019

Я видел очень хорошее представление наложения результатов на изображение на бумаге и пытался сделать аналогичный подход к моим данным.Здесь наземная правда - это объект, наложенный красными границами, а результат сегментации - зеленым цветом.

enter image description here У меня есть 3 изображения: МРТ, наземная правда (gt) и результаты, полученные изалгоритм (res).Как мне написать код для этого похожего представления в Python?Или, если есть свободный код для использования, пожалуйста, поделитесь здесь.Спасибо

1 Ответ

3 голосов
/ 09 июля 2019

Если базовая правда и res являются 2D-масками, вы можете создать изображение RGB из изображения в градациях серого и изменить цвет пикселей, на которые указывает res.Вот пример выделения краев, извлеченных с использованием детектора краев Canny на образце изображения:

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('brain.png',0)
edges = cv2.Canny(img,50,200)   # canny edge detector

img = cv2.merge((img,img,img))  # creat RGB image from grayscale
img2 = img.copy()
img2[edges == 255] = [255, 0, 0]  # turn edges to red

plt.subplot(121),plt.imshow(img)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(img2)
plt.title('Edge Highlighted'), plt.xticks([]), plt.yticks([])

plt.show()

result

...