У меня есть массив 6600X5100 numpy, который представляет собой черно-белое изображение. Я хочу очистить это изображение от шума черных пикселей - удалить все черные линии пикселей (по вертикали и горизонтали), которые короче 2 пикселей.
Итак, если у меня есть что-то вроде этого:
[0, 0, 0, 0, 0, 255]
[0, 255,255, 255, 255, 0 ]
[0, 255,255, 255, 0, 0 ]
[0, 255,255 ,255, 0, 255]
[0, 255,255, 255, 0, 255]
[0, 0, 0, 0, 0, 0 ]
Выходной массив будет таким:
[0, 0, 0, 0, 0, 0 ]
[0, 255,255, 255, 0 , 0 ]
[0, 255,255, 255, 0, 0 ]
[0, 255,255 ,255, 0, 0 ]
[0, 255,255, 255, 0, 0 ]
[0, 0, 0, 0, 0, 0 ]
Здесь важна производительность, поэтому простой цикл по массиву не подойдет. Есть ли способ быстро найти и заменить подмассив внутри массива? Поэтому, если в массиве изображений есть [0, 255, 255, 0] или [0, 255, 0], замените эти части на 0.
Или если у вас есть лучшее решение для этой задачи, буду признателен.
scikit
илиscipy
приемлемы? - person Dev-iL   schedule 02.07.2018scikit
в порядке - person Phoenix   schedule 02.07.2018