首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中选择对比度较高的图像?

如何在PHP中选择对比度较高的图像?
EN

Stack Overflow用户
提问于 2009-05-31 20:21:54
回答 2查看 719关注 0票数 1

对于缩略图引擎,我想开发一种算法,从图像中随机获取x个缩略图(裁剪,不调整大小),分析它们的对比度,并选择对比度最高的一个。我正在使用PHP和Imagick,但我很高兴能得到一些关于如何计算图像对比度的一般技巧。

似乎有许多事情比计算对比度更容易,例如计算颜色,计算亮度等。

你对图片材料的分析有什么经验?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-31 20:51:35

我会这样做(伪代码):

代码语言:javascript
复制
L[256] = {0,0,0...}

loop over each pixel:
    luminance = avg(R,G,B)
    increment L[luminance] by 1

for i = 0 to 255:
    if L[i] < C: L[i] = 0       // C = threshold of your chose

find index of first and last non-zero value of L[]
contrast = last - first
票数 2
EN

Stack Overflow用户

发布于 2009-06-03 02:12:34

在寻找“具有最高对比度”的图像时,您需要非常小心地定义图像的对比度。在最简单的方式中,对比度是图像中最低强度和最高强度之间的差异。这在你的情况下不会很有用。

我建议您使用直方图方法来描述给定图像的对比度,然后比较直方图的属性,以确定您定义的对比度最高的图像。您可以使用各种众所周知的容器在代码中表示直方图,或者构造一个类来满足您的特定需求。(我并不是说您需要以图表的形式创建直方图--只是强度值的统计表示。)您可以直接使用每个直方图的方差作为对比度的度量,或者使用标准差(如果它更容易处理)。

关键在于你如何定义图像的对比度。一般来说,我会将高对比度图像定义为具有所有或几乎所有可能值的图像。我要进一步补充的是,在这个高对比度图像的定义中,图像的强度值将倾向于以均匀的方式分布在可能值的范围内。

使用这种方法,低对比度图像往往具有相对较少的离散强度值,并且它们将倾向于紧密组合在一起,而不是均匀分布。(作为一般规则,它们也倾向于朝着范围的中心进行分组。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/932781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档