温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenCV计算图片色彩丰富度的示例分析

发布时间:2021-12-15 18:11:46 阅读:955 作者:柒染 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章给大家介绍OpenCV计算图片色彩丰富度的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

计算图片色彩丰富度

首先我们要有一个色彩丰富度的标准。Hasler and Süsstrunk的研究将颜色丰富度划分为7级。

  1. 无(Not colorful)

  2. 稍微(Slightly colorful)

  3. 适度(Moderately colorful)

  4. 平均(Averagely colorful)

  5. 非常(Quite colorful)

  6. 高度(Highly colorful)

  7. 极端(Extremely colorful)

Hasler and Süsstrunk找了20个人对84副图片按照1-7分进行打分。最后对这份调查数据进行分析,发现图片颜色丰富度有如下计算公式。

OpenCV计算图片色彩丰富度的示例分析

OpenCV计算图片色彩丰富度的示例分析

  最后的C就是图片颜色丰富度的指示变量(其中sigma和miu分别代表标准差和平均值)。

代码

import cv2import numpy as npdef image_colorfulness(image):
    #将图片分为B,G,R三部分(注意,这里得到的R、G、B为向量而不是标量)
    (B, G, R) = cv2.split(image.astype("float"))
 
    #rg = R - G
    rg = np.absolute(R - G)
 
    #yb = 0.5 * (R + G) - B
    yb = np.absolute(0.5 * (R + G) - B)
 
    #计算rg和yb的平均值和标准差
    (rbMean, rbStd) = (np.mean(rg), np.std(rg))
    (ybMean, ybStd) = (np.mean(yb), np.std(yb))
 
    #计算rgyb的标准差和平均值
    stdRoot = np.sqrt((rbStd ** 2) + (ybStd ** 2))
    meanRoot = np.sqrt((rbMean ** 2) + (ybMean ** 2))
 
    # 返回颜色丰富度C
    return stdRoot + (0.3 * meanRoot)image = cv2.imread('图片路径')  print(image_colorfulness(image))

运行

#返回图片的丰富度值(0-100)

关于OpenCV计算图片色彩丰富度的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/4589342/blog/4623890

AI

开发者交流群×