我想检测一张图片的每个像素是否在两种颜色之间。我使用 getImageData 获取像素颜色,但现在不知道如何判断它是否在范围内。 有什么想法吗? 谢谢
我想检测一张图片的每个像素是否在两种颜色之间。我使用 getImageData 获取像素颜色,但现在不知道如何判断它是否在范围内。 有什么想法吗? 谢谢
HueDesired – HuePixel
但是计算机图像通常使用RGB颜色模型进行定义。RGB使用混合颜色来制作所需的颜色。通过在彩色轮上计算两种颜色之间的欧几里德距离,您可以确定它们是否“接近”。
以下是一个用于计算指定颜色和像素颜色之间欧几里德距离的函数:
// find Euclidian distance from the pixel color to the specified color
//
function colorDistance(colorRed,colorGreen,colorBlue,pixelRed,pixelGreen,pixelBlue){
var diffR,diffG,diffB;
// distance to color
diffR=( colorRed - pixelRed );
diffG=( colorGreen - pixelGreen );
diffB=( colorBlue - pixelBlue );
return(Math.sqrt(diffR*diffR + diffG*diffG + diffB*diffB));
}
由于您想将像素与2种颜色进行比较,因此只需对您的2种颜色运行此函数。
您需要确定两种颜色和像素颜色之间的“可接受”距离,但是此函数将为您提供测量工具以便处理。