锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

c灰度到红绿蓝(MATLAB Jet)色标

时间:2022-09-28 14:00:00 色标传感器wm03nct2a色标光电传感器红外线电梯光幕

希望这是你要找的:

double interpolate( double val, double y0, double x0, double y1, double x1 ) {

return (val-x0)*(y1-y0)/(x1-x0) y0;

}

double blue( double grayscale ) {

if ( grayscale < -0.33 ) return 1.0;

else if ( grayscale < 0.33 ) return interpolate( grayscale, 1.0, -0.33, 0.0, 0.33 );

else return 0.0;

}

double green( double grayscale ) {

if ( grayscale < -1.0 ) return 0.0; // unexpected grayscale value

if ( grayscale < -0.33 ) return interpolate( grayscale, 0.0, -1.0, 1.0, -0.33 );

else if ( grayscale < 0.33 ) return 1.0;

else if ( grayscale <= 1.0 ) return interpolate( grayscale, 1.0, 0.33, 0.0, 1.0 );

else return 1.0; // unexpected grayscale value

}

double red( double grayscale ) {

if ( grayscale < -0.33 ) return 0.0;

else if ( grayscale < 0.33 ) return interpolate( grayscale, 0.0, -0.33, 1.0, 0.33 );

else return 1.0;

}

我不知道如果这个比例是100%相同的图像,你链接,但它应该看起来很相似。

更新

我根据MatLab的Jet重写调色板的描述代码here

double interpolate( double val, double y0, double x0, double y1, double x1 ) {

return (val-x0)*(y1-y0)/(x1-x0) y0;

}

double base( double val ) {

if ( val <= -0.75 ) return 0;

else if ( val <= -0.25 ) return interpolate( val, 0.0, -0.75, 1.0, -0.25 );

else if ( val <= 0.25 ) return 1.0;

else if ( val <= 0.75 ) return interpolate( val, 1.0, 0.25, 0.0, 0.75 );

else return 0.0;

}

double red( double gray ) {

return base( gray - 0.5 );

}

double green( double gray ) {

return base( gray );

}

double blue( double gray ) {

return base( gray 0.5 );

}

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章