Image processing 从RGB颜色中删除R

Image processing 从RGB颜色中删除R,image-processing,colors,rgb,Image Processing,Colors,Rgb,是否有方法移除RGB像素的红色通道,从而在生成的图片中红色变为白色而不是黑色?我需要区分红色和蓝色/黑色,但在不同的光线下,RGB值会有所不同。如果我只是删除R通道,较深的红色会变成黑色,我希望得到相反的结果 谢谢 如果我理解正确的话- 您需要规范化红色通道值,然后将其用作混合值: mix = R / 255 然后使用混合因子将白色与正常颜色减去红色通道混合: Original-red White R' = 0 + 255 * mix G' = G *

是否有方法移除RGB像素的红色通道,从而在生成的图片中红色变为白色而不是黑色?我需要区分红色和蓝色/黑色,但在不同的光线下,RGB值会有所不同。如果我只是删除R通道,较深的红色会变成黑色,我希望得到相反的结果


谢谢

如果我理解正确的话-

您需要规范化红色通道值,然后将其用作混合值:

mix = R / 255
然后使用混合因子将白色与正常颜色减去红色通道混合:

     Original-red    White
R' = 0             + 255 * mix
G' = G * (1 - mix) + 255 * mix
B' = B * (1 - mix) + 255 * mix
请注意,它将消除黄色和洋红,当然这些颜色使用红色通道,红色越多,混合的白色越多

您应该能够使用CMYK颜色模型或两者的组合来解决这个问题,这样您就可以分离出所有主要组件。然后用f.ex覆盖混合物。来自CMYK的黄色/品红成分

混合过程应与所述相同

概念演示
var ctx=c.getContext(“2d”);
var img=新图像;
img.onload=函数(){
c、 宽度=img.width;
c、 高度=img.高度;
ctx.drawImage(this,0,0);
var idata=ctx.getImageData(0,0,c.宽度,c.高度),
data=idata.data,len=data.length,i,mix;
/*混合=R/255
R=0+255*混合
G=G*(1-混合)+255*混合
B=B*(1-混合)+255*混合
*/
对于(i=0;i

红色删除+白色原始:
如果我理解正确-

您需要规范化红色通道值,然后将其用作混合值:

mix = R / 255
然后使用混合因子将白色与正常颜色减去红色通道混合:

     Original-red    White
R' = 0             + 255 * mix
G' = G * (1 - mix) + 255 * mix
B' = B * (1 - mix) + 255 * mix
请注意,它将消除黄色和洋红,当然这些颜色使用红色通道,红色越多,混合的白色越多

您应该能够使用CMYK颜色模型或两者的组合来解决这个问题,这样您就可以分离出所有主要组件。然后用f.ex覆盖混合物。来自CMYK的黄色/品红成分

混合过程应与所述相同

概念演示
var ctx=c.getContext(“2d”);
var img=新图像;
img.onload=函数(){
c、 宽度=img.width;
c、 高度=img.高度;
ctx.drawImage(this,0,0);
var idata=ctx.getImageData(0,0,c.宽度,c.高度),
data=idata.data,len=data.length,i,mix;
/*混合=R/255
R=0+255*混合
G=G*(1-混合)+255*混合
B=B*(1-混合)+255*混合
*/
对于(i=0;i

Red removed+to whiteOriginal:
将R设置为255/1而不是0?遗憾的是,否。将R设置为255会使一切看起来都像红色,即使蓝色/黑色像素也很难与红色区分开来。纯红色、黄色和品红色的预期输出是什么?橙色和紫色?如果你只是想区分红色和蓝色/黑色,为什么不看看R通道和蓝色通道的相对值呢?可能使用R/B或R-B度量值?我需要区分蓝色(阴影)/黑色(阴影)和红色(阴影)/白色,因此,如果有一种方法可以强化蓝色和黑色阴影,那将是完美的解决方案,反之亦然。减少蓝色和黑色。将R设置为255/1而不是0?遗憾的是,否。将R设置为255会使所有内容看起来都像红色,甚至蓝色/黑色像素也很难与红色区分。纯红色、黄色和洋红的预期输出是什么?橙色和紫色?如果你只是想区分红色和蓝色/黑色,为什么不看看R通道和蓝色通道的相对值呢?可能使用R/B或R-B测量?我需要区分蓝色(阴影)/黑色(阴影)和红色(阴影)/白色,因此如果有一种方法可以强化蓝色和黑色阴影,那将是完美的解决方案,反之亦然,减少蓝色和黑色。哇,这是一个惊人的效果,我试图做其他规格化,但从你的样本图像判断,这是我能得到的最好的!这正是我所需要的,保持蓝色/黑色,去掉红色。多谢各位@K3N@ZdravkoDonev没问题!我更新了我以前的评论并将其移动到了答案中。哇,这是一个惊人的效果,我尝试了其他的标准化,但从你的示例图像判断,这是我能得到的最好的!这正是我所需要的,保持蓝色/黑色,去掉红色。多谢各位@K3N@ZdravkoDonev没问题!我更新了之前的评论,并将其移到了答案中。