Я все еще новичок в numpy
, и у меня проблемы с написанием лямбда-выражения, чтобы делать то, что я хочу в этом случае. Может быть, лямбда не работает из-за данных в массиве?
У меня есть несколько значений пикселей из QImage
в Qt5, используя PyQT
в Python:
ptr = self.myPhoto.bits()
ptr.setsize(self.myPhoto.byteCount())
pixels = np.asarray(ptr).reshape(self.myPhoto.height(), self.myPhoto.width(), 4)
Данные пикселей выглядят так [[[B G R A]]]:
[[[ 100 0 2 255]
[ 100 0 2 255]
[ 100 1 1 255]
...,
[ 2 3 0 255]
[ 1 2 0 255]
[ 1 2 0 255]]]
Я хочу, чтобы это выглядело так [[[R G B A]]]:
[[[ 2 0 100 255]
[ 2 0 100 255]
[ 1 1 100 255]
...,
[ 0 3 2 255]
[ 0 2 1 255]
[ 0 2 1 255]]]
РЕДАКТИРОВАТЬ: из массива удалены запятые
Кроме того, можно ли сделать это прямо из вызова reshape вместо использования пост-процесса лямбда?
Эти вопросы интересны, но мне все еще трудно склеить их вместе, чтобы получить то, что я хочу: