Отслеживание изображений с использованием 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

Надеюсь это понятно спасибо

0 ответов

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