Редактирование, поворот и сохранение необработанных изображений в формате Raw
Я работаю над областью изображений Bayer Raw(формат.raw), где мне нужно отредактировать пиксели в соответствии с моими потребностями (применяя аффинную матрицу) и сохранить их в формате.raw. Итак, есть две подзадачи.
Я могу редактировать пиксели, но могу сохранить их обратно как.raw Я использую надежную библиотеку под названием rawpy, которая позволяет мне читать значения пикселей как массив numpy, пока я пытаюсь сохранить их обратно, я не могу сохранить значение
rawImage = rawpy.imread('Filename.raw') // это дает объект rawpy
rawData = rawImage.raw_image // это дает пиксели в виде массива numpy
.
.// некоторые манипуляции, выполненные с rawData, все еще numpy array
.
imageio.imsave('newRaw.raw', rawData)
Это не работает, выдает ошибку неизвестного типа файла. Есть ли способ сохранить такие файлы в формате.raw.
Примечание: я тоже пробовал это:-
rawImageManipulated = rawImage
rawImageManipulated.raw_image[:] = rawData[:] // это копирует новые данные в объект rawpy, но не сохраняет и не сохраняет присвоенные значения.
- Вращение байеровского изображения - я знаю, что rawpy не справляется с этим, как и другие API или библиотеки, насколько мне известно. Существующие Apis поворота изображения opencv и подушки изменяют субпиксели во время вращения. Как я узнаю? После серии небольших поворотов (скажем, на 30 градусов 12 раз), когда я возвращаюсь к вращению на 360 градусов, субпиксели не совпадают по сравнению с использованием шестнадцатеричного редактора.
Есть ли решения этих проблем? Я иду в неправильном направлении? Не могли бы вы рассказать мне об этом. В настоящее время я использую Python, я открыт для решений на любом языке или в любом стеке. Спасибо
1 ответ
Насколько мне известно, ни одна библиотека не может вращать изображение непосредственно в формате паттерна Байера (если вы это имеете в виду) по уважительным причинам. Вместо этого вам нужно преобразовать в RGB и обратно позже. (Если вы попытаетесь обработать изображение паттерна Байера, как если бы это было просто растровое изображение в градациях серого, результат вращения будет катастрофой.)
Из-за проблем с числами накопление поворотов портит изображение, и вы никогда не получите оригинал после полного поворота. Чтобы минимизировать потери, выполняйте все повороты от оригинала с увеличивающимися углами.