Отслеживание изображений с использованием SLIC суперпикселей
У меня есть набор из 250 изображений. Из каждого изображения я применяю SLIC суперпиксельный алгоритм.
Теперь, учитывая суперпиксели каждого изображения, я хотел бы отслеживать суперпиксели изображения 1 на изображении 2.
Как это сделать?
возьмите маску из 5 суперпикселей, например, на изображении 1, каждая маска имеет свой цвет. скажем, мы берем суперпиксельные области 1,2,3,4 и 5 с
color_maks=['red', 'green', 'white','yellow', 'orange']
Я хотел бы получить эти маски на изображении 1 и их соответствующие маски на изображении 2.
Мой вопрос?
1) Как назначить разные цвета для каждой суперпиксельной маски и отобразить их на изображениях 1 и 2?
2) Учитывая маску 1 (с красным цветом), соответствующую суперпикселю 1 на изображении 1, как можно отобразить ее маску в image 2
, например:
regions_image_1=[ 1,2,3,4,5]
corresponding_region_in_image_2=[7,2,5,8,12]
Для иллюстрации:
Давайте возьмем область 1 на изображении 1 с mask_color='red'
, Отобразите его на изображении 1 и отобразите его изображение на изображении 2, которое является областью 7 с тем же mask_color='red'
Что я пробовал?
def display_mask_superpixel(image):
image = cv2.imread(image)
segments = slic(img_as_float(image), n_segments=50, sigma=5)
# show the output of SLIC
fig = plt.figure("Superpixels")
ax = fig.add_subplot(1, 1, 1)
ax.imshow(mark_boundaries(img_as_float(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)), segments))
plt.axis("off")
plt.show()
plt.cla()
plt.close()
for (i, segVal) in enumerate(np.unique(segments)):
# construct a mask for the segment
print("[x] inspecting segment %d" % (i))
mask = np.zeros(image.shape[:2], dtype="uint8")
mask[segments == segVal] = 255
# show the masked region
cv2.imshow("Mask", mask)
cv2.imshow("Applied", cv2.bitwise_and(image, image, mask=mask))
cv2.waitKey(0)
List_of images=images
for image in list_of_images:
display_mask_superpixel(image)
Ограничение здесь таково:
1) я отображаю все суперпиксели данного изображения, однако я хотел бы отображать только некоторые регионы
2) все маски белого цвета, но я ищу разные цвета для каждой маски
3) Не обрабатывать отслеживание области суперпикселя изображения 1 на изображении 2
Надеюсь это понятно спасибо