【发布时间】:2016-08-19 13:26:09
【问题描述】:
我正在编写一些软件,它会定期检查相机图像,以确定对象是否已被引入到所查看的场景中。我在我的 WinForms 软件中使用ImageMagick 来比较两个图像以创建第三个。在第三个图像中,如果前两个图像具有相似颜色的像素,则该像素为白色,如果它们不同,则为黑色。因此,如果用户看到一组黑色像素,他们就会知道场景中放置了一些以前不存在的东西,如下所示:
用户不会看到此图像,因此我希望我的软件能够为我识别此图像。我不需要从这个分析中得到任何太复杂的东西 - 只是一个布尔值,用于判断场景中是否发生了变化。
在我看来,有两种分析方法;计算图像中黑色像素的数量,或者我可以编写一些算法来识别黑色块。我的问题是关于第二种方法,因为它感觉像是更正确的方法。图像有点太吵了(你可以在直边看到误报),让我感觉完全无法计数。
为了识别一个组,我考虑过使用一些 for 循环来查看每个像素周围像素的颜色,但这似乎需要很长时间。我的处理时间不能超过几秒钟,所以我需要警惕这一点。是否有更清洁或更有效的方法来识别颜色相似的像素组?还是我需要运行循环并尽可能高效?
【问题讨论】:
-
也许你也可以在这里问这个问题:imagemagick.org/discourse-server/index.php
标签: c# image image-processing