图像纹理复杂度计算

本文介绍了如何利用图像灰度级直方图的二阶矩(方差)来描述纹理复杂度,该方法通过计算均值m和不同灰度级z的分布来评估。提供了C++代码实现这一计算过程。

定义图像的灰度级直方图的二阶矩(方差)描述纹理复杂度:这里写图片描述

其中z表示灰度,p(zi)为相应的直方图,其中L是不同灰度级的数量。m是z的均值:
这里写图片描述

C++实现如下:

    cv::Mat img = cv::imread("test.bmp");
    int height = img.rows;
    int width = img.cols;
    double mean = 0.0;
    double variance = 0.0;
    int temp = 0;

    for (int y = 0; y < height; y++)
    {
        for (int x = 0; x < width; x++)
        {
            mean += img.at<cv::Vec3b>(y, x)[0];
        }
    }
    mean /= double(height*width);

    //variance(texture complexity纹理复杂度)
    for (int y = 0; y < height; y++)
    {
        for (int x = 0; x < width; x++)
        {
            temp = img.at<cv::Vec3b>(y, x)[0] - mean;
            variance += (temp*temp);
        }
    }
    variance /= double(height*width);
    variance = int(variance / 100);
    std::cout << "variance:" << variance;
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值