问题标签 [dng]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1504 浏览

image - Libtiff:从像素阵列生成 TIFF/EP Profile 2 原始图像

我正在尝试从任意像素阵列生成 TIFF/EP Profile 2 原始 (.dng) 图像。该像素阵列表示拜耳模式 (CFA)。

我研究了 TIFF/EP 文件规范,并通过使用 libtiff,包含了我认为生成完整 .dng 文件所必需的所有标签。但是,我无法使用 dcraw 转换创建的文件(dcraw 显示它无法解码文件)。

一个问题可能是由在 TIFF/EP 规范中声明为强制性但似乎并未在 libtiff 中实现的两个标签引起的:SensingMethod 和 TIFF/EPStandardID 标签。我真的必须包含它们吗(我已经看到忽略这些标签但仍然报告正常工作的示例代码),如果是这样,我如何手动将它们添加到 libtiff?此外,设置 SubIFD 标记会产生错误消息“断言失败:*pa<=0xFFFFFFFFUL,文件 tif_dirwrite.c,第 1869 行”

总而言之,我不认为我的问题仅仅是由于这三个标签,我相信有一些根本性的错误。也许你们中的某个人可以看看我的代码并提供一些线索?我不得不说 libtiff 的文档很差,所以我的代码受到了极少数示例代码之一的启发:elphel_dng.c

非常感谢!费边

PS。我将生成的文件上传到Dropbox

C++

0 投票
4 回答
2760 浏览

ios - 您可以在 iOS 上保存编辑后的 ​​RAW .dng 文件吗?

我想构建一个 iOS 10 应用程序,让您拍摄 RAW ( .dng) 图像,对其进行编辑,然后将编辑后的.dng文件保存到相机胶卷。通过结合来自 Apple 2016 年“ AVCamManual ”和“ RawExpose ”示例应用程序的代码,我已经达到了CIFilter包含 RAW 图像和编辑的地步。

但是,我不知道如何将结果CIImage作为.dng文件保存到相机胶卷。这可能吗?

0 投票
0 回答
708 浏览

ios - 无法从文件中读取 DNG

我正在尝试在 上捕获图像iOS10,将其存储为原始格式,然后再进行处理。拍摄和保存图像不是问题,但是当我稍后尝试使用 CIFIlter(imageData:options:) 打开 DNG 文件时,filter.outputImage 为 nil。这是我的代码:

拍摄图像:

该文件按预期保存,我可以在 lightroom 中打开它而不会出现问题。

这是再次读取文件的代码:

然而,输出图像为零,即使过滤器似乎已初始化。根据 Apple 的说法,如果原始文件的格式具有不受支持的格式,则可能会发生这种情况,但我不知道这将如何适用于我的情况。

那么:我需要做什么才能CIImage从 DNG 文件中获取一个?

0 投票
0 回答
374 浏览

android - 从 DNG RAW 图像文件中获取缩略图并在 android ImageView 中显示

我正在尝试从 DNG RAW 图像文件中获取缩略图并在 android 中显示它。我已成功读取所有必需的标签并获取形成图像的值。但我之前没有使用过图像,因此面临位图创建问题。通过阅读原始图像标签,我得到了以下值:

图像宽度 = 320

图像高度 = 216

压缩 = 1(1=未压缩)

每像素样本 = 3

每个样本位 = 8

图像起始偏移量 = 7044

颜色解释 = 2 (2=ARGB_8888)

获取图像数据我的代码是:

从上面的代码中,我得到了一个字节数组的未压缩图像数据。但我将它转换为位图,将位图设为空。

那么,如何正确创建位图?提前感谢您的帮助。

0 投票
0 回答
983 浏览

imagemagick - 使用 ImageMagick 将 DNG 转换为 PNG

我从 Nexus6P 拍摄了 5 张 dng 图像,用于科学成像。图像中的像素强度将映射到我的测量值。为了进一步处理,对 5 个 dng 图像进行平均以减少噪声并转换为 png。我正在使用下面的代码来实现这一点

我想知道是否正在对 dng 图像进行任何处理,在转换时更改像素强度值,因为它会影响我的最终校准。

版本:ImageMagick 7.0.3-4,Windows 10

0 投票
1 回答
1432 浏览

python - DNG 原始图片导入为 16 位深度但意外 plt.show() 结果

尝试在 Python 中处理原始 DNG 图片,但rawpy结果很奇怪。

结果是一个 8 位值的 rgb 图片数组,而我的相机生成 14 位原始图片。

可视化rgb数组给出了预期的结果:

在此处输入图像描述

通过一些谷歌搜索,我了解到可以导入相同的文件,但输出为 16 位。

我在后处理函数中使用了以下参数:

现在rgb数组包含 16 位值,但可视化结果如下:

在此处输入图像描述

