Как я могу отсортировать массив цветов по значению позиции? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть массив доступных цветов, позвольте мне сказать, что они находятся в пространстве YCrCb, я хочу отсортировать массив по Y-каналу (первому каналу) без путаницы с цветными элементами.

Мой массив:

colors = np.array([[[191, 142, 109],
                    [196, 138, 116],
                    [193, 144, 111],
                    [198, 140, 118]]], dtype=np.uint8)

colors.shape
# (1, 4, 3)

Мой желаемый вывод:

array([[[191, 142, 109],
        [193, 144, 111],
        [196, 138, 116],
        [198, 140, 118]]], dtype=uint8)

Что я пробовал и не работает

Я использовал np.sort. Но я заметил, что если я это сделаю:

np.sort(colors, axis=2)
# array([[[109, 142, 191],
#         [116, 138, 196],
#         [111, 144, 193],
#         [118, 140, 198]]], dtype=uint8)

Он не переупорядочивает элементы, а переупорядочивает значения каналов в элементах.

Еще одна тактика, которую я использовал:

np.sort(pallete.reshape(-1, 3), axis=0)
# array([[191, 138, 109],
#        [193, 140, 111],
#        [196, 142, 116],
#        [198, 144, 118]], dtype=uint8)

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


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...