123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870 |
- #ifndef __OPENCV_PHOTO_HPP__
- #define __OPENCV_PHOTO_HPP__
- #include "opencv2/core.hpp"
- #include "opencv2/imgproc.hpp"
- namespace cv
- {
- enum
- {
- INPAINT_NS = 0,
- INPAINT_TELEA = 1
- };
- enum
- {
- NORMAL_CLONE = 1,
- MIXED_CLONE = 2,
- MONOCHROME_TRANSFER = 3
- };
- enum
- {
- RECURS_FILTER = 1,
- NORMCONV_FILTER = 2
- };
- CV_EXPORTS_W void inpaint( InputArray src, InputArray inpaintMask,
- OutputArray dst, double inpaintRadius, int flags );
- CV_EXPORTS_W void fastNlMeansDenoising( InputArray src, OutputArray dst, float h = 3,
- int templateWindowSize = 7, int searchWindowSize = 21);
- CV_EXPORTS_W void fastNlMeansDenoising( InputArray src, OutputArray dst,
- const std::vector<float>& h,
- int templateWindowSize = 7, int searchWindowSize = 21,
- int normType = NORM_L2);
- CV_EXPORTS_W void fastNlMeansDenoisingColored( InputArray src, OutputArray dst,
- float h = 3, float hColor = 3,
- int templateWindowSize = 7, int searchWindowSize = 21);
- CV_EXPORTS_W void fastNlMeansDenoisingMulti( InputArrayOfArrays srcImgs, OutputArray dst,
- int imgToDenoiseIndex, int temporalWindowSize,
- float h = 3, int templateWindowSize = 7, int searchWindowSize = 21);
- CV_EXPORTS_W void fastNlMeansDenoisingMulti( InputArrayOfArrays srcImgs, OutputArray dst,
- int imgToDenoiseIndex, int temporalWindowSize,
- const std::vector<float>& h,
- int templateWindowSize = 7, int searchWindowSize = 21,
- int normType = NORM_L2);
- CV_EXPORTS_W void fastNlMeansDenoisingColoredMulti( InputArrayOfArrays srcImgs, OutputArray dst,
- int imgToDenoiseIndex, int temporalWindowSize,
- float h = 3, float hColor = 3,
- int templateWindowSize = 7, int searchWindowSize = 21);
- CV_EXPORTS_W void denoise_TVL1(const std::vector<Mat>& observations,Mat& result, double lambda=1.0, int niters=30);
- enum { LDR_SIZE = 256 };
- class CV_EXPORTS_W Tonemap : public Algorithm
- {
- public:
-
- CV_WRAP virtual void process(InputArray src, OutputArray dst) = 0;
- CV_WRAP virtual float getGamma() const = 0;
- CV_WRAP virtual void setGamma(float gamma) = 0;
- };
- CV_EXPORTS_W Ptr<Tonemap> createTonemap(float gamma = 1.0f);
- class CV_EXPORTS_W TonemapDrago : public Tonemap
- {
- public:
- CV_WRAP virtual float getSaturation() const = 0;
- CV_WRAP virtual void setSaturation(float saturation) = 0;
- CV_WRAP virtual float getBias() const = 0;
- CV_WRAP virtual void setBias(float bias) = 0;
- };
- CV_EXPORTS_W Ptr<TonemapDrago> createTonemapDrago(float gamma = 1.0f, float saturation = 1.0f, float bias = 0.85f);
- class CV_EXPORTS_W TonemapDurand : public Tonemap
- {
- public:
- CV_WRAP virtual float getSaturation() const = 0;
- CV_WRAP virtual void setSaturation(float saturation) = 0;
- CV_WRAP virtual float getContrast() const = 0;
- CV_WRAP virtual void setContrast(float contrast) = 0;
- CV_WRAP virtual float getSigmaSpace() const = 0;
- CV_WRAP virtual void setSigmaSpace(float sigma_space) = 0;
- CV_WRAP virtual float getSigmaColor() const = 0;
- CV_WRAP virtual void setSigmaColor(float sigma_color) = 0;
- };
- CV_EXPORTS_W Ptr<TonemapDurand>
- createTonemapDurand(float gamma = 1.0f, float contrast = 4.0f, float saturation = 1.0f, float sigma_space = 2.0f, float sigma_color = 2.0f);
- class CV_EXPORTS_W TonemapReinhard : public Tonemap
- {
- public:
- CV_WRAP virtual float getIntensity() const = 0;
- CV_WRAP virtual void setIntensity(float intensity) = 0;
- CV_WRAP virtual float getLightAdaptation() const = 0;
- CV_WRAP virtual void setLightAdaptation(float light_adapt) = 0;
- CV_WRAP virtual float getColorAdaptation() const = 0;
- CV_WRAP virtual void setColorAdaptation(float color_adapt) = 0;
- };
- CV_EXPORTS_W Ptr<TonemapReinhard>
- createTonemapReinhard(float gamma = 1.0f, float intensity = 0.0f, float light_adapt = 1.0f, float color_adapt = 0.0f);
- class CV_EXPORTS_W TonemapMantiuk : public Tonemap
- {
- public:
- CV_WRAP virtual float getScale() const = 0;
- CV_WRAP virtual void setScale(float scale) = 0;
- CV_WRAP virtual float getSaturation() const = 0;
- CV_WRAP virtual void setSaturation(float saturation) = 0;
- };
- CV_EXPORTS_W Ptr<TonemapMantiuk>
- createTonemapMantiuk(float gamma = 1.0f, float scale = 0.7f, float saturation = 1.0f);
- class CV_EXPORTS_W AlignExposures : public Algorithm
- {
- public:
-
- CV_WRAP virtual void process(InputArrayOfArrays src, std::vector<Mat>& dst,
- InputArray times, InputArray response) = 0;
- };
- class CV_EXPORTS_W AlignMTB : public AlignExposures
- {
- public:
- CV_WRAP virtual void process(InputArrayOfArrays src, std::vector<Mat>& dst,
- InputArray times, InputArray response) = 0;
-
- CV_WRAP virtual void process(InputArrayOfArrays src, std::vector<Mat>& dst) = 0;
-
- CV_WRAP virtual Point calculateShift(InputArray img0, InputArray img1) = 0;
-
- CV_WRAP virtual void shiftMat(InputArray src, OutputArray dst, const Point shift) = 0;
-
- CV_WRAP virtual void computeBitmaps(InputArray img, OutputArray tb, OutputArray eb) = 0;
- CV_WRAP virtual int getMaxBits() const = 0;
- CV_WRAP virtual void setMaxBits(int max_bits) = 0;
- CV_WRAP virtual int getExcludeRange() const = 0;
- CV_WRAP virtual void setExcludeRange(int exclude_range) = 0;
- CV_WRAP virtual bool getCut() const = 0;
- CV_WRAP virtual void setCut(bool value) = 0;
- };
- CV_EXPORTS_W Ptr<AlignMTB> createAlignMTB(int max_bits = 6, int exclude_range = 4, bool cut = true);
- class CV_EXPORTS_W CalibrateCRF : public Algorithm
- {
- public:
-
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, InputArray times) = 0;
- };
- class CV_EXPORTS_W CalibrateDebevec : public CalibrateCRF
- {
- public:
- CV_WRAP virtual float getLambda() const = 0;
- CV_WRAP virtual void setLambda(float lambda) = 0;
- CV_WRAP virtual int getSamples() const = 0;
- CV_WRAP virtual void setSamples(int samples) = 0;
- CV_WRAP virtual bool getRandom() const = 0;
- CV_WRAP virtual void setRandom(bool random) = 0;
- };
- CV_EXPORTS_W Ptr<CalibrateDebevec> createCalibrateDebevec(int samples = 70, float lambda = 10.0f, bool random = false);
- class CV_EXPORTS_W CalibrateRobertson : public CalibrateCRF
- {
- public:
- CV_WRAP virtual int getMaxIter() const = 0;
- CV_WRAP virtual void setMaxIter(int max_iter) = 0;
- CV_WRAP virtual float getThreshold() const = 0;
- CV_WRAP virtual void setThreshold(float threshold) = 0;
- CV_WRAP virtual Mat getRadiance() const = 0;
- };
- CV_EXPORTS_W Ptr<CalibrateRobertson> createCalibrateRobertson(int max_iter = 30, float threshold = 0.01f);
- class CV_EXPORTS_W MergeExposures : public Algorithm
- {
- public:
-
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst,
- InputArray times, InputArray response) = 0;
- };
- class CV_EXPORTS_W MergeDebevec : public MergeExposures
- {
- public:
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst,
- InputArray times, InputArray response) = 0;
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, InputArray times) = 0;
- };
- CV_EXPORTS_W Ptr<MergeDebevec> createMergeDebevec();
- class CV_EXPORTS_W MergeMertens : public MergeExposures
- {
- public:
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst,
- InputArray times, InputArray response) = 0;
-
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst) = 0;
- CV_WRAP virtual float getContrastWeight() const = 0;
- CV_WRAP virtual void setContrastWeight(float contrast_weiht) = 0;
- CV_WRAP virtual float getSaturationWeight() const = 0;
- CV_WRAP virtual void setSaturationWeight(float saturation_weight) = 0;
- CV_WRAP virtual float getExposureWeight() const = 0;
- CV_WRAP virtual void setExposureWeight(float exposure_weight) = 0;
- };
- CV_EXPORTS_W Ptr<MergeMertens>
- createMergeMertens(float contrast_weight = 1.0f, float saturation_weight = 1.0f, float exposure_weight = 0.0f);
- class CV_EXPORTS_W MergeRobertson : public MergeExposures
- {
- public:
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst,
- InputArray times, InputArray response) = 0;
- CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, InputArray times) = 0;
- };
- CV_EXPORTS_W Ptr<MergeRobertson> createMergeRobertson();
- CV_EXPORTS_W void decolor( InputArray src, OutputArray grayscale, OutputArray color_boost);
- CV_EXPORTS_W void seamlessClone( InputArray src, InputArray dst, InputArray mask, Point p,
- OutputArray blend, int flags);
- CV_EXPORTS_W void colorChange(InputArray src, InputArray mask, OutputArray dst, float red_mul = 1.0f,
- float green_mul = 1.0f, float blue_mul = 1.0f);
- CV_EXPORTS_W void illuminationChange(InputArray src, InputArray mask, OutputArray dst,
- float alpha = 0.2f, float beta = 0.4f);
- CV_EXPORTS_W void textureFlattening(InputArray src, InputArray mask, OutputArray dst,
- float low_threshold = 30, float high_threshold = 45,
- int kernel_size = 3);
- CV_EXPORTS_W void edgePreservingFilter(InputArray src, OutputArray dst, int flags = 1,
- float sigma_s = 60, float sigma_r = 0.4f);
- CV_EXPORTS_W void detailEnhance(InputArray src, OutputArray dst, float sigma_s = 10,
- float sigma_r = 0.15f);
- CV_EXPORTS_W void pencilSketch(InputArray src, OutputArray dst1, OutputArray dst2,
- float sigma_s = 60, float sigma_r = 0.07f, float shade_factor = 0.02f);
- CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 60,
- float sigma_r = 0.45f);
- }
- #ifndef DISABLE_OPENCV_24_COMPATIBILITY
- #include "opencv2/photo/photo_c.h"
- #endif
- #endif
|