我正在编写一些软件,它会定期检查摄像机图像以确定对象是否已引入到所查看的场景中。我在我的WinForms软件中使用ImageMagick来比较两个图像以创建第三个图像。在第三个图像中,如果前两个图像具有相似颜色的像素,则像素为白色,如果它们不同则为黑色。因此,如果用户看到一组黑色像素,他们就会知道以前没有的场景中已放置的东西,如下所示: 识别相似颜色的像素组
用户将看不到此图像,所以我会就像我的软件为我识别这一点。从这个分析中我不需要任何太复杂的东西 - 只是布尔值是否在场景中发生了变化。
在我看来,有两种分析方法:计算图像中黑色像素的数量,或者我可以编写一些算法来识别黑色块。我的问题是关于第二种方法,因为它感觉是更正确的方法。图像有点太嘈杂(你可以看到直边上有误报),让我感觉完全适合计数。
为了确定一个组,我考虑使用一些for循环来查看每个像素周围的像素的颜色,但是这看起来好像需要永远。我的处理时间不能超过几秒钟,所以我需要警惕这一点。是否有更清晰或更有效的方法来识别类似颜色的像素组?或者我需要运行循环并尽可能高效?
也许你也可以在这里问这个问题:https://www.imagemagick.org/discourse-server/index.php – dlemstra