簡體   English   中英

比較顏色與公差

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM