已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
昨天关门了。
Improve this question
我一直在寻找一个解决方案来检测PNG图像的主要亮度是亮还是暗。这个概念是为所有PNG图像添加背景,但如果太亮,则添加暗背景
我通过搜索找到了一些解决方案,但似乎它们与透明背景图像配合得不太好。你能给我一些建议吗?
一些图像和预期结果:
预期结果为深色:
已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
昨天关门了。
Improve this question
我一直在寻找一个解决方案来检测PNG图像的主要亮度是亮还是暗。这个概念是为所有PNG图像添加背景,但如果太亮,则添加暗背景
我通过搜索找到了一些解决方案,但似乎它们与透明背景图像配合得不太好。你能给我一些建议吗?
一些图像和预期结果:
预期结果为深色:
2条答案
按热度按时间cvxl0en21#
很有意思。您能试试这个吗?看它适合您吗?
请注意,这种方法可能不适用于具有大量透明区域的图像,因为这些区域可能会使直方图向一端或另一端倾斜。在这种情况下,您可能需要使用更复杂的算法来考虑每个像素的透明度。
lkaoscv72#
1 -使用ImageMagick加载PNG图像并检索其颜色直方图。颜色直方图将给予我们图像中颜色的分布。
2 -计算图像中的像素总数。这将用于计算图像的平均亮度。
3 -循环通过颜色直方图并计算每种颜色的亮度值之和。
4 -通过将亮度值之和除以像素总数来计算图像的平均亮度。
5 -根据平均亮度确定图像是亮还是暗。您可以使用阈值来确定图像是亮还是暗。例如,如果平均亮度小于128(共255个),则认为图像是暗的。如果平均亮度大于或等于128,则认为图像是亮的。
您可以根据需要调整阈值,具体取决于您希望如何对亮图像和暗图像进行分类。
请注意,此算法假定PNG图像具有透明背景。如果图像具有非透明背景,则可能需要修改算法以考虑背景颜色。