#python #numpy #image-manipulation #matrix-indexing
#python #numpy #манипулирование изображениями #матрица-индексирование
Вопрос:
я пытаюсь изменить определенные значения матрицы 2D-массива numpy. Мне это нужно для классификации областей изображения на уровне пикселей.
Представьте, что у вас есть матрица, подобная:
a = [ [1, 2, 3, 4 ]
[5, 6, 7, 8 ]
[9, 10, 11, 12]
[13, 14, 15, 16] ].
Я хочу изменить значения, «нарисовав» линию. Например, я провел строку через значения 5, 11 и 16.
Я бы хотел изменить значения под этой строкой на 0. Итак, имея:
a = [ [1, 2, 3, 4 ]
[5, 6, 7, 8 ]
[0, 0, 11, 12]
[0, 0, 0, 16] ].
Регулярно с помощью полосчатых матриц и диагональных функций легко изменять значения матрицы. Но как поступить с неправильными геометрическими пожеланиями?
Другой вариант использования — иметь геометрическую фигуру или подробно угловые точки геометрической фигуры.
Есть ли способ указать четыре угловые точки для создания блока?
Например, corner_points = [ [1,1], [3,1], [1,2], [4,3] ]
что приведет к:
a = [ [0, 0, 3, 4 ]
[0, 0, 0, 8 ]
[0, 0, 0, 12]
[13, 14, 0, 16] ]
Мне не нужно, чтобы он был абсолютно точным, грубое приближение действительно полезно!
Заранее спасибо, и если я не смог правильно объяснить, пожалуйста, задавайте вопросы, чтобы я мог выполнить эту задачу.