[英]Compare colors with toleration
今天,我嘗試檢查BitMap中CSharp中的一種顏色是否與另一種顏色相似。 這是代碼,我正在使用:
Color blah = screenshot.GetPixel(x, y);
if (blah == Color.Red) {
...
問題是,我從來沒有得到過true
,因為顏色的陰影有點不同。 有什么辦法可以比較這種顏色的公差嗎?
謝謝!
您可以檢查定義容忍度值,並檢查它們的差值是否小於此值:
Color blah = screenshot.GetPixel(x, y);
if (Math.Abs(Color.Red.GetHue() - blah.GetHue()) <= tolorance)
{
// ...
}
也許是更好的解決方案:
public bool AreColorsSimilar(Color c1, Color c2, int tolerance)
{
return Math.Abs(c1.R - c2.R) < tolerance &&
Math.Abs(c1.G - c2.G) < tolerance &&
Math.Abs(c1.B - c2.B) < tolerance;
}
資源:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.