Ага, а потом сохраняете в jpeg... и получаете не 3 цвета, а множество.
Еще преобразование rgb2ycrcb вносит свои погрешности.
Вобщем jpeg это lossy формат, и не стоит ожидать от него точности.
А разве ваш результат будет валидным ndarray? Какой будет shape?
Можно развернуть массив в 1d, удалить nanы и собрать в какой-то 3d.
Заменить на нули, например, можно так:
a[np.where(np.isnan(a))]=0
Александр, еще надо создать слой, на котором крупным красным кеглем написать "Нужно получить!"
:-)
Я бы без выделения и удаления делал, просто наложение слоев с подбором режима наложения вместо "Обычные" типа "Умножения"
Есть предположение, что вы забыли перевести a и b из строк в числа int, float. С оператором + это прокатывает, а с - нет.
какого типа a и b? нет ли опечатки: русская "с"
Первые две вершинные нормали - совпадают с нормалью первого четырехугольника. Две последние вершинные нормали - (не проверял точно) - с нормалью второго четырехугольника. Третья и четвертая вершинные нормали - примерно среднее между нормалями первого и второго прямоугольника.
Нормали это не жестко заданые однозначные вектора, их можно менять. (От них зависит как будет отражаться свет от объекта).
Прошу прощения, спутал с stl форматом. В obj vn - нормаль вершины. Обычно находят интерполяцией нормалей граней.
# - это начало комментария, м.б. числа общее количество вершиин, граней и т.д. paulbourke.net/dataformats/obj
Еще преобразование rgb2ycrcb вносит свои погрешности.
Вобщем jpeg это lossy формат, и не стоит ожидать от него точности.