An implementation of BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) in Python from the paper: "No-Reference Image Quality Assessment in the Spatial Domain".
LibSVM is required. On ubuntu or other debian-based system, you can install libsvm-dev
package from apt as follows:
apt-get install libsvm-dev
The package is in PyPI so you can install it simply by this command:
pip install --process-dependency-links pybrisque
Initialize once:
brisq = BRISQUE()
and get the BRISQUE feature or score many times:
brisq.get_feature('/path')
brisq.get_score('/image_path')
This implementation is heavily adopted from the original Matlab
implementation in here. There is one catch though, the bicubic interpolation when resizing image in
Matlab and OpenCV is a bit different as explained in here. For now, it uses nearest
interpolation
which gives the most similar output with the original implementation.
Comparing with Matlab original implementation on reference images of TID 2008:
And the absolute differences' stat is as follows:
{'min': 0.17222238726479588,
'max': 16.544924728934404,
'mean': 3.9994322498322754,
'std': 3.0715344507521416}