如何创建原始合成图像

问题描述

我想对我的相机进行颜色校准。这就是为什么我搜索去马赛克算法,它可以提供最接近真实物体颜色的颜色。这就是我想要的原因:

  • 在 OpenCV 中使用已知颜色创建合成图像
  • 马赛克
  • 将其传入用于估计效率的算法

我使用 libraw 来解包原始图像,使用 OpenCV 来处理和存储它们。

那么,问题是,是否有一个库可以为我提供不同的去马赛克算法(我准备将我的合成图像从 Mat 转换为 C 样式数组),我可以在其中传递我的马赛克图像并接收去马赛克图像。我认为可以将我的图像从 tiff 转换为 dng 并使用 RawTherapee 进行去马赛克,但它看起来更复杂。

解决方法

我使用 dng sdk 解决了这个问题。

在答案末尾使用来自链接的类的管道在这里:

DngCreator creator;
cv::Mat mosaic = //some method that returns Bayer RGGB mosaic
creator.BuildDngImage(mosaic);
creator.setCameraProfile();
creator.setExifTags();
creator.setXmp();
creator.setMosaicInfo();
creator.WriteDng("output.dng");

可以看出我使用 opencv 来创建马赛克图像

有DngCreator类的源码,写了最简单的dng。我没有用所有需要的标签制作好的 dng,但 RawTherapee 成功地红色了我的 dng。 引用代码:https://pastebin.com/M4GRBfUG

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...