Как изменить размер / изменить размер маски? - PullRequest
0 голосов
/ 19 сентября 2019

Если вы знакомы с маской, вы знаете, что это похоже на основную истину в пиксельной классификации.У меня вопрос, как изменить размер / изменить размер маски?

Например, размер массива 4x4, который необходимо изменить до размера 2x2,

array([[1, 1, 0, 0],
       [0, 1, 0, 0],
       [1, 1, 1, 2],
       [2, 2, 2, 2]])

0 - это фон, 1 - это тип объекта, 2 - это другой.

Вы не можете использовать nearest или bilinear, чтобы изменить размер этого права?Поскольку границы в маске четкие, а значения пикселей обязательно должны быть целыми числами.Мне интересно, что я могу использовать, чтобы изменить его размер.

1 Ответ

0 голосов
/ 19 сентября 2019

Один из способов обойти это - применить фильтр размера 3X3 с шагом 1X1 к массиву 4X4.Применение фильтра к массиву 4X4 может быть любой значимой операцией, например, большинством голосов (или взять среднее значение и округлить до ближайшего целого числа).

Конкретно,

array([[1, 1, 0, 0],
       [0, 1, 0, 0],
       [1, 1, 1, 2],
       [2, 2, 2, 2]])

переводится в

majority_vote(array([[1, 1, 0],      majority_vote(array([[1, 0, 0],
                     [0, 1, 0],                           [1, 0, 0],
                     [1, 1, 1]])                          [1, 1, 2]]) 

majority_vote(array([[0, 1, 0],      majority_vote(array([[1, 0, 0],
                     [1, 1, 1],                           [1, 1, 2],
                     [2, 2, 2]])                          [2, 2, 2]]) 

, что приводит к:

array([[1, 0],
        1, 2]])

(я решил связи большинством голосов путемпроисходит с нижней из двух чисел связывания)

...