原始图像编辑,旋转和另存为原始图像

问题描述

我正在研究Bayer raw(.raw格式)图像域,需要根据需要(应用仿射矩阵)编辑像素并将其保存为.raw格式。因此存在两个子问题。

  1. 我能够编辑像素,但可以将其另存为.raw 我正在使用一个名为rawpy的健壮库,该库允许我将像素值读取为numpy数组,同时尝试将它们保存回去,但我无法持久保存该值

    rawImage = rawpy.imread('Filename.raw')//这给出了rawpy对象

    rawData = rawImage.raw_image //这将像素作为numpy数组

    .///一些对rawData进行的操作,仍然是一个numpy数组

    imageio.imsave('newRaw.raw',rawData)

这不起作用,引发错误未知文件类型。有没有一种方法可以将这些文件保存为.raw格式。

注意:我也尝试过:-

rawImageManipulated = rawImage

rawImageManipulated.raw_image [:] = rawData [:] //这会复制新的 数据到rawpy对象上,但不保存或保留值 分配。

  1. 旋转拜耳图像-我知道rawpy不能处理此问题,据我所知,任何其他API或库也无法处理。 opencv和枕头的现有图像旋转Apis会在旋转时更改子像素。我怎么知道?经过一系列小的旋转(例如30度旋转12次),当我回到360度旋转时,使用十六进制编辑器进行比较时,子像素并不相同。

有没有针对这些问题的解决方案?我走错了方向吗?请您指导我。我目前正在使用python,我愿意接受任何语言或堆栈的解决方案。谢谢

解决方法

据我所知,出于充分的原因,没有一个库能够直接以Bayer模式格式旋转图像(如果这就是您的意思)。相反,您需要转换为RGB,然后再返回。 (如果您尝试将拜耳图案图像当作只是灰度位图来处理,则旋转的结果将是一场灾难。)

由于数字问题,累积旋转会破坏图像,并且整整旋转后您将永远无法获得原始图像。为了使损失最小化,请从原始角度开始旋转所有角度,并增加角度。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...