2011-04-25 40 views
0

是否有可能检测到图像是否在C#中显示为“负像”?换句话说,颜色是倒置的?如何检测图像是否显示为负(反转)?

+0

我认为这是一个非常难的问题,不管语言。您可能需要有一组负面图像来“训练”您的算法才能找到它们,但即使如此,您也只能在一定程度上确定它们,并且您可能总会得到错误的结果(标记为负值非负,反之亦然)。 – joce 2011-04-25 22:54:51

+0

尝试检测棋盘图像是否翻转,例如,或70%灰卡。 :-) – 2011-04-25 22:57:51

回答

2

如果你没有要比较的原始图像(然后你试图做的是检测图像是否为另一个图像的负面),那么你只能尝试猜测它是某种负面的形象,但你不能100%确定它。
的负面形象仅仅是其中每个像素的色彩是图像:
红= 255 - originalRed
绿色= 255 - originalGreen
蓝= 255 - originalBlue

1

如果你知道任何特定像素的颜色应该是你可以测试,看看它是否匹配或倒置。

除此之外,我想不出一种适用于任何图像的万无一失的方法。你可以看看颜色分布,但这取决于图像。

1

您需要对倒置和非倒置图像的属性进行一些统计分析,以获得一些检查标准。例如,也许有一些颜色在正常图像中不常见,但在倒置图像中很常见。也许正常图像的中心通常比边缘明亮,或者顶部比底部明亮。

没有方法是100%准确的,因为任何图像最终都与其他图像一样有效。