• Python图片颜色特征提取——HSV中心距法(附代码及注释)


    颜色矩是个啥?

      首先让我们先了解一下颜色矩是什么,以下是颜色矩的定义及数学表达,看着唬人但其实并不难

      颜色矩是一种简单有效的颜色特征表示方法,有一阶矩(也就是均值,mean)、二阶矩(也就是标准差, variance)和三阶矩(斜度,skewness)等,由于颜色信息主要分布于低阶矩中,所以用一阶矩,二阶矩和三阶矩足以表达图像的颜色分布,颜色矩已证明可有效地表示图像中的颜色分布。

      其中,Pij 表示彩色图像第j个像素的第i个颜色分量,N表示图像中的像素个数。

      图像的三个分量Y,U,V图像的前三阶颜色矩组成一个9维直方图向量,即图像的颜色特征表示如下:

    Python实现(附代码及详细注释)

      HSV 中心距法是基于HSV空间的,因此需要将RGB空间转换为HSV空间

    def color_moments(filename):
        img = cv2.imread(filename)  # 读一张彩色图片
        if img is None:
            return
        hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)  # RGB空间转换为HSV空间
        h, s, v = cv2.split(hsv)
        color_feature = []  # 初始化颜色特征
    # 一阶矩(均值 mean)
        h_mean = np.mean(h)  # np.sum(h)/float(N)
        s_mean = np.mean(s)  # np.sum(s)/float(N)
        v_mean = np.mean(v)  # np.sum(v)/float(N)
        color_feature.extend([h_mean, s_mean, v_mean])  # 一阶矩放入特征数组
    # 二阶矩 (标准差 std)
        h_std = np.std(h)  # np.sqrt(np.mean(abs(h - h.mean())**2))
        s_std = np.std(s)  # np.sqrt(np.mean(abs(s - s.mean())**2))
        v_std = np.std(v)  # np.sqrt(np.mean(abs(v - v.mean())**2))
        color_feature.extend([h_std, s_std, v_std])  # 二阶矩放入特征数组
    # 三阶矩 (斜度 skewness)
        h_skewness = np.mean(abs(h - h.mean()) ** 3)
        s_skewness = np.mean(abs(s - s.mean()) ** 3)
        v_skewness = np.mean(abs(v - v.mean()) ** 3)
        h_thirdMoment = h_skewness ** (1. / 3)
        s_thirdMoment = s_skewness ** (1. / 3)
        v_thirdMoment = v_skewness ** (1. / 3)
        color_feature.extend([h_thirdMoment, s_thirdMoment, v_thirdMoment])  # 三阶矩放入特征数组
    
        return color_feature
  • 相关阅读:
    2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503
    组合模式(Composite)
    Git Push 避免用户名和密码方法
    [Yii2] 快速套模板,加载JS,CSS(HTML标签<base>)
    phpstorm 2016.2.x 最新版激活方法
    PHP实现四种基本排序算法
    linux下查看负载均衡的两种方法
    Redis各类型应用场景
    HTTP协议2:请求、响应、缓存 2017-03-16 11:20 197人阅读 评论(0) 收藏
    HTTP协议1:工作原理 2017-03-16 11:18 39人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/bridge0904/p/13255917.html
Copyright © 2020-2023  润新知