nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
quality.hpp
Go to the documentation of this file.
1
3// toolboxes/image/include/nk/image/quality/quality.hpp
4//
5// Image-quality metrics.
6
7#pragma once
8
9#include <memory_resource>
10#include <vector>
11#include <nk/value/value.hpp>
12
13namespace nk::image {
14
17
18
28Value immse(const Value &A, const Value &B,
29 std::pmr::memory_resource *mr = nullptr);
30
43Value psnr(const Value &A, const Value &B, double peak,
44 std::pmr::memory_resource *mr = nullptr);
45
57Value ssim(const Value &A, const Value &B,
58 std::pmr::memory_resource *mr = nullptr);
59
70Value corr2(const Value &A, const Value &B,
71 std::pmr::memory_resource *mr = nullptr);
72
82Value mean2(const Value &A, std::pmr::memory_resource *mr = nullptr);
83
92Value std2(const Value &A, std::pmr::memory_resource *mr = nullptr);
93
148Value multissim(const Value &A, const Value &Iref,
149 int num_scales,
150 const std::vector<double> &scale_weights,
151 double sigma, double dynamic_range,
152 std::vector<Value> *quality_maps_out,
153 std::pmr::memory_resource *mr = nullptr);
154
186Value multissim3(const Value &V, const Value &Vref,
187 int num_scales,
188 const std::vector<double> &scale_weights,
189 double sigma, double dynamic_range,
190 std::vector<Value> *quality_maps_out,
191 std::pmr::memory_resource *mr = nullptr);
192
193
195} // namespace nk::image
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value psnr(const Value &A, const Value &B, double peak, std::pmr::memory_resource *mr=nullptr)
Peak signal-to-noise ratio (r = psnr(A, B, peak)).
Value multissim(const Value &A, const Value &Iref, int num_scales, const std::vector< double > &scale_weights, double sigma, double dynamic_range, std::vector< Value > *quality_maps_out, std::pmr::memory_resource *mr=nullptr)
Multi-scale structural similarity index ([score, qmaps] = multissim(I, Iref, ...)).
Value std2(const Value &A, std::pmr::memory_resource *mr=nullptr)
Standard deviation of every element (s = std2(A)).
Value immse(const Value &A, const Value &B, std::pmr::memory_resource *mr=nullptr)
Mean squared error (err = immse(A, B)).
Value corr2(const Value &A, const Value &B, std::pmr::memory_resource *mr=nullptr)
2-D correlation coefficient (r = corr2(A, B)).
Value mean2(const Value &A, std::pmr::memory_resource *mr=nullptr)
Mean of every element (m = mean2(A)).
Value ssim(const Value &A, const Value &B, std::pmr::memory_resource *mr=nullptr)
Structural similarity index (r = ssim(A, B)).
Value multissim3(const Value &V, const Value &Vref, int num_scales, const std::vector< double > &scale_weights, double sigma, double dynamic_range, std::vector< Value > *quality_maps_out, std::pmr::memory_resource *mr=nullptr)
3-D multi-scale SSIM ([score, qmaps] = multissim3(V, Vref, ...)).