Commit 5810a73d authored by Vladislav Vinogradov's avatar Vladislav Vinogradov

CPU implementation of CLAHE

parent 5c327030
...@@ -759,6 +759,21 @@ CV_EXPORTS double compareHist( const SparseMat& H1, const SparseMat& H2, int met ...@@ -759,6 +759,21 @@ CV_EXPORTS double compareHist( const SparseMat& H1, const SparseMat& H2, int met
//! normalizes the grayscale image brightness and contrast by normalizing its histogram //! normalizes the grayscale image brightness and contrast by normalizing its histogram
CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst );
class CV_EXPORTS CLAHE : public Algorithm
{
public:
virtual void apply(InputArray src, OutputArray dst) = 0;
virtual void setClipLimit(double clipLimit) = 0;
virtual double getClipLimit() const = 0;
virtual void setTilesGridSize(Size tileGridSize) = 0;
virtual Size getTilesGridSize() const = 0;
virtual void collectGarbage() = 0;
};
CV_EXPORTS Ptr<CLAHE> createCLAHE(double clipLimit = 40.0, Size tileGridSize = Size(8, 8));
CV_EXPORTS float EMD( InputArray signature1, InputArray signature2, CV_EXPORTS float EMD( InputArray signature1, InputArray signature2,
int distType, InputArray cost=noArray(), int distType, InputArray cost=noArray(),
float* lowerBound=0, OutputArray flow=noArray() ); float* lowerBound=0, OutputArray flow=noArray() );
......
...@@ -115,3 +115,25 @@ PERF_TEST_P(MatSize, equalizeHist, ...@@ -115,3 +115,25 @@ PERF_TEST_P(MatSize, equalizeHist,
SANITY_CHECK(destination); SANITY_CHECK(destination);
} }
typedef tr1::tuple<Size, double> Sz_ClipLimit_t;
typedef TestBaseWithParam<Sz_ClipLimit_t> Sz_ClipLimit;
PERF_TEST_P(Sz_ClipLimit, CLAHE,
testing::Combine(testing::Values(::perf::szVGA, ::perf::sz720p, ::perf::sz1080p),
testing::Values(0.0, 40.0))
)
{
const Size size = get<0>(GetParam());
const double clipLimit = get<1>(GetParam());
Mat src(size, CV_8UC1);
declare.in(src, WARMUP_RNG);
Ptr<CLAHE> clahe = createCLAHE(clipLimit);
Mat dst;
TEST_CYCLE() clahe->apply(src, dst);
SANITY_CHECK(dst);
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment