Main Content


Fit custom model for BRISQUE image quality score



model = fitbrisque(imds,opinionScores) creates a Blind/Referenceless Image Spatial Quality Evaluator (BRISQUE) model from a reference image datastore, imds, with corresponding human perceptual differential mean opinion score (DMOS) values, opinionScore.


To use the fitbrisque function, you must have Statistics and Machine Learning Toolbox™.


collapse all

Train a custom BRISQUE model from a set of quality-aware features and corresponding human opinion scores. Use the custom model to calculate a BRISQUE score for an image of a natural scene.

Save images from an image datastore. These images all have compression artifacts resulting from JPEG compression.

setDir = fullfile(toolboxdir('images'),'imdata');
imds = imageDatastore(setDir,'FileExtensions',{'.jpg'});

Specify the opinion score for each image. The following differential mean opinion score (DMOS) values are for illustrative purposes only. They are not real DMOS values obtained through experimentation.

opinionScores = 100*rand(1,size(imds.Files,1));

Create the custom model of quality-aware features using the image datastore and the opinion scores. Because the scores are random, the property values will vary.

model = fitbrisque(imds,opinionScores')
Extracting features from 33 images.
Completed 25 of 33 images.  Time: Calculating...
.Training support vector regressor...

model = 
  brisqueModel with properties:

             Alpha: [31x1 double]
              Bias: 58.0900
    SupportVectors: [31x36 double]
            Kernel: 'gaussian'
             Scale: 0.3729

Read an image of a natural scene that has the same type of distortion as the training images. Display the image.

I = imread('car1.jpg');

Calculate the BRISQUE score for the image using the custom model. Display the score.

brisqueI = brisque(I,model);
fprintf('BRISQUE score for the image is %0.4f.\n',brisqueI)
BRISQUE score for the image is 79.8961.

Input Arguments

collapse all

Reference image datastore, specified as an ImageDatastore object. The datastore must contain 2-D grayscale or 2-D RGB images of data type single, double, int16, uint8, or uint16. The images must have a known set of distortions such as compression artifacts, blurring, or noise.

Human opinion scores, specified as a numeric vector with values in the range [0, 100]. Each element in opinionScores is the human perceptual DMOS value corresponding to an image in the datastore imds. The length of opinionScores is equal to the number of images in imds.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Output Arguments

collapse all

Custom model of image features, returned as a brisqueModel object. model contains a support vector regressor (SVR) with a Gaussian kernel trained to predict the BRISQUE quality score.


[1] Mittal, A., A. K. Moorthy, and A. C. Bovik. "No-Reference Image Quality Assessment in the Spatial Domain." IEEE Transactions on Image Processing. Vol. 21, Number 12, December 2012, pp. 4695–4708.

[2] Mittal, A., A. K. Moorthy, and A. C. Bovik. "Referenceless Image Spatial Quality Evaluation Engine." Presentation at the 45th Asilomar Conference on Signals, Systems and Computers, Pacific Grove, CA, November 2011.

Version History

Introduced in R2017b