C++实现RAW转BMP图像处理
读写 RAW 文件的 C++实现,蛮适合做图像入门练习的,是你想搞明白图像格式到底怎么回事的时候。这篇文章讲得比较细,从 RAW 文件的结构讲到怎么拼出一个合法的 BMP 文件,思路清晰,代码也不绕,照着改一改就能跑。
RAW 图像的数据挺直接的,没有颜色信息,没有元数据,纯像素流。所以读的时候要清楚图像尺寸、通道数,尤其是你手上拿的是哪种相机导出的 RAW 文件。
BMP 格式就比较规矩了,头信息加像素数据,行对齐啥的也有讲究。你需要手动生成 BMP 的文件头和信息头,别忘了对齐填充,不然图片会花。
文件读写用 C++的fstream
就够了,图像部分如果你嫌麻烦可以上OpenCV
,不过用纯 C++练手也不错。像色彩校正、白平衡这种可以先跳过,后面再慢慢加进来。
如果你对BMP 图像结构
还不是熟,可以先看看这篇BMP 图像;想高位深 RAW 图像?这篇12 位 RAW 图像转换为 BMP也挺实用的。
嗯,对图像感兴趣,又想在 C++里练练手,这篇算是个比较合适的资源了。如果你是新手,可以先从标准 RAW 文件开始玩起,像512x512
的灰度图,起来也轻松。
3.44MB
文件大小:
评论区