All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Flexible OpenCV dependencies - OpenCV is no longer a hard dependency
- Users can now choose their preferred OpenCV variant:
pip install brisque[opencv-python]- Desktop applications with GUIpip install brisque[opencv-python-headless]- Servers/Docker (recommended)pip install brisque[opencv-contrib-python]- Desktop with extra modulespip install brisque[opencv-contrib-python-headless]- Servers with extra modules
- Users with existing OpenCV installations can install brisque without conflicts
- Helpful error message when OpenCV is missing with installation instructions
- Users can now choose their preferred OpenCV variant:
- requirements.txt - Replaced by
requirements-dev.txtfor development only- Users should rely on
setup.pyfor package installation requirements-dev.txtcontains only development dependencies (pytest, black, etc.)
- Users should rely on
- Improved build configuration in
pyproject.toml(removed runtime dependencies from build-system) - Updated minimum Python version requirement to 3.7+
- Updated classifiers to reflect current Python version support (3.7-3.12)
- From v0.1.x: No code changes required. Your existing code will work.
- If upgrading:
pip install --upgrade brisque(your OpenCV will be detected) - For new installs:
pip install brisque[opencv-python-headless](or your preferred variant)
- If upgrading:
- BRISQUETrainer class - Complete training workflow for custom BRISQUE models
add_image(image, score)- Add single image with quality scoreadd_dataset(image_dir, scores_file)- Load images and scores from CSVtrain(svm_c, svm_gamma, svm_epsilon, kernel)- Train SVM regression modelsave_model(svm_path, norm_path)- Save trained model for later useevaluate(images, scores)- Evaluate model performance (RMSE, PLCC, SROCC)clear()- Reset trainer state
- Custom model support - BRISQUE class now accepts custom trained models
model_pathparameter in BRISQUE constructor for custom model files
- Comprehensive test suite - 56 tests covering all functionality
- Documentation - Docstrings for all public methods and classes
- scipy compatibility - Added workaround for libsvm's use of deprecated
scipy.ndarray- Works with scipy 1.8+ which removed
scipy.ndarray
- Works with scipy 1.8+ which removed
- Feature extraction - Fixed array conversion issues in trainer module
- Image handling - Better support for various image formats:
- RGBA images (alpha channel removed)
- Grayscale images
- Single-channel images with 3D shape (H, W, 1)
- Float images normalized to [0, 1]
- Version bumped from 0.0.18 to 0.1.0
- Improved error messages for invalid inputs
- No changes to dependencies - uses same libsvm, scipy, numpy, opencv-python, scikit-image
- Original BRISQUE implementation with pre-trained model
- Basic quality scoring functionality