如何到达一个圆圈并检测其颜色?

时间:2018-12-22 17:10:16

标签: c# image graphics bitmap pixel

我在image中有一些圆,我可以找到每个圆的位置(直径,原点或中心),所以首先我该如何检查该圆内的所有像素(我在想的for循环)。第二,我怎么问像素颜色是否接近灰色? 起初我想问一下红色,绿色和蓝色值是否高于125,但这不起作用。例如:(200,130,170)肯定不是灰色!

1 个答案:

答案 0 :(得分:1)

如果要检查点是否在圆内,请使用毕达哥拉斯。.

Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) 

..计算点(x1,y1)与圆心(x2,y2)的距离。如果您计算的值小于圆的半径,则该点在圆中。可以通过删除sqrt并测试结果是否小于半径的平方来对它进行些微优化

如果RGB几乎相同,则任何东西几乎都是灰色的。 64,64,64 =深灰色,72,64,64 =略带红色的深灰色。您必须定义“几乎”是什么意思