如何从C++;? 如何从C++中读取< >代码> CR2(原始图像格式)p>
如果可能的话,我需要执行的唯一一个操作是直接读取.cr2文件的像素数据,否则我想将其转换为任何无损耗图像并读取其像素数据如何从C++;? 如何从C++中读取< >代码> CR2(原始图像格式)p>,c++,image,c++11,image-processing,lossless,C++,Image,C++11,Image Processing,Lossless,如果可能的话,我需要执行的唯一一个操作是直接读取.cr2文件的像素数据,否则我想将其转换为任何无损耗图像并读取其像素数据 有什么建议吗 我也会选择ImageMagick。您不必预先转换所有文件,您可以根据需要一次转换一个文件 在您的程序中,不要打开CR2文件,只需打开一个管道(popen()call),该管道正在执行ImageMagick命令,如 convert file.cr2 ppm:- 然后您可以读取所描述的极其简单的PPM格式-基本上只是一行ASCII文本,告诉您文件类型,然后是另一行
有什么建议吗 我也会选择ImageMagick。您不必预先转换所有文件,您可以根据需要一次转换一个文件 在您的程序中,不要打开
CR2
文件,只需打开一个管道(popen()
call),该管道正在执行ImageMagick命令,如
convert file.cr2 ppm:-
然后您可以读取所描述的极其简单的PPM格式-基本上只是一行ASCII文本,告诉您文件类型,然后是另一行ASCII文本,告诉您图像尺寸,然后是最大值,然后是二进制数据
以后,如果需要,您可以实际使用ImageMagick库和API。您尝试过谷歌吗?如果这太难读取/实现:ImageMagick被认为太难转换cr2了。@DeviceFan我需要使用
CUDA
处理大量原始图像,因此它是第一次转换每个图像的最后一个选项。“dcraw”很好,但它是“在运行任何操作系统的任何计算机上对任何数码相机的任何原始图像进行解码的程序”,因此我只能将其用作.cr2
结构的指南,以编写我自己的图像数据读取器,但首先我将尝试找到一个可以直接读取图像数据的库。