如何用DM脚本制作混色图?现有RGB方法存参数丢失问题
DM脚本中ColorMix函数的使用方案
DM脚本里确实存在ColorMix函数,它可以直接基于图像当前的**显示设置(包括Gamma、对比度限制)**创建混色RGB图像,完美解决你当前方法丢失显示参数的问题。
替代实现脚本
image img1, img2, img3 string title = "创建RGB混色图" string prompt = "请选择三张图像" if ( !GetThreeLabeledImagesWithPrompt( prompt, title, "红色通道: ", img1, "绿色通道: ", img2, "蓝色通道: ", img3 ) ) Throw( "用户取消操作" ) // 检查图像尺寸是否一致 number w1, h1, w2, h2, w3, h3 img1.ImageGetDimensionSizes(w1, h1) img2.ImageGetDimensionSizes(w2, h2) img3.ImageGetDimensionSizes(w3, h3) if( (w1!=w2) || (w2!=w3) || (h1!=h2) || (h2!=h3) ) Throw( "图像尺寸不匹配" ) // 使用ColorMix创建保留显示设置的RGB图 rgbimage mixedRGB := ColorMix( img1, img2, img3, "RGB混色图" ) ShowImage( mixedRGB )
关键说明
ColorMix函数会自动读取每张输入图像的DisplayRange(对比度上下限)和Gamma校正值,按照当前显示效果计算混色,无需手动归一化像素值。- 你原来的
NormRGB函数是对原始像素值做线性归一化,完全忽略了图像的显示参数,所以会丢失Gamma和对比度设置。
内容的提问来源于stack exchange,提问作者Renfong
相关产品推荐
相关产品推荐

