3DLUT风格转换图像颜色异常的技术求助及代码排查
3DLUT风格转换色彩异常问题求助
背景信息
- 使用3DLUT Creator生成咖啡风格的.cube格式3DLUT,包含64×64×64个条目
- 编写C程序读取32位像素的风景BMP文件,通过三线性插值应用该3DLUT生成风格化图像
核心问题
生成的图像颜色异常,与3DLUT Creator及Davinci Resolve处理结果不一致,部分绿树区域过暗且色彩不均。多次检查代码、借助ChatGPT生成代码后,问题仍未改善。
核心代码片段
// 从BMP文件获取RGB像素值 float Red = R * (LUT_TABLE_SIZE - 1) / 255.0f; // R为原始像素的红色通道值 redL = (int) Red ; redH = redL + 1; if( redH == LUT_TABLE_SIZE ) // 防止溢出 redH = redL ; ..... ..... // 绿色通道greenH、greenL,蓝色通道blueH、blueL的计算逻辑与红色通道一致 ..... indexH=redH+N*greenH+N*N*blueH; // LUT表的索引 indexL=redL+N*greenL+N*N*blueL; colorH=table[indexH]; colorL=table[indexL]; dec_R = Red - redL; .... // dec_G、dec_B的计算逻辑与dec_R一致 NewR=(colorH.red-colorL.red)*dec_R+colorL.red; NewG=(colorH.green-colorL.green)*dec_G+colorL.green; NewB=(colorH.blue-colorL.blue)*dec_B+colorL.blue; // 将新像素写入新BMP文件
求助问题
- 上述代码是否存在错误?
- 若代码无问题,应用3DLUT后是否需要额外处理以消除色彩异常?
对比图像说明
- 代码处理后图像:绿树区域过暗且色彩不均,整体色彩风格与预期偏差明显
- 原图:色彩正常的风景图像
- Davinci Resolve处理后图像:符合咖啡风格的正常色彩表现
- 3DLUT Creator处理后图像:与Davinci Resolve结果一致的风格化图像
内容的提问来源于stack exchange,提问作者charlie-xue
相关产品推荐
相关产品推荐