有人能告诉我如何获得类似于第一个结果但处理 16 位值的可视化吗?

最初我认为这与我的相机生成 14 位图像而不是 16 位的事实有关,但将参数更改output_bps为 14 会产生更差的可视化结果。

提前致谢!

根据要求,我会在此处添加 PENTAX K-5 的原始图片,但它有 18MB 大,并且论坛有 2MB 的限制(可能是另一种传递文件的方式?)。

0 投票
1 回答
1902 浏览

python - rawPy如何读取DNG帧

这个问题是我之前的一个dng-raw-pictures-imported-as-16-bit-deep-but-unexpected-plt-show-result的后续问题,之后我继续搜索。

由于回复获得了 16 位的可视化,但每个通道的通道运行良好。我决定拍摄一系列 50 个 BIAS 帧。这是在完全黑暗中使用 ISO 100 和 1/8000 秒曝光时间(最低 ISO 的最短曝光)拍摄的照片。偏置帧显示传感器在没有光线进入时看到的内容,传感器后面的 ADC 应该为每个像素提供一个“0”值。情况并非总是如此,我想分析一下这个值有多少变化。我不希望有大的变化或大的错误值。

使用我上一个问题中解释的方法,我一一读取我的 50 帧并查看随机像素的 R、G、B 值(随机但始终相同),让我们说位置为 [1500, 1500]。

在运行序列时,我将像素值与行和列的平均值进行比较。除了平均值之外,我还计算了行和列的标准偏差。

这是我发现的:

分析 ISO 100,Exp 1/8000s

就我个人而言,我发现这些波动很大,没想到对于 14 位深度的 ADC 会出现这种情况。可能我查看数据的方式有问题,我犹豫了一下,但担心它再次与 ColorMapping、Demosaicing 等有关。

为了进行交叉检查,我想确保我从 Python 脚本中获得的像素 [1500,1500] 的值可以重现。因此,我安装了 ImageJ 或者也调用了它的最新版本 Fiji。使用 DCRAWreader 插件,我可以读取相同的 16 位帧并使用像素检查工具来查找位置 [1500,1500] 中著名像素的值。

ImageJ 值与我使用 Python 获得的值不对应。

我现在的问题是:“我应该如何解释在 Python 中上传的图片像素背后的 rgb 数字?它们与像素传感器阱中产生并由 ADC 转换为数字值的电子数量有何关系? "

0 投票
1 回答
1222 浏览

android - 从 Android 中的 DNG 文件中检索像素

我目前正在开发一个需要使用 Camera2 才能自定义 HDR 设置的 HDR 应用程序。

我开发了一种自定义算法来从原始 DNG 图像中检索某些数据,我想在 Android 上实现它。

不幸的是,我不是 Java/Android 方面的专家,所以我自学了如何编码。使用其他格式,我通常使用位图来检索像素数据。(这对于现有方法来说是一项相对容易的任务)

关于 DNG 文件,我没有找到任何文档告诉我如何检索像素数据。我想过缓冲图像,但是 DNG 文件格式包含像素以外的许多信息,恐怕我无法找到使用 bufferstream 的提取策略。(我只想将像素存储在数组中)

有人有想法吗?非常感谢一些提示。

此致

0 投票
1 回答
1322 浏览

ios - 将其他相机拍摄的 DNG(原始照片)保存到 iOS 照片库

我编写了一个应用程序,它从我的 Ricoh GR II 中读取 dng 文件并将它们保存到 iOS 10 的照片库中,代码如下

我收到以下错误:

我想也许 iOS 只支持在 iPhone 上拍摄的 DNG?

0 投票
1 回答
376 浏览

android - DNG/RAW-image:DefaultCropSize 和 ActiveArea 有什么区别?

我们有一个谷歌 Nexus 5,它以 DNG 格式拍摄 RAW 图像。我们想知道 DefaultCropSize (2448x3264) 和 ActiveArea (2464x3280) 的差异从何而来,这些像素是否用于某种黑电平补偿?我读过有机会,在某些像素上有一个掩蔽层来获得“在线”-darkvalues。这可能是这里的问题吗?

我们正在使用这种运行良好的方法在 MATLAB 中读取文件: https ://github.com/rcsumner/devCam/blob/5ab896704fdced674bfed8767c90251ce2cebe06/MATLAB/dngRead.m

Adobe-DNG 文档提供了以下详细信息: http ://wwwimages.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/dng_spec.pdf

默认作物尺寸:

原始图像通常会在最终图像的边缘周围存储额外的像素。这些额外的像素有助于防止最终图像边缘附近的插值伪影。DefaultCropSize 指定最终图像区域的大小,以原始图像坐标表示(即,在应用 DefaultScale 之前)。

活动区域:

此矩形定义传感器的活动(非屏蔽)像素。矩形坐标的顺序为:上、左、下、右。

提前非常感谢!:)