0

我已经彻底搜索了互联网,但没有太多相关问题。即使在stackoverflow上也没有

所以我想要实现的是相当困难的事情

我想计算图像的复杂性

让我向您展示我开发的游戏中的几个示例https://www.monstermmorpg.com/MonsterDex

我有一个非常复杂和非常详细的怪物艺术品,例如

https://www.monstermmorpg.com/Vesuverex-Monster-Dex-18

在此处输入图像描述

还有一个非常简单的

https://www.monstermmorpg.com/Cluckoon-Monster-Dex-152

在此处输入图像描述

所以我想计算图像的复杂度。

我想计算平面颜色复杂度、多线复杂度、良好的光线复杂度以及是否还有其他复杂度。由于具有各种图像复杂性,我将对图像进行分类并决定哪一个最适合我的目标。

那我为什么需要?当我使用 ImageMagick 调整它们的大小时,我将根据图像的复杂性应用过滤器,例如unsharp选项

它对边界的混叠产生了巨大的影响

我想在 C# 中计算图像的复杂度

我愿意使用 3rd 方库等。

4

1 回答 1

0

人们经常使用作为场景复杂度的度量。使用libvips,获取直方图并从中计算熵:

$ vips hist_find chicken.png x.v
$ vips hist_entropy x.v
5.048871
$ vips hist_find dino.jpg x.v
$ vips hist_entropy x.v
7.574827

你可以看到你的恐龙形象要高得多。libvips 在 nuget 上有一个很好的 C# 绑定——你会写类似(未经测试)的东西:

using var im = Image.NewFromFile("image.jpg", access: Enums.Access.Sequential);
double entropy = im.HistFind().HistEntropy();
于 2021-09-23T09:33:20.523 回答