`

开源视频质量评价工具: IQA

 
阅读更多

Image Quality Assessment (IQA)是一个快速,精确,可靠的测量视频/图像质量的基于C的库。

它实现了很多流行的算法比如 MS-SSIM, SIMM, MSE 和 PSNR。

其提供的方法在iqa.h中,如下所示:

 

/*
 * Copyright (c) 2011, Tom Distler (http://tdistler.com)
 * All rights reserved.
 *
 * The BSD License
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * - Redistributions of source code must retain the above copyright notice, 
 *   this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 *
 * - Neither the name of the tdistler.com nor the names of its contributors may
 *   be used to endorse or promote products derived from this software without
 *   specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _IQA_H_
#define _IQA_H_

#include "iqa_os.h"

/**
 * Allows fine-grain control of the SSIM algorithm.
 */
struct iqa_ssim_args {
    float alpha;    /**< luminance exponent */
    float beta;     /**< contrast exponent */
    float gamma;    /**< structure exponent */
    int L;          /**< dynamic range (2^8 - 1)*/
    float K1;       /**< stabilization constant 1 */
    float K2;       /**< stabilization constant 2 */
    int f;          /**< scale factor. 0=default scaling, 1=no scaling */
};

/**
 * Allows fine-grain control of the MS-SSIM algorithm.
 */
struct iqa_ms_ssim_args {
    int wang;             /**< 1=original algorithm by Wang, et al. 0=MS-SSIM* by Rouse/Hemami (default). */
    int gaussian;         /**< 1=11x11 Gaussian window (default). 0=8x8 linear window. */
    int scales;           /**< Number of scaled images to use. Default is 5. */
    const float *alphas;  /**< Pointer to array of alpha values for each scale. Required if 'scales' isn't 5. */
    const float *betas;   /**< Pointer to array of beta values for each scale. Required if 'scales' isn't 5. */
    const float *gammas;  /**< Pointer to array of gamma values for each scale. Required if 'scales' isn't 5. */
};

/**
 * Calculates the Mean Squared Error between 2 equal-sized 8-bit images.
 * @note The images must have the same width, height, and stride.
 * @param ref Original reference image
 * @param cmp Distorted image
 * @param w Width of the images
 * @param h Height of the images
 * @param stride The length (in bytes) of each horizontal line in the image.
 *               This may be different from the image width.
 * @return The MSE.
 */
float iqa_mse(const unsigned char *ref, const unsigned char *cmp, int w, int h, int stride);

/**
 * Calculates the Peak Signal-to-Noise-Ratio between 2 equal-sized 8-bit
 * images.
 * @note The images must have the same width, height, and stride.
 * @param ref Original reference image
 * @param cmp Distorted image
 * @param w Width of the images
 * @param h Height of the images
 * @param stride The length (in bytes) of each horizontal line in the image.
 *               This may be different from the image width.
 * @return The PSNR.
 */
float iqa_psnr(const unsigned char *ref, const unsigned char *cmp, int w, int h, int stride);

/**
 * Calculates the Structural SIMilarity between 2 equal-sized 8-bit images.
 *
 * See https://ece.uwaterloo.ca/~z70wang/publications/ssim.html
 * @note The images must have the same width, height, and stride.
 * @param ref Original reference image
 * @param cmp Distorted image
 * @param w Width of the images
 * @param h Height of the images
 * @param stride The length (in bytes) of each horizontal line in the image.
 *               This may be different from the image width.
 * @param gaussian 0 = 8x8 square window, 1 = 11x11 circular-symmetric Gaussian
 * weighting.
 * @param args Optional SSIM arguments for fine control of the algorithm. 0 for
 * defaults. Defaults are a=b=g=1.0, L=255, K1=0.01, K2=0.03
 * @return The mean SSIM over the entire image (MSSIM), or INFINITY if error.
 */
float iqa_ssim(const unsigned char *ref, const unsigned char *cmp, int w, int h, int stride, 
    int gaussian, const struct iqa_ssim_args *args);

/**
 * Calculates the Multi-Scale Structural SIMilarity between 2 equal-sized 8-bit
 * images. The default algorithm is MS-SSIM* proposed by Rouse/Hemami 2008.
 *
 * See https://ece.uwaterloo.ca/~z70wang/publications/msssim.pdf and
 * http://foulard.ece.cornell.edu/publications/dmr_hvei2008_paper.pdf
 *
 * @note 1. The images must have the same width, height, and stride.
 * @note 2. The minimum image width or height is 2^(scales-1) * filter, where 'filter' is 11
 * if a Gaussian window is being used, or 9 otherwise.
 * @param ref Original reference image
 * @param cmp Distorted image
 * @param w Width of the images.
 * @param h Height of the images.
 * @param stride The length (in bytes) of each horizontal line in the image.
 *               This may be different from the image width.
 * @param args Optional MS-SSIM arguments for fine control of the algorithm. 0
 * for defaults. Defaults are wang=0, scales=5, gaussian=1.
 * @return The mean MS-SSIM over the entire image, or INFINITY if error.
 */
float iqa_ms_ssim(const unsigned char *ref, const unsigned char *cmp, int w, int h, int stride, 
    const struct iqa_ms_ssim_args *args);

#endif /*_IQA_H_*/


源代码下载:http://download.csdn.net/detail/leixiaohua1020/6376741

 

SourceForge项目页面:http://sourceforge.net/projects/iqa/

项目官方页面:http://tdistler.com/iqa/

分享到:
评论

相关推荐

    视频图像评价算法,iqa-1.1.2,包含各类典型经典评价算法

    总结来说,"视频图像评价算法,iqa-1.1.2"是一个包含多种经典图像和视频质量评价算法的工具或库,适用于图像和视频处理的研究和开发工作。开发者可以借助这些算法进行性能分析,提升他们的产品和服务的质量。

    IQA-optimization_IQA质量评价函数_源码

    本资源“IQA-optimization_IQA质量评价函数_源码”提供了一套用于图像质量评价的算法,旨在帮助学习者和研究人员更好地理解和应用这些方法。 首先,我们需要理解IQA的基本概念。IQA通常分为两类:主观评估...

    iqa 源代码 (Image Quality Assessment 图像质量评价库)

    《IQA图像质量评价库详解》 在计算机视觉领域,图像质量评估(Image Quality Assessment,简称IQA)是一项至关重要的任务,它涉及到图像处理、压缩、传输等过程中的质量分析。"IQA源代码"是一个专门用于计算图像或...

    图像质量评价(Image Quality Assessment,IQA)概述

    图像质量评价(Image Quality Assessment,IQA)是评估数字图像在经过处理或传输后,其视觉效果相对于原始图像退化程度的一种技术。IQA在计算机视觉、图像处理领域扮演着关键角色,对于图像的分析、识别和理解至关...

    图像质量评价(IQA)全参考方法归纳总结

    "图像质量评价(IQA)全参考方法归纳总结" 图像质量评价是指对图像失真程度的客观评价,图像质量评价方法可以分为两大类:全参考方法和无参考方法,全参考方法需要提供一个无失真的原始图像作为参考图像,然后与失真...

    盲图像质量评价

    盲图像质量评价是一种在不知道原始无损图像的情况下,评估经过处理或传输后的图像质量的方法。在数字图像处理领域,这是一项关键的技术,特别是在压缩、增强、传输或恢复图像时,需要确保处理后的图像能保持良好的...

    IQA_IQA_matlab_sseq_图像评价_

    本资源"**IQA_matlab_sseq_图像评价**"显然是一个专门针对图像质量评估的工具包,主要利用Matlab语言进行开发。下面将详细介绍其中涉及的关键知识点。 1. **图像质量评估(IQA)**: - IQA的目标是衡量图像处理或...

    image-quality:图像质量是用于图像质量评估(IQA)的开源软件库

    图像质量是用于自动图像质量评估(IQA)的开源软件库。 依存关系 Python 3.8 (开发中)Docker 安装 该软件包是公共的,并托管在PyPi存储库中。 要将其安装在您的机器中 pip install image-quality 例子 安装image-...

    图像质量评价(Image Quality Assessment, IQA)方向LIVE数据集

    图像质量评价(Image Quality Assessment, IQA)是计算机视觉领域中的一个重要分支,主要目标是对数字图像的主观质量进行客观评估。LIVE数据集是专门针对这一领域的权威资源,被广泛用于算法开发、验证和比较。在...

    IQA_Matlab_IQA_pinkorz_

    本项目"IQA_Matlab_IQA_pinkorz_"是基于Matlab的一个图形用户界面(GUI)工具,专注于进行图像质量评估。 IQA在多个场景中至关重要,如数字电视、视频压缩、医疗成像和网络图像传输等。它通过模拟人类视觉系统...

    Kadid-10k 图像质量评价IQA(Image Quality Assessment)数据集

    目前人为扭曲的图像质量评价(IQA)数据库规模较小,内容有限。较大的 IQA 数据库内容多样化,有利于 IQA 深度学习的发展。我们创建了两个数据集,康斯坦茨人为扭曲图像质量数据库(kADID-10k)和康斯坦茨人为扭曲图像...

    IQA评估指标,iqa标准,matlab源码.zip

    在实际应用中,IQA技术不仅限于学术研究,还被广泛应用于视频编码优化、图像压缩算法的改进、网络传输中的图像质量控制等方面。通过利用这些IQA评估指标和标准,开发者可以更好地理解和改进他们的图像处理系统,从而...

    17 ICCV Rank IQA.pdf

    实验显示了该方法在无参考图像质量评价技术中取得了优于现有技术的结果,并且在某些情况下甚至超过了需要高质量参考图像的全参考图像质量评价(Full-Reference IQA,简称FR-IQA)方法的性能。 6. 知识迁移的效率:...

    图像质量评价数据库——LIVE

    "图像质量评价数据库——LIVE" 是一个专用于评估图像质量和视觉效果的资源库,它在图像处理和计算机视觉领域中扮演着至关重要的角色。LIVE( Laboratory for Image and Video Engineering)是由美国德克萨斯大学...

    论文研究 - IQA方法在增强现实学习者思维导图讨论中的应用

    该研究通过互动的定性研究方法讨论了增强现实学习者的内在思想。 参加者是大学的大三和大四,他们在增强现实设计中设置了特殊主题。 研究发现:1)增强现实学习者提出的学习思维概念与主要推动者项目和主要成果的...

    基于Python的无参考图像质量评价.zip

    资源包含文件:全部源码及...训练时发现在低质量图像时网络性能很差,对图像的质量label进行非线性拉伸到 0-10, 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/124121211?spm=1001.2014.3001.5502

    图像质量评价 报告 (法语版)

    1. **图像质量评估(IQA)**:指评价图像质量的方法与技术。图像质量的好坏直接影响人类视觉信息获取的效果,因此准确且高效地评估失真图像的质量是一项关键但具有挑战性的任务。 2. **无参考图像质量评估(NR-IQA...

Global site tag (gtag.js) - Google Analytics