HImage.h 242 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952
  1. /***********************************************************
  2. * File generated by the HALCON-Compiler hcomp version 20.11
  3. * Usage: Interface to C++
  4. *
  5. * Software by: MVTec Software GmbH, www.mvtec.com
  6. ***********************************************************/
  7. #ifndef HCPP_HIMAGE
  8. #define HCPP_HIMAGE
  9. namespace HalconCpp
  10. {
  11. // Represents an instance of an image object(-array).
  12. class LIntExport HImage : public HObject
  13. {
  14. public:
  15. // Create an uninitialized instance
  16. HImage():HObject() {}
  17. // Copy constructor
  18. HImage(const HImage& source) : HObject(source) {}
  19. // Copy constructor
  20. HImage(const HObject& object);
  21. // Create HImage from object id. For copy=false takes
  22. // over management of input key. Type of key must match!
  23. explicit HImage(Hkey key, bool copy=true);
  24. // Access of object tuple element
  25. const HImage operator [] (Hlong index) const;
  26. // Deep copy of all data represented by this object instance
  27. HImage Clone() const;
  28. /*****************************************************************************
  29. * Operator-based class constructors
  30. *****************************************************************************/
  31. // gen_image1: Create an image from a pointer to the pixels.
  32. explicit HImage(const HString& Type, Hlong Width, Hlong Height, void* PixelPointer);
  33. // gen_image1: Create an image from a pointer to the pixels.
  34. explicit HImage(const char* Type, Hlong Width, Hlong Height, void* PixelPointer);
  35. #ifdef _WIN32
  36. // gen_image1: Create an image from a pointer to the pixels.
  37. explicit HImage(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointer);
  38. #endif
  39. // gen_image_const: Create an image with constant gray value.
  40. explicit HImage(const HString& Type, Hlong Width, Hlong Height);
  41. // gen_image_const: Create an image with constant gray value.
  42. explicit HImage(const char* Type, Hlong Width, Hlong Height);
  43. #ifdef _WIN32
  44. // gen_image_const: Create an image with constant gray value.
  45. explicit HImage(const wchar_t* Type, Hlong Width, Hlong Height);
  46. #endif
  47. // read_image: Read an image with different file formats.
  48. explicit HImage(const HTuple& FileName);
  49. // read_image: Read an image with different file formats.
  50. explicit HImage(const HString& FileName);
  51. // read_image: Read an image with different file formats.
  52. explicit HImage(const char* FileName);
  53. #ifdef _WIN32
  54. // read_image: Read an image with different file formats.
  55. explicit HImage(const wchar_t* FileName);
  56. #endif
  57. /*****************************************************************************
  58. * Operator overloads (non-member overloads reside in HOperatorOverloads.h) *
  59. *****************************************************************************/
  60. // Invert image
  61. HImage operator - () const;
  62. // Convert image to domain region
  63. operator HRegion() const;
  64. /*****************************************************************************
  65. * Non-generic convenience members
  66. *****************************************************************************/
  67. // The area of the region
  68. HTuple Width() const;
  69. // The center row of the region
  70. HTuple Height() const;
  71. /***************************************************************************
  72. * Operators *
  73. ***************************************************************************/
  74. // Image restoration by Wiener filtering.
  75. HImage WienerFilterNi(const HImage& Psf, const HRegion& NoiseRegion, Hlong MaskWidth, Hlong MaskHeight) const;
  76. // Image restoration by Wiener filtering.
  77. HImage WienerFilter(const HImage& Psf, const HImage& FilteredImage) const;
  78. // Generate an impulse response of a (linearly) motion blurring.
  79. void GenPsfMotion(Hlong PSFwidth, Hlong PSFheight, double Blurring, Hlong Angle, Hlong Type);
  80. // Simulation of (linearly) motion blur.
  81. HImage SimulateMotion(double Blurring, Hlong Angle, Hlong Type) const;
  82. // Generate an impulse response of an uniform out-of-focus blurring.
  83. void GenPsfDefocus(Hlong PSFwidth, Hlong PSFheight, double Blurring);
  84. // Simulate an uniform out-of-focus blurring of an image.
  85. HImage SimulateDefocus(double Blurring) const;
  86. // Compare an image to a variation model.
  87. HRegion CompareExtVariationModel(const HVariationModel& ModelID, const HString& Mode) const;
  88. // Compare an image to a variation model.
  89. HRegion CompareExtVariationModel(const HVariationModel& ModelID, const char* Mode) const;
  90. #ifdef _WIN32
  91. // Compare an image to a variation model.
  92. HRegion CompareExtVariationModel(const HVariationModel& ModelID, const wchar_t* Mode) const;
  93. #endif
  94. // Compare an image to a variation model.
  95. HRegion CompareVariationModel(const HVariationModel& ModelID) const;
  96. // Train a variation model.
  97. void TrainVariationModel(const HVariationModel& ModelID) const;
  98. // Compute a projective transformation matrix and the radial distortion coefficient between two images by finding correspondences between points based on known approximations of the projective transformation matrix and the radial distortion coefficient.
  99. HHomMat2D ProjMatchPointsDistortionRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double KappaGuide, double DistanceTolerance, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  100. // Compute a projective transformation matrix and the radial distortion coefficient between two images by finding correspondences between points based on known approximations of the projective transformation matrix and the radial distortion coefficient.
  101. HHomMat2D ProjMatchPointsDistortionRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double KappaGuide, double DistanceTolerance, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  102. // Compute a projective transformation matrix and the radial distortion coefficient between two images by finding correspondences between points based on known approximations of the projective transformation matrix and the radial distortion coefficient.
  103. HHomMat2D ProjMatchPointsDistortionRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double KappaGuide, double DistanceTolerance, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  104. #ifdef _WIN32
  105. // Compute a projective transformation matrix and the radial distortion coefficient between two images by finding correspondences between points based on known approximations of the projective transformation matrix and the radial distortion coefficient.
  106. HHomMat2D ProjMatchPointsDistortionRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double KappaGuide, double DistanceTolerance, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  107. #endif
  108. // Compute a projective transformation matrix between two images and the radial distortion coefficient by automatically finding correspondences between points.
  109. HHomMat2D ProjMatchPointsDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  110. // Compute a projective transformation matrix between two images and the radial distortion coefficient by automatically finding correspondences between points.
  111. HHomMat2D ProjMatchPointsDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  112. // Compute a projective transformation matrix between two images and the radial distortion coefficient by automatically finding correspondences between points.
  113. HHomMat2D ProjMatchPointsDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  114. #ifdef _WIN32
  115. // Compute a projective transformation matrix between two images and the radial distortion coefficient by automatically finding correspondences between points.
  116. HHomMat2D ProjMatchPointsDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  117. #endif
  118. // Compute a projective transformation matrix between two images by finding correspondences between points based on a known approximation of the projective transformation matrix.
  119. HHomMat2D ProjMatchPointsRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double DistanceTolerance, const HTuple& MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  120. // Compute a projective transformation matrix between two images by finding correspondences between points based on a known approximation of the projective transformation matrix.
  121. HHomMat2D ProjMatchPointsRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double DistanceTolerance, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  122. // Compute a projective transformation matrix between two images by finding correspondences between points based on a known approximation of the projective transformation matrix.
  123. HHomMat2D ProjMatchPointsRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double DistanceTolerance, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  124. #ifdef _WIN32
  125. // Compute a projective transformation matrix between two images by finding correspondences between points based on a known approximation of the projective transformation matrix.
  126. HHomMat2D ProjMatchPointsRansacGuided(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, const HHomMat2D& HomMat2DGuide, double DistanceTolerance, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  127. #endif
  128. // Compute a projective transformation matrix between two images by finding correspondences between points.
  129. HHomMat2D ProjMatchPointsRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  130. // Compute a projective transformation matrix between two images by finding correspondences between points.
  131. HHomMat2D ProjMatchPointsRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  132. // Compute a projective transformation matrix between two images by finding correspondences between points.
  133. HHomMat2D ProjMatchPointsRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  134. #ifdef _WIN32
  135. // Compute a projective transformation matrix between two images by finding correspondences between points.
  136. HHomMat2D ProjMatchPointsRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* Points1, HTuple* Points2) const;
  137. #endif
  138. // Receive an image over a socket connection.
  139. void ReceiveImage(const HSocket& Socket);
  140. // Send an image over a socket connection.
  141. void SendImage(const HSocket& Socket) const;
  142. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  143. HImage BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  144. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  145. HImage BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const;
  146. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  147. HImage BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const;
  148. #ifdef _WIN32
  149. // Compute the distance values for a rectified stereo image pair using multi-scanline optimization.
  150. HImage BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const;
  151. #endif
  152. // Compute the disparities of a rectified stereo image pair using multi-scanline optimization.
  153. HImage BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  154. // Compute the disparities of a rectified stereo image pair using multi-scanline optimization.
  155. HImage BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const;
  156. // Compute the disparities of a rectified stereo image pair using multi-scanline optimization.
  157. HImage BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const;
  158. #ifdef _WIN32
  159. // Compute the disparities of a rectified stereo image pair using multi-scanline optimization.
  160. HImage BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const wchar_t* GenParamName, const wchar_t* GenParamValue) const;
  161. #endif
  162. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  163. HImage BinocularDistanceMg(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const;
  164. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  165. HImage BinocularDistanceMg(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HString& MGParamName, const HString& MGParamValue) const;
  166. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  167. HImage BinocularDistanceMg(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const char* CalculateScore, const char* MGParamName, const char* MGParamValue) const;
  168. #ifdef _WIN32
  169. // Compute the distance values for a rectified stereo image pair using multigrid methods.
  170. HImage BinocularDistanceMg(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const wchar_t* CalculateScore, const wchar_t* MGParamName, const wchar_t* MGParamValue) const;
  171. #endif
  172. // Compute the disparities of a rectified stereo image pair using multigrid methods.
  173. HImage BinocularDisparityMg(const HImage& ImageRect2, HImage* Score, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HTuple& MGParamName, const HTuple& MGParamValue) const;
  174. // Compute the disparities of a rectified stereo image pair using multigrid methods.
  175. HImage BinocularDisparityMg(const HImage& ImageRect2, HImage* Score, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const HString& CalculateScore, const HString& MGParamName, const HString& MGParamValue) const;
  176. // Compute the disparities of a rectified stereo image pair using multigrid methods.
  177. HImage BinocularDisparityMg(const HImage& ImageRect2, HImage* Score, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const char* CalculateScore, const char* MGParamName, const char* MGParamValue) const;
  178. #ifdef _WIN32
  179. // Compute the disparities of a rectified stereo image pair using multigrid methods.
  180. HImage BinocularDisparityMg(const HImage& ImageRect2, HImage* Score, double GrayConstancy, double GradientConstancy, double Smoothness, double InitialGuess, const wchar_t* CalculateScore, const wchar_t* MGParamName, const wchar_t* MGParamValue) const;
  181. #endif
  182. // Compute the projective rectification of weakly calibrated binocular stereo images.
  183. HImage GenBinocularProjRectification(const HHomMat2D& FMatrix, const HTuple& CovFMat, Hlong Width1, Hlong Height1, Hlong Width2, Hlong Height2, const HTuple& SubSampling, const HString& Mapping, HTuple* CovFMatRect, HHomMat2D* H1, HHomMat2D* H2);
  184. // Compute the projective rectification of weakly calibrated binocular stereo images.
  185. HImage GenBinocularProjRectification(const HHomMat2D& FMatrix, const HTuple& CovFMat, Hlong Width1, Hlong Height1, Hlong Width2, Hlong Height2, Hlong SubSampling, const HString& Mapping, HTuple* CovFMatRect, HHomMat2D* H1, HHomMat2D* H2);
  186. // Compute the projective rectification of weakly calibrated binocular stereo images.
  187. HImage GenBinocularProjRectification(const HHomMat2D& FMatrix, const HTuple& CovFMat, Hlong Width1, Hlong Height1, Hlong Width2, Hlong Height2, Hlong SubSampling, const char* Mapping, HTuple* CovFMatRect, HHomMat2D* H1, HHomMat2D* H2);
  188. #ifdef _WIN32
  189. // Compute the projective rectification of weakly calibrated binocular stereo images.
  190. HImage GenBinocularProjRectification(const HHomMat2D& FMatrix, const HTuple& CovFMat, Hlong Width1, Hlong Height1, Hlong Width2, Hlong Height2, Hlong SubSampling, const wchar_t* Mapping, HTuple* CovFMatRect, HHomMat2D* H1, HHomMat2D* H2);
  191. #endif
  192. // Compute the fundamental matrix and the radial distortion coefficient for a pair of stereo images by automatically finding correspondences between image points.
  193. HHomMat2D MatchFundamentalMatrixDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  194. // Compute the fundamental matrix and the radial distortion coefficient for a pair of stereo images by automatically finding correspondences between image points.
  195. HHomMat2D MatchFundamentalMatrixDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  196. // Compute the fundamental matrix and the radial distortion coefficient for a pair of stereo images by automatically finding correspondences between image points.
  197. HHomMat2D MatchFundamentalMatrixDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  198. #ifdef _WIN32
  199. // Compute the fundamental matrix and the radial distortion coefficient for a pair of stereo images by automatically finding correspondences between image points.
  200. HHomMat2D MatchFundamentalMatrixDistortionRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, double* Kappa, double* Error, HTuple* Points1, HTuple* Points2) const;
  201. #endif
  202. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  203. HPose MatchRelPoseRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar1, const HCamPar& CamPar2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, HTuple* Error, HTuple* Points1, HTuple* Points2) const;
  204. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  205. HPose MatchRelPoseRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar1, const HCamPar& CamPar2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  206. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  207. HPose MatchRelPoseRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar1, const HCamPar& CamPar2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  208. #ifdef _WIN32
  209. // Compute the relative orientation between two cameras by automatically finding correspondences between image points.
  210. HPose MatchRelPoseRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HCamPar& CamPar1, const HCamPar& CamPar2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovRelPose, double* Error, HTuple* Points1, HTuple* Points2) const;
  211. #endif
  212. // Compute the essential matrix for a pair of stereo images by automatically finding correspondences between image points.
  213. HHomMat2D MatchEssentialMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HHomMat2D& CamMat1, const HHomMat2D& CamMat2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, HTuple* CovEMat, HTuple* Error, HTuple* Points1, HTuple* Points2) const;
  214. // Compute the essential matrix for a pair of stereo images by automatically finding correspondences between image points.
  215. HHomMat2D MatchEssentialMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HHomMat2D& CamMat1, const HHomMat2D& CamMat2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovEMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  216. // Compute the essential matrix for a pair of stereo images by automatically finding correspondences between image points.
  217. HHomMat2D MatchEssentialMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HHomMat2D& CamMat1, const HHomMat2D& CamMat2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovEMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  218. #ifdef _WIN32
  219. // Compute the essential matrix for a pair of stereo images by automatically finding correspondences between image points.
  220. HHomMat2D MatchEssentialMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HHomMat2D& CamMat1, const HHomMat2D& CamMat2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovEMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  221. #endif
  222. // Compute the fundamental matrix for a pair of stereo images by automatically finding correspondences between image points.
  223. HHomMat2D MatchFundamentalMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, const HTuple& Rotation, const HTuple& MatchThreshold, const HString& EstimationMethod, const HTuple& DistanceThreshold, Hlong RandSeed, HTuple* CovFMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  224. // Compute the fundamental matrix for a pair of stereo images by automatically finding correspondences between image points.
  225. HHomMat2D MatchFundamentalMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HString& GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const HString& EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovFMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  226. // Compute the fundamental matrix for a pair of stereo images by automatically finding correspondences between image points.
  227. HHomMat2D MatchFundamentalMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const char* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const char* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovFMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  228. #ifdef _WIN32
  229. // Compute the fundamental matrix for a pair of stereo images by automatically finding correspondences between image points.
  230. HHomMat2D MatchFundamentalMatrixRansac(const HImage& Image2, const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const wchar_t* GrayMatchMethod, Hlong MaskSize, Hlong RowMove, Hlong ColMove, Hlong RowTolerance, Hlong ColTolerance, double Rotation, Hlong MatchThreshold, const wchar_t* EstimationMethod, double DistanceThreshold, Hlong RandSeed, HTuple* CovFMat, double* Error, HTuple* Points1, HTuple* Points2) const;
  231. #endif
  232. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  233. HImage BinocularDistance(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, const HTuple& TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, const HTuple& ScoreThresh, const HTuple& Filter, const HTuple& SubDistance) const;
  234. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  235. HImage BinocularDistance(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const HString& Filter, const HString& SubDistance) const;
  236. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  237. HImage BinocularDistance(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const char* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const char* Filter, const char* SubDistance) const;
  238. #ifdef _WIN32
  239. // Compute the distance values for a rectified stereo image pair using correlation techniques.
  240. HImage BinocularDistance(const HImage& ImageRect2, HImage* Score, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect, const wchar_t* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const wchar_t* Filter, const wchar_t* SubDistance) const;
  241. #endif
  242. // Compute the disparities of a rectified image pair using correlation techniques.
  243. HImage BinocularDisparity(const HImage& ImageRect2, HImage* Score, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, const HTuple& TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, const HTuple& ScoreThresh, const HTuple& Filter, const HString& SubDisparity) const;
  244. // Compute the disparities of a rectified image pair using correlation techniques.
  245. HImage BinocularDisparity(const HImage& ImageRect2, HImage* Score, const HString& Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const HString& Filter, const HString& SubDisparity) const;
  246. // Compute the disparities of a rectified image pair using correlation techniques.
  247. HImage BinocularDisparity(const HImage& ImageRect2, HImage* Score, const char* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const char* Filter, const char* SubDisparity) const;
  248. #ifdef _WIN32
  249. // Compute the disparities of a rectified image pair using correlation techniques.
  250. HImage BinocularDisparity(const HImage& ImageRect2, HImage* Score, const wchar_t* Method, Hlong MaskWidth, Hlong MaskHeight, double TextureThresh, Hlong MinDisparity, Hlong MaxDisparity, Hlong NumLevels, double ScoreThresh, const wchar_t* Filter, const wchar_t* SubDisparity) const;
  251. #endif
  252. // Transform a disparity image into 3D points in a rectified stereo system.
  253. HImage DisparityImageToXyz(HImage* Y, HImage* Z, const HCamPar& CamParamRect1, const HCamPar& CamParamRect2, const HPose& RelPoseRect) const;
  254. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  255. HImage GenBinocularRectificationMap(const HCamPar& CamParam1, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const HString& Method, const HString& MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect);
  256. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  257. HImage GenBinocularRectificationMap(const HCamPar& CamParam1, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const char* Method, const char* MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect);
  258. #ifdef _WIN32
  259. // Generate transformation maps that describe the mapping of the images of a binocular camera pair to a common rectified image plane.
  260. HImage GenBinocularRectificationMap(const HCamPar& CamParam1, const HCamPar& CamParam2, const HPose& RelPose, double SubSampling, const wchar_t* Method, const wchar_t* MapType, HCamPar* CamParamRect1, HCamPar* CamParamRect2, HPose* CamPoseRect1, HPose* CamPoseRect2, HPose* RelPoseRect);
  261. #endif
  262. // Get the iconic results of a measurement performed with the sheet-of light technique.
  263. void GetSheetOfLightResult(const HSheetOfLightModel& SheetOfLightModelID, const HTuple& ResultName);
  264. // Get the iconic results of a measurement performed with the sheet-of light technique.
  265. void GetSheetOfLightResult(const HSheetOfLightModel& SheetOfLightModelID, const HString& ResultName);
  266. // Get the iconic results of a measurement performed with the sheet-of light technique.
  267. void GetSheetOfLightResult(const HSheetOfLightModel& SheetOfLightModelID, const char* ResultName);
  268. #ifdef _WIN32
  269. // Get the iconic results of a measurement performed with the sheet-of light technique.
  270. void GetSheetOfLightResult(const HSheetOfLightModel& SheetOfLightModelID, const wchar_t* ResultName);
  271. #endif
  272. // Apply the calibration transformations to the input disparity image.
  273. void ApplySheetOfLightCalibration(const HSheetOfLightModel& SheetOfLightModelID) const;
  274. // Set sheet of light profiles by measured disparities.
  275. void SetProfileSheetOfLight(const HSheetOfLightModel& SheetOfLightModelID, const HTuple& MovementPoses) const;
  276. // Process the profile image provided as input and store the resulting disparity to the sheet-of-light model.
  277. void MeasureProfileSheetOfLight(const HSheetOfLightModel& SheetOfLightModelID, const HTuple& MovementPose) const;
  278. // Shade a height field.
  279. HImage ShadeHeightField(const HTuple& Slant, const HTuple& Tilt, const HTuple& Albedo, const HTuple& Ambient, const HString& Shadows) const;
  280. // Shade a height field.
  281. HImage ShadeHeightField(double Slant, double Tilt, double Albedo, double Ambient, const HString& Shadows) const;
  282. // Shade a height field.
  283. HImage ShadeHeightField(double Slant, double Tilt, double Albedo, double Ambient, const char* Shadows) const;
  284. #ifdef _WIN32
  285. // Shade a height field.
  286. HImage ShadeHeightField(double Slant, double Tilt, double Albedo, double Ambient, const wchar_t* Shadows) const;
  287. #endif
  288. // Estimate the albedo of a surface and the amount of ambient light.
  289. HTuple EstimateAlAm(HTuple* Ambient) const;
  290. // Estimate the albedo of a surface and the amount of ambient light.
  291. double EstimateAlAm(double* Ambient) const;
  292. // Estimate the slant of a light source and the albedo of a surface.
  293. HTuple EstimateSlAlZc(HTuple* Albedo) const;
  294. // Estimate the slant of a light source and the albedo of a surface.
  295. double EstimateSlAlZc(double* Albedo) const;
  296. // Estimate the slant of a light source and the albedo of a surface.
  297. HTuple EstimateSlAlLr(HTuple* Albedo) const;
  298. // Estimate the slant of a light source and the albedo of a surface.
  299. double EstimateSlAlLr(double* Albedo) const;
  300. // Estimate the tilt of a light source.
  301. HTuple EstimateTiltZc() const;
  302. // Estimate the tilt of a light source.
  303. HTuple EstimateTiltLr() const;
  304. // Reconstruct a surface from surface gradients.
  305. HImage ReconstructHeightFieldFromGradient(const HString& ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  306. // Reconstruct a surface from surface gradients.
  307. HImage ReconstructHeightFieldFromGradient(const char* ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  308. #ifdef _WIN32
  309. // Reconstruct a surface from surface gradients.
  310. HImage ReconstructHeightFieldFromGradient(const wchar_t* ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  311. #endif
  312. // Reconstruct a surface according to the photometric stereo technique.
  313. HImage PhotometricStereo(HImage* Gradient, HImage* Albedo, const HTuple& Slants, const HTuple& Tilts, const HTuple& ResultType, const HString& ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  314. // Reconstruct a surface according to the photometric stereo technique.
  315. HImage PhotometricStereo(HImage* Gradient, HImage* Albedo, const HTuple& Slants, const HTuple& Tilts, const HTuple& ResultType, const char* ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  316. #ifdef _WIN32
  317. // Reconstruct a surface according to the photometric stereo technique.
  318. HImage PhotometricStereo(HImage* Gradient, HImage* Albedo, const HTuple& Slants, const HTuple& Tilts, const HTuple& ResultType, const wchar_t* ReconstructionMethod, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  319. #endif
  320. // Reconstruct a surface from a gray value image.
  321. HImage SfsPentland(const HTuple& Slant, const HTuple& Tilt, const HTuple& Albedo, const HTuple& Ambient) const;
  322. // Reconstruct a surface from a gray value image.
  323. HImage SfsPentland(double Slant, double Tilt, double Albedo, double Ambient) const;
  324. // Reconstruct a surface from a gray value image.
  325. HImage SfsOrigLr(const HTuple& Slant, const HTuple& Tilt, const HTuple& Albedo, const HTuple& Ambient) const;
  326. // Reconstruct a surface from a gray value image.
  327. HImage SfsOrigLr(double Slant, double Tilt, double Albedo, double Ambient) const;
  328. // Reconstruct a surface from a gray value image.
  329. HImage SfsModLr(const HTuple& Slant, const HTuple& Tilt, const HTuple& Albedo, const HTuple& Ambient) const;
  330. // Reconstruct a surface from a gray value image.
  331. HImage SfsModLr(double Slant, double Tilt, double Albedo, double Ambient) const;
  332. // Find text in an image.
  333. HTextResult FindText(const HTextModel& TextModel) const;
  334. // Classify a byte image using a look-up table.
  335. HRegion ClassifyImageClassLut(const HClassLUT& ClassLUTHandle) const;
  336. // Classify an image with a k-Nearest-Neighbor classifier.
  337. HRegion ClassifyImageClassKnn(HImage* DistanceImage, const HClassKnn& KNNHandle, double RejectionThreshold) const;
  338. // Add training samples from an image to the training data of a k-Nearest-Neighbor classifier.
  339. void AddSamplesImageClassKnn(const HRegion& ClassRegions, const HClassKnn& KNNHandle) const;
  340. // Classify an image with a Gaussian Mixture Model.
  341. HRegion ClassifyImageClassGmm(const HClassGmm& GMMHandle, double RejectionThreshold) const;
  342. // Add training samples from an image to the training data of a Gaussian Mixture Model.
  343. void AddSamplesImageClassGmm(const HRegion& ClassRegions, const HClassGmm& GMMHandle, double Randomize) const;
  344. // Classify an image with a support vector machine.
  345. HRegion ClassifyImageClassSvm(const HClassSvm& SVMHandle) const;
  346. // Add training samples from an image to the training data of a support vector machine.
  347. void AddSamplesImageClassSvm(const HRegion& ClassRegions, const HClassSvm& SVMHandle) const;
  348. // Classify an image with a multilayer perceptron.
  349. HRegion ClassifyImageClassMlp(const HClassMlp& MLPHandle, double RejectionThreshold) const;
  350. // Add training samples from an image to the training data of a multilayer perceptron.
  351. void AddSamplesImageClassMlp(const HRegion& ClassRegions, const HClassMlp& MLPHandle) const;
  352. // Construct classes for class_ndim_norm.
  353. HTuple LearnNdimNorm(const HRegion& Foreground, const HRegion& Background, const HString& Metric, const HTuple& Distance, const HTuple& MinNumberPercent, HTuple* Center, double* Quality) const;
  354. // Construct classes for class_ndim_norm.
  355. HTuple LearnNdimNorm(const HRegion& Foreground, const HRegion& Background, const HString& Metric, double Distance, double MinNumberPercent, HTuple* Center, double* Quality) const;
  356. // Construct classes for class_ndim_norm.
  357. HTuple LearnNdimNorm(const HRegion& Foreground, const HRegion& Background, const char* Metric, double Distance, double MinNumberPercent, HTuple* Center, double* Quality) const;
  358. #ifdef _WIN32
  359. // Construct classes for class_ndim_norm.
  360. HTuple LearnNdimNorm(const HRegion& Foreground, const HRegion& Background, const wchar_t* Metric, double Distance, double MinNumberPercent, HTuple* Center, double* Quality) const;
  361. #endif
  362. // Train a classificator using a multi-channel image.
  363. void LearnNdimBox(const HRegion& Foreground, const HRegion& Background, const HClassBox& ClassifHandle) const;
  364. // Classify pixels using hyper-cuboids.
  365. HRegion ClassNdimBox(const HClassBox& ClassifHandle) const;
  366. // Classify pixels using hyper-spheres or hyper-cubes.
  367. HRegion ClassNdimNorm(const HString& Metric, const HString& SingleMultiple, const HTuple& Radius, const HTuple& Center) const;
  368. // Classify pixels using hyper-spheres or hyper-cubes.
  369. HRegion ClassNdimNorm(const HString& Metric, const HString& SingleMultiple, double Radius, double Center) const;
  370. // Classify pixels using hyper-spheres or hyper-cubes.
  371. HRegion ClassNdimNorm(const char* Metric, const char* SingleMultiple, double Radius, double Center) const;
  372. #ifdef _WIN32
  373. // Classify pixels using hyper-spheres or hyper-cubes.
  374. HRegion ClassNdimNorm(const wchar_t* Metric, const wchar_t* SingleMultiple, double Radius, double Center) const;
  375. #endif
  376. // Segment an image using two-dimensional pixel classification.
  377. HRegion Class2dimSup(const HImage& ImageRow, const HRegion& FeatureSpace) const;
  378. // Segment two images by clustering.
  379. HRegion Class2dimUnsup(const HImage& Image2, Hlong Threshold, Hlong NumClasses) const;
  380. // Compare two images pixel by pixel.
  381. HRegion CheckDifference(const HImage& Pattern, const HString& Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const;
  382. // Compare two images pixel by pixel.
  383. HRegion CheckDifference(const HImage& Pattern, const char* Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const;
  384. #ifdef _WIN32
  385. // Compare two images pixel by pixel.
  386. HRegion CheckDifference(const HImage& Pattern, const wchar_t* Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const;
  387. #endif
  388. // Perform a threshold segmentation for extracting characters.
  389. HRegion CharThreshold(const HRegion& HistoRegion, double Sigma, const HTuple& Percent, HTuple* Threshold) const;
  390. // Perform a threshold segmentation for extracting characters.
  391. HRegion CharThreshold(const HRegion& HistoRegion, double Sigma, double Percent, Hlong* Threshold) const;
  392. // Extract regions with equal gray values from an image.
  393. HRegion LabelToRegion() const;
  394. // Suppress non-maximum points on an edge.
  395. HImage NonmaxSuppressionAmp(const HString& Mode) const;
  396. // Suppress non-maximum points on an edge.
  397. HImage NonmaxSuppressionAmp(const char* Mode) const;
  398. #ifdef _WIN32
  399. // Suppress non-maximum points on an edge.
  400. HImage NonmaxSuppressionAmp(const wchar_t* Mode) const;
  401. #endif
  402. // Suppress non-maximum points on an edge using a direction image.
  403. HImage NonmaxSuppressionDir(const HImage& ImgDir, const HString& Mode) const;
  404. // Suppress non-maximum points on an edge using a direction image.
  405. HImage NonmaxSuppressionDir(const HImage& ImgDir, const char* Mode) const;
  406. #ifdef _WIN32
  407. // Suppress non-maximum points on an edge using a direction image.
  408. HImage NonmaxSuppressionDir(const HImage& ImgDir, const wchar_t* Mode) const;
  409. #endif
  410. // Perform a hysteresis threshold operation on an image.
  411. HRegion HysteresisThreshold(const HTuple& Low, const HTuple& High, Hlong MaxLength) const;
  412. // Perform a hysteresis threshold operation on an image.
  413. HRegion HysteresisThreshold(Hlong Low, Hlong High, Hlong MaxLength) const;
  414. // Segment an image using binary thresholding.
  415. HRegion BinaryThreshold(const HString& Method, const HString& LightDark, HTuple* UsedThreshold) const;
  416. // Segment an image using binary thresholding.
  417. HRegion BinaryThreshold(const HString& Method, const HString& LightDark, Hlong* UsedThreshold) const;
  418. // Segment an image using binary thresholding.
  419. HRegion BinaryThreshold(const char* Method, const char* LightDark, Hlong* UsedThreshold) const;
  420. #ifdef _WIN32
  421. // Segment an image using binary thresholding.
  422. HRegion BinaryThreshold(const wchar_t* Method, const wchar_t* LightDark, Hlong* UsedThreshold) const;
  423. #endif
  424. // Segment an image using local thresholding.
  425. HRegion LocalThreshold(const HString& Method, const HString& LightDark, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  426. // Segment an image using local thresholding.
  427. HRegion LocalThreshold(const HString& Method, const HString& LightDark, const HString& GenParamName, Hlong GenParamValue) const;
  428. // Segment an image using local thresholding.
  429. HRegion LocalThreshold(const char* Method, const char* LightDark, const char* GenParamName, Hlong GenParamValue) const;
  430. #ifdef _WIN32
  431. // Segment an image using local thresholding.
  432. HRegion LocalThreshold(const wchar_t* Method, const wchar_t* LightDark, const wchar_t* GenParamName, Hlong GenParamValue) const;
  433. #endif
  434. // Threshold an image by local mean and standard deviation analysis.
  435. HRegion VarThreshold(Hlong MaskWidth, Hlong MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HString& LightDark) const;
  436. // Threshold an image by local mean and standard deviation analysis.
  437. HRegion VarThreshold(Hlong MaskWidth, Hlong MaskHeight, double StdDevScale, double AbsThreshold, const HString& LightDark) const;
  438. // Threshold an image by local mean and standard deviation analysis.
  439. HRegion VarThreshold(Hlong MaskWidth, Hlong MaskHeight, double StdDevScale, double AbsThreshold, const char* LightDark) const;
  440. #ifdef _WIN32
  441. // Threshold an image by local mean and standard deviation analysis.
  442. HRegion VarThreshold(Hlong MaskWidth, Hlong MaskHeight, double StdDevScale, double AbsThreshold, const wchar_t* LightDark) const;
  443. #endif
  444. // Segment an image using a local threshold.
  445. HRegion DynThreshold(const HImage& ThresholdImage, const HTuple& Offset, const HString& LightDark) const;
  446. // Segment an image using a local threshold.
  447. HRegion DynThreshold(const HImage& ThresholdImage, double Offset, const HString& LightDark) const;
  448. // Segment an image using a local threshold.
  449. HRegion DynThreshold(const HImage& ThresholdImage, double Offset, const char* LightDark) const;
  450. #ifdef _WIN32
  451. // Segment an image using a local threshold.
  452. HRegion DynThreshold(const HImage& ThresholdImage, double Offset, const wchar_t* LightDark) const;
  453. #endif
  454. // Segment an image using global threshold.
  455. HRegion Threshold(const HTuple& MinGray, const HTuple& MaxGray) const;
  456. // Segment an image using global threshold.
  457. HRegion Threshold(double MinGray, double MaxGray) const;
  458. // Extract level crossings from an image with subpixel accuracy.
  459. HXLDCont ThresholdSubPix(const HTuple& Threshold) const;
  460. // Extract level crossings from an image with subpixel accuracy.
  461. HXLDCont ThresholdSubPix(double Threshold) const;
  462. // Segment an image using regiongrowing for multi-channel images.
  463. HRegion RegiongrowingN(const HString& Metric, const HTuple& MinTolerance, const HTuple& MaxTolerance, Hlong MinSize) const;
  464. // Segment an image using regiongrowing for multi-channel images.
  465. HRegion RegiongrowingN(const HString& Metric, double MinTolerance, double MaxTolerance, Hlong MinSize) const;
  466. // Segment an image using regiongrowing for multi-channel images.
  467. HRegion RegiongrowingN(const char* Metric, double MinTolerance, double MaxTolerance, Hlong MinSize) const;
  468. #ifdef _WIN32
  469. // Segment an image using regiongrowing for multi-channel images.
  470. HRegion RegiongrowingN(const wchar_t* Metric, double MinTolerance, double MaxTolerance, Hlong MinSize) const;
  471. #endif
  472. // Segment an image using regiongrowing.
  473. HRegion Regiongrowing(Hlong RasterHeight, Hlong RasterWidth, const HTuple& Tolerance, Hlong MinSize) const;
  474. // Segment an image using regiongrowing.
  475. HRegion Regiongrowing(Hlong RasterHeight, Hlong RasterWidth, double Tolerance, Hlong MinSize) const;
  476. // Perform a regiongrowing using mean gray values.
  477. HRegion RegiongrowingMean(const HTuple& StartRows, const HTuple& StartColumns, double Tolerance, Hlong MinSize) const;
  478. // Perform a regiongrowing using mean gray values.
  479. HRegion RegiongrowingMean(Hlong StartRows, Hlong StartColumns, double Tolerance, Hlong MinSize) const;
  480. // Segment an image by "pouring water" over it.
  481. HRegion Pouring(const HString& Mode, Hlong MinGray, Hlong MaxGray) const;
  482. // Segment an image by "pouring water" over it.
  483. HRegion Pouring(const char* Mode, Hlong MinGray, Hlong MaxGray) const;
  484. #ifdef _WIN32
  485. // Segment an image by "pouring water" over it.
  486. HRegion Pouring(const wchar_t* Mode, Hlong MinGray, Hlong MaxGray) const;
  487. #endif
  488. // Extract watershed basins from an image using a threshold.
  489. HRegion WatershedsThreshold(const HTuple& Threshold) const;
  490. // Extract watershed basins from an image using a threshold.
  491. HRegion WatershedsThreshold(Hlong Threshold) const;
  492. // Extract watersheds and basins from an image.
  493. HRegion Watersheds(HRegion* Watersheds) const;
  494. // Extract zero crossings from an image.
  495. HRegion ZeroCrossing() const;
  496. // Extract zero crossings from an image with subpixel accuracy.
  497. HXLDCont ZeroCrossingSubPix() const;
  498. // Threshold operator for signed images.
  499. HRegion DualThreshold(Hlong MinSize, double MinGray, double Threshold) const;
  500. // Expand a region starting at a given line.
  501. HRegion ExpandLine(Hlong Coordinate, const HString& ExpandType, const HString& RowColumn, const HTuple& Threshold) const;
  502. // Expand a region starting at a given line.
  503. HRegion ExpandLine(Hlong Coordinate, const HString& ExpandType, const HString& RowColumn, double Threshold) const;
  504. // Expand a region starting at a given line.
  505. HRegion ExpandLine(Hlong Coordinate, const char* ExpandType, const char* RowColumn, double Threshold) const;
  506. #ifdef _WIN32
  507. // Expand a region starting at a given line.
  508. HRegion ExpandLine(Hlong Coordinate, const wchar_t* ExpandType, const wchar_t* RowColumn, double Threshold) const;
  509. #endif
  510. // Detect all local minima in an image.
  511. HRegion LocalMin() const;
  512. // Detect all gray value lowlands.
  513. HRegion Lowlands() const;
  514. // Detect the centers of all gray value lowlands.
  515. HRegion LowlandsCenter() const;
  516. // Detect all local maxima in an image.
  517. HRegion LocalMax() const;
  518. // Detect all gray value plateaus.
  519. HRegion Plateaus() const;
  520. // Detect the centers of all gray value plateaus.
  521. HRegion PlateausCenter() const;
  522. // Segment an image using thresholds determined from its histogram.
  523. HRegion AutoThreshold(const HTuple& Sigma) const;
  524. // Segment an image using thresholds determined from its histogram.
  525. HRegion AutoThreshold(double Sigma) const;
  526. // Segment an image using an automatically determined threshold.
  527. HRegion BinThreshold() const;
  528. // Fast thresholding of images using global thresholds.
  529. HRegion FastThreshold(const HTuple& MinGray, const HTuple& MaxGray, Hlong MinSize) const;
  530. // Fast thresholding of images using global thresholds.
  531. HRegion FastThreshold(double MinGray, double MaxGray, Hlong MinSize) const;
  532. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  533. HRegion ExpandGray(const HRegion& Regions, const HRegion& ForbiddenArea, const HTuple& Iterations, const HString& Mode, const HTuple& Threshold) const;
  534. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  535. HRegion ExpandGray(const HRegion& Regions, const HRegion& ForbiddenArea, const HString& Iterations, const HString& Mode, Hlong Threshold) const;
  536. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  537. HRegion ExpandGray(const HRegion& Regions, const HRegion& ForbiddenArea, const char* Iterations, const char* Mode, Hlong Threshold) const;
  538. #ifdef _WIN32
  539. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  540. HRegion ExpandGray(const HRegion& Regions, const HRegion& ForbiddenArea, const wchar_t* Iterations, const wchar_t* Mode, Hlong Threshold) const;
  541. #endif
  542. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  543. HRegion ExpandGrayRef(const HRegion& Regions, const HRegion& ForbiddenArea, const HTuple& Iterations, const HString& Mode, const HTuple& RefGray, const HTuple& Threshold) const;
  544. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  545. HRegion ExpandGrayRef(const HRegion& Regions, const HRegion& ForbiddenArea, const HString& Iterations, const HString& Mode, Hlong RefGray, Hlong Threshold) const;
  546. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  547. HRegion ExpandGrayRef(const HRegion& Regions, const HRegion& ForbiddenArea, const char* Iterations, const char* Mode, Hlong RefGray, Hlong Threshold) const;
  548. #ifdef _WIN32
  549. // Fill gaps between regions (depending on gray value or color) or split overlapping regions.
  550. HRegion ExpandGrayRef(const HRegion& Regions, const HRegion& ForbiddenArea, const wchar_t* Iterations, const wchar_t* Mode, Hlong RefGray, Hlong Threshold) const;
  551. #endif
  552. // Calculate the difference of two object tuples.
  553. HImage ObjDiff(const HImage& ObjectsSub) const;
  554. // Set single gray values in an image.
  555. void SetGrayval(const HTuple& Row, const HTuple& Column, const HTuple& Grayval) const;
  556. // Set single gray values in an image.
  557. void SetGrayval(Hlong Row, Hlong Column, double Grayval) const;
  558. // Paint XLD objects into an image.
  559. HImage PaintXld(const HXLD& XLD, const HTuple& Grayval) const;
  560. // Paint XLD objects into an image.
  561. HImage PaintXld(const HXLD& XLD, double Grayval) const;
  562. // Paint regions into an image.
  563. HImage PaintRegion(const HRegion& Region, const HTuple& Grayval, const HString& Type) const;
  564. // Paint regions into an image.
  565. HImage PaintRegion(const HRegion& Region, double Grayval, const HString& Type) const;
  566. // Paint regions into an image.
  567. HImage PaintRegion(const HRegion& Region, double Grayval, const char* Type) const;
  568. #ifdef _WIN32
  569. // Paint regions into an image.
  570. HImage PaintRegion(const HRegion& Region, double Grayval, const wchar_t* Type) const;
  571. #endif
  572. // Overpaint regions in an image.
  573. void OverpaintRegion(const HRegion& Region, const HTuple& Grayval, const HString& Type) const;
  574. // Overpaint regions in an image.
  575. void OverpaintRegion(const HRegion& Region, double Grayval, const HString& Type) const;
  576. // Overpaint regions in an image.
  577. void OverpaintRegion(const HRegion& Region, double Grayval, const char* Type) const;
  578. #ifdef _WIN32
  579. // Overpaint regions in an image.
  580. void OverpaintRegion(const HRegion& Region, double Grayval, const wchar_t* Type) const;
  581. #endif
  582. // Create an image with a specified constant gray value.
  583. HImage GenImageProto(const HTuple& Grayval) const;
  584. // Create an image with a specified constant gray value.
  585. HImage GenImageProto(double Grayval) const;
  586. // Paint the gray values of an image into another image.
  587. HImage PaintGray(const HImage& ImageDestination) const;
  588. // Overpaint the gray values of an image.
  589. void OverpaintGray(const HImage& ImageSource) const;
  590. // Copy an iconic object in the HALCON database.
  591. HImage CopyObj(Hlong Index, Hlong NumObj) const;
  592. // Concatenate two iconic object tuples.
  593. HImage ConcatObj(const HImage& Objects2) const;
  594. // Copy an image and allocate new memory for it.
  595. HImage CopyImage() const;
  596. // Select objects from an object tuple.
  597. HImage SelectObj(const HTuple& Index) const;
  598. // Select objects from an object tuple.
  599. HImage SelectObj(Hlong Index) const;
  600. // Compare iconic objects regarding equality.
  601. Hlong CompareObj(const HImage& Objects2, const HTuple& Epsilon) const;
  602. // Compare iconic objects regarding equality.
  603. Hlong CompareObj(const HImage& Objects2, double Epsilon) const;
  604. // Compare image objects regarding equality.
  605. Hlong TestEqualObj(const HImage& Objects2) const;
  606. // Create a three-channel image from a pointer to the interleaved pixels.
  607. void GenImageInterleaved(void* PixelPointer, const HString& ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const HString& Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift);
  608. // Create a three-channel image from a pointer to the interleaved pixels.
  609. void GenImageInterleaved(void* PixelPointer, const char* ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const char* Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift);
  610. #ifdef _WIN32
  611. // Create a three-channel image from a pointer to the interleaved pixels.
  612. void GenImageInterleaved(void* PixelPointer, const wchar_t* ColorFormat, Hlong OriginalWidth, Hlong OriginalHeight, Hlong Alignment, const wchar_t* Type, Hlong ImageWidth, Hlong ImageHeight, Hlong StartRow, Hlong StartColumn, Hlong BitsPerChannel, Hlong BitShift);
  613. #endif
  614. // Create an image from three pointers to the pixels (red/green/blue).
  615. void GenImage3(const HString& Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue);
  616. // Create an image from three pointers to the pixels (red/green/blue).
  617. void GenImage3(const char* Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue);
  618. #ifdef _WIN32
  619. // Create an image from three pointers to the pixels (red/green/blue).
  620. void GenImage3(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointerRed, void* PixelPointerGreen, void* PixelPointerBlue);
  621. #endif
  622. // Create an image from a pointer to the pixels.
  623. void GenImage1(const HString& Type, Hlong Width, Hlong Height, void* PixelPointer);
  624. // Create an image from a pointer to the pixels.
  625. void GenImage1(const char* Type, Hlong Width, Hlong Height, void* PixelPointer);
  626. #ifdef _WIN32
  627. // Create an image from a pointer to the pixels.
  628. void GenImage1(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointer);
  629. #endif
  630. // Create an image with constant gray value.
  631. void GenImageConst(const HString& Type, Hlong Width, Hlong Height);
  632. // Create an image with constant gray value.
  633. void GenImageConst(const char* Type, Hlong Width, Hlong Height);
  634. #ifdef _WIN32
  635. // Create an image with constant gray value.
  636. void GenImageConst(const wchar_t* Type, Hlong Width, Hlong Height);
  637. #endif
  638. // Create a gray value ramp.
  639. void GenImageGrayRamp(double Alpha, double Beta, double Mean, Hlong Row, Hlong Column, Hlong Width, Hlong Height);
  640. // Create a three-channel image from three pointers on the pixels with storage management.
  641. void GenImage3Extern(const HString& Type, Hlong Width, Hlong Height, void* PointerRed, void* PointerGreen, void* PointerBlue, void* ClearProc);
  642. // Create a three-channel image from three pointers on the pixels with storage management.
  643. void GenImage3Extern(const char* Type, Hlong Width, Hlong Height, void* PointerRed, void* PointerGreen, void* PointerBlue, void* ClearProc);
  644. #ifdef _WIN32
  645. // Create a three-channel image from three pointers on the pixels with storage management.
  646. void GenImage3Extern(const wchar_t* Type, Hlong Width, Hlong Height, void* PointerRed, void* PointerGreen, void* PointerBlue, void* ClearProc);
  647. #endif
  648. // Create an image from a pointer on the pixels with storage management.
  649. void GenImage1Extern(const HString& Type, Hlong Width, Hlong Height, void* PixelPointer, void* ClearProc);
  650. // Create an image from a pointer on the pixels with storage management.
  651. void GenImage1Extern(const char* Type, Hlong Width, Hlong Height, void* PixelPointer, void* ClearProc);
  652. #ifdef _WIN32
  653. // Create an image from a pointer on the pixels with storage management.
  654. void GenImage1Extern(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointer, void* ClearProc);
  655. #endif
  656. // Create an image with a rectangular domain from a pointer on the pixels (with storage management).
  657. void GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const HString& DoCopy, void* ClearProc);
  658. // Create an image with a rectangular domain from a pointer on the pixels (with storage management).
  659. void GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const char* DoCopy, void* ClearProc);
  660. #ifdef _WIN32
  661. // Create an image with a rectangular domain from a pointer on the pixels (with storage management).
  662. void GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const wchar_t* DoCopy, void* ClearProc);
  663. #endif
  664. // Access to the image data pointer and the image data inside the smallest rectangle of the domain of the input image.
  665. void* GetImagePointer1Rect(Hlong* Width, Hlong* Height, Hlong* VerticalPitch, Hlong* HorizontalBitPitch, Hlong* BitsPerPixel) const;
  666. // Access the pointers of a colored image.
  667. void GetImagePointer3(HTuple* PointerRed, HTuple* PointerGreen, HTuple* PointerBlue, HTuple* Type, HTuple* Width, HTuple* Height) const;
  668. // Access the pointers of a colored image.
  669. void GetImagePointer3(void** PointerRed, void** PointerGreen, void** PointerBlue, HString* Type, Hlong* Width, Hlong* Height) const;
  670. // Access the pointer of a channel.
  671. HTuple GetImagePointer1(HTuple* Type, HTuple* Width, HTuple* Height) const;
  672. // Access the pointer of a channel.
  673. void* GetImagePointer1(HString* Type, Hlong* Width, Hlong* Height) const;
  674. // Return the type of an image.
  675. HTuple GetImageType() const;
  676. // Return the size of an image.
  677. void GetImageSize(HTuple* Width, HTuple* Height) const;
  678. // Return the size of an image.
  679. void GetImageSize(Hlong* Width, Hlong* Height) const;
  680. // Request time at which the image was created.
  681. Hlong GetImageTime(Hlong* Second, Hlong* Minute, Hlong* Hour, Hlong* Day, Hlong* YDay, Hlong* Month, Hlong* Year) const;
  682. // Return gray values of an image at the positions given by tuples of rows and columns.
  683. HTuple GetGrayvalInterpolated(const HTuple& Row, const HTuple& Column, const HString& Interpolation) const;
  684. // Return gray values of an image at the positions given by tuples of rows and columns.
  685. double GetGrayvalInterpolated(double Row, double Column, const HString& Interpolation) const;
  686. // Return gray values of an image at the positions given by tuples of rows and columns.
  687. double GetGrayvalInterpolated(double Row, double Column, const char* Interpolation) const;
  688. #ifdef _WIN32
  689. // Return gray values of an image at the positions given by tuples of rows and columns.
  690. double GetGrayvalInterpolated(double Row, double Column, const wchar_t* Interpolation) const;
  691. #endif
  692. // Access the gray values of an image object.
  693. HTuple GetGrayval(const HTuple& Row, const HTuple& Column) const;
  694. // Access the gray values of an image object.
  695. HTuple GetGrayval(Hlong Row, Hlong Column) const;
  696. // Verification of a pattern using an OCV tool.
  697. HTuple DoOcvSimple(const HOCV& OCVHandle, const HTuple& PatternName, const HString& AdaptPos, const HString& AdaptSize, const HString& AdaptAngle, const HString& AdaptGray, double Threshold) const;
  698. // Verification of a pattern using an OCV tool.
  699. double DoOcvSimple(const HOCV& OCVHandle, const HString& PatternName, const HString& AdaptPos, const HString& AdaptSize, const HString& AdaptAngle, const HString& AdaptGray, double Threshold) const;
  700. // Verification of a pattern using an OCV tool.
  701. double DoOcvSimple(const HOCV& OCVHandle, const char* PatternName, const char* AdaptPos, const char* AdaptSize, const char* AdaptAngle, const char* AdaptGray, double Threshold) const;
  702. #ifdef _WIN32
  703. // Verification of a pattern using an OCV tool.
  704. double DoOcvSimple(const HOCV& OCVHandle, const wchar_t* PatternName, const wchar_t* AdaptPos, const wchar_t* AdaptSize, const wchar_t* AdaptAngle, const wchar_t* AdaptGray, double Threshold) const;
  705. #endif
  706. // Training of an OCV tool.
  707. void TraindOcvProj(const HOCV& OCVHandle, const HTuple& Name, const HString& Mode) const;
  708. // Training of an OCV tool.
  709. void TraindOcvProj(const HOCV& OCVHandle, const HString& Name, const HString& Mode) const;
  710. // Training of an OCV tool.
  711. void TraindOcvProj(const HOCV& OCVHandle, const char* Name, const char* Mode) const;
  712. #ifdef _WIN32
  713. // Training of an OCV tool.
  714. void TraindOcvProj(const HOCV& OCVHandle, const wchar_t* Name, const wchar_t* Mode) const;
  715. #endif
  716. // Compute the features of a character.
  717. HTuple GetFeaturesOcrClassKnn(const HOCRKnn& OCRHandle, const HString& Transform) const;
  718. // Compute the features of a character.
  719. HTuple GetFeaturesOcrClassKnn(const HOCRKnn& OCRHandle, const char* Transform) const;
  720. #ifdef _WIN32
  721. // Compute the features of a character.
  722. HTuple GetFeaturesOcrClassKnn(const HOCRKnn& OCRHandle, const wchar_t* Transform) const;
  723. #endif
  724. // Compute the features of a character.
  725. HTuple GetFeaturesOcrClassSvm(const HOCRSvm& OCRHandle, const HString& Transform) const;
  726. // Compute the features of a character.
  727. HTuple GetFeaturesOcrClassSvm(const HOCRSvm& OCRHandle, const char* Transform) const;
  728. #ifdef _WIN32
  729. // Compute the features of a character.
  730. HTuple GetFeaturesOcrClassSvm(const HOCRSvm& OCRHandle, const wchar_t* Transform) const;
  731. #endif
  732. // Compute the features of a character.
  733. HTuple GetFeaturesOcrClassMlp(const HOCRMlp& OCRHandle, const HString& Transform) const;
  734. // Compute the features of a character.
  735. HTuple GetFeaturesOcrClassMlp(const HOCRMlp& OCRHandle, const char* Transform) const;
  736. #ifdef _WIN32
  737. // Compute the features of a character.
  738. HTuple GetFeaturesOcrClassMlp(const HOCRMlp& OCRHandle, const wchar_t* Transform) const;
  739. #endif
  740. // Cut out an image area relative to the domain.
  741. HImage CropDomainRel(Hlong Top, Hlong Left, Hlong Bottom, Hlong Right) const;
  742. // Access the features which correspond to a character.
  743. HTuple OcrGetFeatures(const HOCRBox& OcrHandle) const;
  744. // Write characters into a training file.
  745. void WriteOcrTrainfImage(const HTuple& Class, const HString& TrainingFile) const;
  746. // Write characters into a training file.
  747. void WriteOcrTrainfImage(const HString& Class, const HString& TrainingFile) const;
  748. // Write characters into a training file.
  749. void WriteOcrTrainfImage(const char* Class, const char* TrainingFile) const;
  750. #ifdef _WIN32
  751. // Write characters into a training file.
  752. void WriteOcrTrainfImage(const wchar_t* Class, const wchar_t* TrainingFile) const;
  753. #endif
  754. // Read training specific characters from files and convert to images.
  755. HTuple ReadOcrTrainfSelect(const HTuple& TrainingFile, const HTuple& SearchNames);
  756. // Read training specific characters from files and convert to images.
  757. HString ReadOcrTrainfSelect(const HString& TrainingFile, const HString& SearchNames);
  758. // Read training specific characters from files and convert to images.
  759. HString ReadOcrTrainfSelect(const char* TrainingFile, const char* SearchNames);
  760. #ifdef _WIN32
  761. // Read training specific characters from files and convert to images.
  762. HString ReadOcrTrainfSelect(const wchar_t* TrainingFile, const wchar_t* SearchNames);
  763. #endif
  764. // Read training characters from files and convert to images.
  765. HTuple ReadOcrTrainf(const HTuple& TrainingFile);
  766. // Read training characters from files and convert to images.
  767. HTuple ReadOcrTrainf(const HString& TrainingFile);
  768. // Read training characters from files and convert to images.
  769. HTuple ReadOcrTrainf(const char* TrainingFile);
  770. #ifdef _WIN32
  771. // Read training characters from files and convert to images.
  772. HTuple ReadOcrTrainf(const wchar_t* TrainingFile);
  773. #endif
  774. // Perform a gray value bottom hat transformation on an image.
  775. HImage GrayBothat(const HImage& SE) const;
  776. // Perform a gray value top hat transformation on an image.
  777. HImage GrayTophat(const HImage& SE) const;
  778. // Perform a gray value closing on an image.
  779. HImage GrayClosing(const HImage& SE) const;
  780. // Perform a gray value opening on an image.
  781. HImage GrayOpening(const HImage& SE) const;
  782. // Perform a gray value dilation on an image.
  783. HImage GrayDilation(const HImage& SE) const;
  784. // Perform a gray value erosion on an image.
  785. HImage GrayErosion(const HImage& SE) const;
  786. // Load a structuring element for gray morphology.
  787. void ReadGraySe(const HString& FileName);
  788. // Load a structuring element for gray morphology.
  789. void ReadGraySe(const char* FileName);
  790. #ifdef _WIN32
  791. // Load a structuring element for gray morphology.
  792. void ReadGraySe(const wchar_t* FileName);
  793. #endif
  794. // Generate ellipsoidal structuring elements for gray morphology.
  795. void GenDiscSe(const HString& Type, Hlong Width, Hlong Height, const HTuple& Smax);
  796. // Generate ellipsoidal structuring elements for gray morphology.
  797. void GenDiscSe(const HString& Type, Hlong Width, Hlong Height, double Smax);
  798. // Generate ellipsoidal structuring elements for gray morphology.
  799. void GenDiscSe(const char* Type, Hlong Width, Hlong Height, double Smax);
  800. #ifdef _WIN32
  801. // Generate ellipsoidal structuring elements for gray morphology.
  802. void GenDiscSe(const wchar_t* Type, Hlong Width, Hlong Height, double Smax);
  803. #endif
  804. // Extracting points with a particular gray value along a rectangle or an annular arc.
  805. void MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const HString& Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const;
  806. // Extracting points with a particular gray value along a rectangle or an annular arc.
  807. void MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const char* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const;
  808. #ifdef _WIN32
  809. // Extracting points with a particular gray value along a rectangle or an annular arc.
  810. void MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const wchar_t* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const;
  811. #endif
  812. // Extract a gray value profile perpendicular to a rectangle or annular arc.
  813. HTuple MeasureProjection(const HMeasure& MeasureHandle) const;
  814. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  815. void FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const HString& Transition, const HString& Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const;
  816. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  817. void FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const char* Transition, const char* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const;
  818. #ifdef _WIN32
  819. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  820. void FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const wchar_t* Transition, const wchar_t* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const;
  821. #endif
  822. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  823. void FuzzyMeasurePairs(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const HString& Transition, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowEdgeCenter, HTuple* ColumnEdgeCenter, HTuple* FuzzyScore, HTuple* IntraDistance, HTuple* InterDistance) const;
  824. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  825. void FuzzyMeasurePairs(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const char* Transition, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowEdgeCenter, HTuple* ColumnEdgeCenter, HTuple* FuzzyScore, HTuple* IntraDistance, HTuple* InterDistance) const;
  826. #ifdef _WIN32
  827. // Extract straight edge pairs perpendicular to a rectangle or an annular arc.
  828. void FuzzyMeasurePairs(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const wchar_t* Transition, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowEdgeCenter, HTuple* ColumnEdgeCenter, HTuple* FuzzyScore, HTuple* IntraDistance, HTuple* InterDistance) const;
  829. #endif
  830. // Extract straight edges perpendicular to a rectangle or an annular arc.
  831. void FuzzyMeasurePos(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const HString& Transition, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* FuzzyScore, HTuple* Distance) const;
  832. // Extract straight edges perpendicular to a rectangle or an annular arc.
  833. void FuzzyMeasurePos(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const char* Transition, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* FuzzyScore, HTuple* Distance) const;
  834. #ifdef _WIN32
  835. // Extract straight edges perpendicular to a rectangle or an annular arc.
  836. void FuzzyMeasurePos(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const wchar_t* Transition, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* FuzzyScore, HTuple* Distance) const;
  837. #endif
  838. // Extract straight edge pairs perpendicular to a rectangle or annular arc.
  839. void MeasurePairs(const HMeasure& MeasureHandle, double Sigma, double Threshold, const HString& Transition, const HString& Select, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* IntraDistance, HTuple* InterDistance) const;
  840. // Extract straight edge pairs perpendicular to a rectangle or annular arc.
  841. void MeasurePairs(const HMeasure& MeasureHandle, double Sigma, double Threshold, const char* Transition, const char* Select, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* IntraDistance, HTuple* InterDistance) const;
  842. #ifdef _WIN32
  843. // Extract straight edge pairs perpendicular to a rectangle or annular arc.
  844. void MeasurePairs(const HMeasure& MeasureHandle, double Sigma, double Threshold, const wchar_t* Transition, const wchar_t* Select, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* IntraDistance, HTuple* InterDistance) const;
  845. #endif
  846. // Extract straight edges perpendicular to a rectangle or annular arc.
  847. void MeasurePos(const HMeasure& MeasureHandle, double Sigma, double Threshold, const HString& Transition, const HString& Select, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* Distance) const;
  848. // Extract straight edges perpendicular to a rectangle or annular arc.
  849. void MeasurePos(const HMeasure& MeasureHandle, double Sigma, double Threshold, const char* Transition, const char* Select, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* Distance) const;
  850. #ifdef _WIN32
  851. // Extract straight edges perpendicular to a rectangle or annular arc.
  852. void MeasurePos(const HMeasure& MeasureHandle, double Sigma, double Threshold, const wchar_t* Transition, const wchar_t* Select, HTuple* RowEdge, HTuple* ColumnEdge, HTuple* Amplitude, HTuple* Distance) const;
  853. #endif
  854. // Identify objects with a sample identifier.
  855. HTuple ApplySampleIdentifier(const HSampleIdentifier& SampleIdentifier, Hlong NumResults, double RatingThreshold, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Rating) const;
  856. // Identify objects with a sample identifier.
  857. Hlong ApplySampleIdentifier(const HSampleIdentifier& SampleIdentifier, Hlong NumResults, double RatingThreshold, const HTuple& GenParamName, const HTuple& GenParamValue, double* Rating) const;
  858. // Add training data to an existing sample identifier.
  859. Hlong AddSampleIdentifierTrainingData(const HSampleIdentifier& SampleIdentifier, const HTuple& ObjectIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  860. // Add training data to an existing sample identifier.
  861. Hlong AddSampleIdentifierTrainingData(const HSampleIdentifier& SampleIdentifier, Hlong ObjectIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  862. // Add preparation data to an existing sample identifier.
  863. Hlong AddSampleIdentifierPreparationData(const HSampleIdentifier& SampleIdentifier, const HTuple& ObjectIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  864. // Add preparation data to an existing sample identifier.
  865. Hlong AddSampleIdentifierPreparationData(const HSampleIdentifier& SampleIdentifier, Hlong ObjectIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  866. // Determine the parameters of a shape model.
  867. HTuple DetermineShapeModelParams(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& ScaleMin, const HTuple& ScaleMax, const HString& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& Parameters, HTuple* ParameterValue) const;
  868. // Determine the parameters of a shape model.
  869. HTuple DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast, const HString& Parameters, HTuple* ParameterValue) const;
  870. // Determine the parameters of a shape model.
  871. HTuple DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast, const char* Parameters, HTuple* ParameterValue) const;
  872. #ifdef _WIN32
  873. // Determine the parameters of a shape model.
  874. HTuple DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast, const wchar_t* Parameters, HTuple* ParameterValue) const;
  875. #endif
  876. // Find the best matches of multiple anisotropically scaled shape models.
  877. void FindAnisoShapeModels(const HShapeModelArray& ModelIDs, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleCMin, const HTuple& ScaleCMax, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, const HTuple& Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score, HTuple* Model) const;
  878. // Find the best matches of multiple anisotropically scaled shape models.
  879. void FindAnisoShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score, HTuple* Model) const;
  880. // Find the best matches of multiple anisotropically scaled shape models.
  881. void FindAnisoShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score, HTuple* Model) const;
  882. #ifdef _WIN32
  883. // Find the best matches of multiple anisotropically scaled shape models.
  884. void FindAnisoShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score, HTuple* Model) const;
  885. #endif
  886. // Find the best matches of multiple isotropically scaled shape models.
  887. void FindScaledShapeModels(const HShapeModelArray& ModelIDs, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ScaleMin, const HTuple& ScaleMax, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, const HTuple& Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score, HTuple* Model) const;
  888. // Find the best matches of multiple isotropically scaled shape models.
  889. void FindScaledShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score, HTuple* Model) const;
  890. // Find the best matches of multiple isotropically scaled shape models.
  891. void FindScaledShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score, HTuple* Model) const;
  892. #ifdef _WIN32
  893. // Find the best matches of multiple isotropically scaled shape models.
  894. void FindScaledShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score, HTuple* Model) const;
  895. #endif
  896. // Find the best matches of multiple shape models.
  897. void FindShapeModels(const HShapeModelArray& ModelIDs, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, const HTuple& Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  898. // Find the best matches of multiple shape models.
  899. void FindShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  900. // Find the best matches of multiple shape models.
  901. void FindShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  902. #ifdef _WIN32
  903. // Find the best matches of multiple shape models.
  904. void FindShapeModels(const HShapeModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  905. #endif
  906. // Find the best matches of an anisotropically scaled shape model in an image.
  907. void FindAnisoShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, const HTuple& MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score) const;
  908. // Find the best matches of an anisotropically scaled shape model in an image.
  909. void FindAnisoShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score) const;
  910. // Find the best matches of an anisotropically scaled shape model in an image.
  911. void FindAnisoShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score) const;
  912. #ifdef _WIN32
  913. // Find the best matches of an anisotropically scaled shape model in an image.
  914. void FindAnisoShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* ScaleR, HTuple* ScaleC, HTuple* Score) const;
  915. #endif
  916. // Find the best matches of an isotropically scaled shape model in an image.
  917. void FindScaledShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const HTuple& MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score) const;
  918. // Find the best matches of an isotropically scaled shape model in an image.
  919. void FindScaledShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score) const;
  920. // Find the best matches of an isotropically scaled shape model in an image.
  921. void FindScaledShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score) const;
  922. #ifdef _WIN32
  923. // Find the best matches of an isotropically scaled shape model in an image.
  924. void FindScaledShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Scale, HTuple* Score) const;
  925. #endif
  926. // Find the best matches of a shape model in an image.
  927. void FindShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, const HTuple& MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  928. // Find the best matches of a shape model in an image.
  929. void FindShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  930. // Find the best matches of a shape model in an image.
  931. void FindShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  932. #ifdef _WIN32
  933. // Find the best matches of a shape model in an image.
  934. void FindShapeModel(const HShapeModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, double Greediness, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  935. #endif
  936. // Set the metric of a shape model that was created from XLD contours.
  937. void SetShapeModelMetric(const HShapeModel& ModelID, const HHomMat2D& HomMat2D, const HString& Metric) const;
  938. // Set the metric of a shape model that was created from XLD contours.
  939. void SetShapeModelMetric(const HShapeModel& ModelID, const HHomMat2D& HomMat2D, const char* Metric) const;
  940. #ifdef _WIN32
  941. // Set the metric of a shape model that was created from XLD contours.
  942. void SetShapeModelMetric(const HShapeModel& ModelID, const HHomMat2D& HomMat2D, const wchar_t* Metric) const;
  943. #endif
  944. // Set selected parameters of the shape model.
  945. static void SetShapeModelParam(const HShapeModel& ModelID, const HTuple& GenParamName, const HTuple& GenParamValue);
  946. // Prepare an anisotropically scaled shape model for matching.
  947. HShapeModel CreateAnisoShapeModel(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, double ScaleRMin, double ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, double ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast) const;
  948. // Prepare an anisotropically scaled shape model for matching.
  949. HShapeModel CreateAnisoShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast) const;
  950. // Prepare an anisotropically scaled shape model for matching.
  951. HShapeModel CreateAnisoShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast) const;
  952. #ifdef _WIN32
  953. // Prepare an anisotropically scaled shape model for matching.
  954. HShapeModel CreateAnisoShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleRMin, double ScaleRMax, double ScaleRStep, double ScaleCMin, double ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast) const;
  955. #endif
  956. // Prepare an isotropically scaled shape model for matching.
  957. HShapeModel CreateScaledShapeModel(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, double ScaleMin, double ScaleMax, const HTuple& ScaleStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast) const;
  958. // Prepare an isotropically scaled shape model for matching.
  959. HShapeModel CreateScaledShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleMin, double ScaleMax, double ScaleStep, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast) const;
  960. // Prepare an isotropically scaled shape model for matching.
  961. HShapeModel CreateScaledShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleMin, double ScaleMax, double ScaleStep, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast) const;
  962. #ifdef _WIN32
  963. // Prepare an isotropically scaled shape model for matching.
  964. HShapeModel CreateScaledShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, double ScaleMin, double ScaleMax, double ScaleStep, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast) const;
  965. #endif
  966. // Prepare a shape model for matching.
  967. HShapeModel CreateShapeModel(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast) const;
  968. // Prepare a shape model for matching.
  969. HShapeModel CreateShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast) const;
  970. // Prepare a shape model for matching.
  971. HShapeModel CreateShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast) const;
  972. #ifdef _WIN32
  973. // Prepare a shape model for matching.
  974. HShapeModel CreateShapeModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast) const;
  975. #endif
  976. // Create the representation of a shape model.
  977. HImage InspectShapeModel(HRegion* ModelRegions, Hlong NumLevels, const HTuple& Contrast) const;
  978. // Create the representation of a shape model.
  979. HImage InspectShapeModel(HRegion* ModelRegions, Hlong NumLevels, Hlong Contrast) const;
  980. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  981. HPoseArray FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HCamPar& CamParam, const HTuple& ScoreType, HTuple* Score) const;
  982. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  983. HPose FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const HString& ScoreType, double* Score) const;
  984. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  985. HPose FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const char* ScoreType, double* Score) const;
  986. #ifdef _WIN32
  987. // Find the best matches of a calibrated descriptor model in an image and return their 3D pose.
  988. HPose FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const wchar_t* ScoreType, double* Score) const;
  989. #endif
  990. // Find the best matches of a descriptor model in an image.
  991. HHomMat2DArray FindUncalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HTuple& ScoreType, HTuple* Score) const;
  992. // Find the best matches of a descriptor model in an image.
  993. HHomMat2D FindUncalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HString& ScoreType, double* Score) const;
  994. // Find the best matches of a descriptor model in an image.
  995. HHomMat2D FindUncalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const char* ScoreType, double* Score) const;
  996. #ifdef _WIN32
  997. // Find the best matches of a descriptor model in an image.
  998. HHomMat2D FindUncalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const wchar_t* ScoreType, double* Score) const;
  999. #endif
  1000. // Create a descriptor model for calibrated perspective matching.
  1001. HDescriptorModel CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1002. // Create a descriptor model for calibrated perspective matching.
  1003. HDescriptorModel CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1004. #ifdef _WIN32
  1005. // Create a descriptor model for calibrated perspective matching.
  1006. HDescriptorModel CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1007. #endif
  1008. // Prepare a descriptor model for interest point matching.
  1009. HDescriptorModel CreateUncalibDescriptorModel(const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1010. // Prepare a descriptor model for interest point matching.
  1011. HDescriptorModel CreateUncalibDescriptorModel(const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1012. #ifdef _WIN32
  1013. // Prepare a descriptor model for interest point matching.
  1014. HDescriptorModel CreateUncalibDescriptorModel(const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const;
  1015. #endif
  1016. // Determine the parameters of a deformable model.
  1017. HTuple DetermineDeformableModelParams(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& ScaleMin, const HTuple& ScaleMax, const HString& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue, const HTuple& Parameters, HTuple* ParameterValue) const;
  1018. // Determine the parameters of a deformable model.
  1019. HTuple DetermineDeformableModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue, const HString& Parameters, HTuple* ParameterValue) const;
  1020. // Determine the parameters of a deformable model.
  1021. HTuple DetermineDeformableModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue, const char* Parameters, HTuple* ParameterValue) const;
  1022. #ifdef _WIN32
  1023. // Determine the parameters of a deformable model.
  1024. HTuple DetermineDeformableModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue, const wchar_t* Parameters, HTuple* ParameterValue) const;
  1025. #endif
  1026. // Find the best matches of a local deformable model in an image.
  1027. HImage FindLocalDeformableModel(HImage* VectorField, HXLDCont* DeformedContours, const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& ResultType, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* Row, HTuple* Column) const;
  1028. // Find the best matches of a calibrated deformable model in an image and return their 3D pose.
  1029. HPoseArray FindPlanarCalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const;
  1030. // Find the best matches of a calibrated deformable model in an image and return their 3D pose.
  1031. HPose FindPlanarCalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const;
  1032. // Find the best matches of a planar projective invariant deformable model in an image.
  1033. HHomMat2DArray FindPlanarUncalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score) const;
  1034. // Find the best matches of a planar projective invariant deformable model in an image.
  1035. HHomMat2D FindPlanarUncalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score) const;
  1036. // Set the metric of a local deformable model that was created from XLD contours.
  1037. void SetLocalDeformableModelMetric(const HImage& VectorField, const HDeformableModel& ModelID, const HString& Metric) const;
  1038. // Set the metric of a local deformable model that was created from XLD contours.
  1039. void SetLocalDeformableModelMetric(const HImage& VectorField, const HDeformableModel& ModelID, const char* Metric) const;
  1040. #ifdef _WIN32
  1041. // Set the metric of a local deformable model that was created from XLD contours.
  1042. void SetLocalDeformableModelMetric(const HImage& VectorField, const HDeformableModel& ModelID, const wchar_t* Metric) const;
  1043. #endif
  1044. // Set the metric of a planar calibrated deformable model that was created from XLD contours.
  1045. void SetPlanarCalibDeformableModelMetric(const HDeformableModel& ModelID, const HPose& Pose, const HString& Metric) const;
  1046. // Set the metric of a planar calibrated deformable model that was created from XLD contours.
  1047. void SetPlanarCalibDeformableModelMetric(const HDeformableModel& ModelID, const HPose& Pose, const char* Metric) const;
  1048. #ifdef _WIN32
  1049. // Set the metric of a planar calibrated deformable model that was created from XLD contours.
  1050. void SetPlanarCalibDeformableModelMetric(const HDeformableModel& ModelID, const HPose& Pose, const wchar_t* Metric) const;
  1051. #endif
  1052. // Set the metric of a planar uncalibrated deformable model that was created from XLD contours.
  1053. void SetPlanarUncalibDeformableModelMetric(const HDeformableModel& ModelID, const HHomMat2D& HomMat2D, const HString& Metric) const;
  1054. // Set the metric of a planar uncalibrated deformable model that was created from XLD contours.
  1055. void SetPlanarUncalibDeformableModelMetric(const HDeformableModel& ModelID, const HHomMat2D& HomMat2D, const char* Metric) const;
  1056. #ifdef _WIN32
  1057. // Set the metric of a planar uncalibrated deformable model that was created from XLD contours.
  1058. void SetPlanarUncalibDeformableModelMetric(const HDeformableModel& ModelID, const HHomMat2D& HomMat2D, const wchar_t* Metric) const;
  1059. #endif
  1060. // Creates a deformable model for local, deformable matching.
  1061. HDeformableModel CreateLocalDeformableModel(const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1062. // Creates a deformable model for local, deformable matching.
  1063. HDeformableModel CreateLocalDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1064. // Creates a deformable model for local, deformable matching.
  1065. HDeformableModel CreateLocalDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1066. #ifdef _WIN32
  1067. // Creates a deformable model for local, deformable matching.
  1068. HDeformableModel CreateLocalDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1069. #endif
  1070. // Create a deformable model for calibrated perspective matching.
  1071. HDeformableModel CreatePlanarCalibDeformableModel(const HCamPar& CamParam, const HPose& ReferencePose, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1072. // Create a deformable model for calibrated perspective matching.
  1073. HDeformableModel CreatePlanarCalibDeformableModel(const HCamPar& CamParam, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1074. // Create a deformable model for calibrated perspective matching.
  1075. HDeformableModel CreatePlanarCalibDeformableModel(const HCamPar& CamParam, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1076. #ifdef _WIN32
  1077. // Create a deformable model for calibrated perspective matching.
  1078. HDeformableModel CreatePlanarCalibDeformableModel(const HCamPar& CamParam, const HPose& ReferencePose, Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1079. #endif
  1080. // Creates a deformable model for uncalibrated, perspective matching.
  1081. HDeformableModel CreatePlanarUncalibDeformableModel(const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AngleStep, double ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, const HTuple& ScaleCStep, const HTuple& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1082. // Creates a deformable model for uncalibrated, perspective matching.
  1083. HDeformableModel CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const HString& Optimization, const HString& Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1084. // Creates a deformable model for uncalibrated, perspective matching.
  1085. HDeformableModel CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const char* Optimization, const char* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1086. #ifdef _WIN32
  1087. // Creates a deformable model for uncalibrated, perspective matching.
  1088. HDeformableModel CreatePlanarUncalibDeformableModel(Hlong NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, double AngleStep, double ScaleRMin, const HTuple& ScaleRMax, double ScaleRStep, double ScaleCMin, const HTuple& ScaleCMax, double ScaleCStep, const wchar_t* Optimization, const wchar_t* Metric, const HTuple& Contrast, Hlong MinContrast, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1089. #endif
  1090. // Find the best matches of an NCC model in an image.
  1091. void FindNccModel(const HNCCModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, const HTuple& NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  1092. // Find the best matches of an NCC model in an image.
  1093. void FindNccModel(const HNCCModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  1094. // Find the best matches of an NCC model in an image.
  1095. void FindNccModel(const HNCCModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  1096. #ifdef _WIN32
  1097. // Find the best matches of an NCC model in an image.
  1098. void FindNccModel(const HNCCModel& ModelID, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score) const;
  1099. #endif
  1100. // Set selected parameters of the NCC model.
  1101. static void SetNccModelParam(const HNCCModel& ModelID, const HTuple& GenParamName, const HTuple& GenParamValue);
  1102. // Prepare an NCC model for matching.
  1103. HNCCModel CreateNccModel(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& AngleStep, const HString& Metric) const;
  1104. // Prepare an NCC model for matching.
  1105. HNCCModel CreateNccModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const HString& Metric) const;
  1106. // Prepare an NCC model for matching.
  1107. HNCCModel CreateNccModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const char* Metric) const;
  1108. #ifdef _WIN32
  1109. // Prepare an NCC model for matching.
  1110. HNCCModel CreateNccModel(Hlong NumLevels, double AngleStart, double AngleExtent, double AngleStep, const wchar_t* Metric) const;
  1111. #endif
  1112. // Find the best matches of a component model in an image.
  1113. HTuple FindComponentModel(const HComponentModel& ComponentModelID, const HTuple& RootComponent, const HTuple& AngleStartRoot, const HTuple& AngleExtentRoot, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& IfRootNotFound, const HString& IfComponentNotFound, const HString& PosePrediction, const HTuple& MinScoreComp, const HTuple& SubPixelComp, const HTuple& NumLevelsComp, const HTuple& GreedinessComp, HTuple* ModelEnd, HTuple* Score, HTuple* RowComp, HTuple* ColumnComp, HTuple* AngleComp, HTuple* ScoreComp, HTuple* ModelComp) const;
  1114. // Find the best matches of a component model in an image.
  1115. Hlong FindComponentModel(const HComponentModel& ComponentModelID, Hlong RootComponent, double AngleStartRoot, double AngleExtentRoot, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& IfRootNotFound, const HString& IfComponentNotFound, const HString& PosePrediction, double MinScoreComp, const HString& SubPixelComp, Hlong NumLevelsComp, double GreedinessComp, Hlong* ModelEnd, double* Score, double* RowComp, double* ColumnComp, double* AngleComp, double* ScoreComp, Hlong* ModelComp) const;
  1116. // Find the best matches of a component model in an image.
  1117. Hlong FindComponentModel(const HComponentModel& ComponentModelID, Hlong RootComponent, double AngleStartRoot, double AngleExtentRoot, double MinScore, Hlong NumMatches, double MaxOverlap, const char* IfRootNotFound, const char* IfComponentNotFound, const char* PosePrediction, double MinScoreComp, const char* SubPixelComp, Hlong NumLevelsComp, double GreedinessComp, Hlong* ModelEnd, double* Score, double* RowComp, double* ColumnComp, double* AngleComp, double* ScoreComp, Hlong* ModelComp) const;
  1118. #ifdef _WIN32
  1119. // Find the best matches of a component model in an image.
  1120. Hlong FindComponentModel(const HComponentModel& ComponentModelID, Hlong RootComponent, double AngleStartRoot, double AngleExtentRoot, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* IfRootNotFound, const wchar_t* IfComponentNotFound, const wchar_t* PosePrediction, double MinScoreComp, const wchar_t* SubPixelComp, Hlong NumLevelsComp, double GreedinessComp, Hlong* ModelEnd, double* Score, double* RowComp, double* ColumnComp, double* AngleComp, double* ScoreComp, Hlong* ModelComp) const;
  1121. #endif
  1122. // Prepare a component model for matching based on explicitly specified components and relations.
  1123. HComponentModel CreateComponentModel(const HRegion& ComponentRegions, const HTuple& VariationRow, const HTuple& VariationColumn, const HTuple& VariationAngle, double AngleStart, double AngleExtent, const HTuple& ContrastLowComp, const HTuple& ContrastHighComp, const HTuple& MinSizeComp, const HTuple& MinContrastComp, const HTuple& MinScoreComp, const HTuple& NumLevelsComp, const HTuple& AngleStepComp, const HString& OptimizationComp, const HTuple& MetricComp, const HTuple& PregenerationComp, HTuple* RootRanking) const;
  1124. // Prepare a component model for matching based on explicitly specified components and relations.
  1125. HComponentModel CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const HString& OptimizationComp, const HString& MetricComp, const HString& PregenerationComp, Hlong* RootRanking) const;
  1126. // Prepare a component model for matching based on explicitly specified components and relations.
  1127. HComponentModel CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const char* OptimizationComp, const char* MetricComp, const char* PregenerationComp, Hlong* RootRanking) const;
  1128. #ifdef _WIN32
  1129. // Prepare a component model for matching based on explicitly specified components and relations.
  1130. HComponentModel CreateComponentModel(const HRegion& ComponentRegions, Hlong VariationRow, Hlong VariationColumn, double VariationAngle, double AngleStart, double AngleExtent, Hlong ContrastLowComp, Hlong ContrastHighComp, Hlong MinSizeComp, Hlong MinContrastComp, double MinScoreComp, Hlong NumLevelsComp, double AngleStepComp, const wchar_t* OptimizationComp, const wchar_t* MetricComp, const wchar_t* PregenerationComp, Hlong* RootRanking) const;
  1131. #endif
  1132. // Adopt new parameters that are used to create the model components into the training result.
  1133. HRegion ClusterModelComponents(const HComponentTraining& ComponentTrainingID, const HString& AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold) const;
  1134. // Adopt new parameters that are used to create the model components into the training result.
  1135. HRegion ClusterModelComponents(const HComponentTraining& ComponentTrainingID, const char* AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold) const;
  1136. #ifdef _WIN32
  1137. // Adopt new parameters that are used to create the model components into the training result.
  1138. HRegion ClusterModelComponents(const HComponentTraining& ComponentTrainingID, const wchar_t* AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold) const;
  1139. #endif
  1140. // Train components and relations for the component-based matching.
  1141. HRegion TrainModelComponents(const HRegion& InitialComponents, const HImage& TrainingImages, const HTuple& ContrastLow, const HTuple& ContrastHigh, const HTuple& MinSize, const HTuple& MinScore, const HTuple& SearchRowTol, const HTuple& SearchColumnTol, const HTuple& SearchAngleTol, const HString& TrainingEmphasis, const HString& AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold, HComponentTraining* ComponentTrainingID) const;
  1142. // Train components and relations for the component-based matching.
  1143. HRegion TrainModelComponents(const HRegion& InitialComponents, const HImage& TrainingImages, Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, double MinScore, Hlong SearchRowTol, Hlong SearchColumnTol, double SearchAngleTol, const HString& TrainingEmphasis, const HString& AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold, HComponentTraining* ComponentTrainingID) const;
  1144. // Train components and relations for the component-based matching.
  1145. HRegion TrainModelComponents(const HRegion& InitialComponents, const HImage& TrainingImages, Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, double MinScore, Hlong SearchRowTol, Hlong SearchColumnTol, double SearchAngleTol, const char* TrainingEmphasis, const char* AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold, HComponentTraining* ComponentTrainingID) const;
  1146. #ifdef _WIN32
  1147. // Train components and relations for the component-based matching.
  1148. HRegion TrainModelComponents(const HRegion& InitialComponents, const HImage& TrainingImages, Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, double MinScore, Hlong SearchRowTol, Hlong SearchColumnTol, double SearchAngleTol, const wchar_t* TrainingEmphasis, const wchar_t* AmbiguityCriterion, double MaxContourOverlap, double ClusterThreshold, HComponentTraining* ComponentTrainingID) const;
  1149. #endif
  1150. // Extract the initial components of a component model.
  1151. HRegion GenInitialComponents(const HTuple& ContrastLow, const HTuple& ContrastHigh, const HTuple& MinSize, const HString& Mode, const HTuple& GenericName, const HTuple& GenericValue) const;
  1152. // Extract the initial components of a component model.
  1153. HRegion GenInitialComponents(Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, const HString& Mode, const HString& GenericName, double GenericValue) const;
  1154. // Extract the initial components of a component model.
  1155. HRegion GenInitialComponents(Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, const char* Mode, const char* GenericName, double GenericValue) const;
  1156. #ifdef _WIN32
  1157. // Extract the initial components of a component model.
  1158. HRegion GenInitialComponents(Hlong ContrastLow, Hlong ContrastHigh, Hlong MinSize, const wchar_t* Mode, const wchar_t* GenericName, double GenericValue) const;
  1159. #endif
  1160. // Find the best matches of a 3D shape model in an image.
  1161. HPoseArray FindShapeModel3d(const HShapeModel3D& ShapeModel3DID, double MinScore, double Greediness, const HTuple& NumLevels, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const;
  1162. // Convert one-channel images into a multi-channel image
  1163. HImage ChannelsToImage() const;
  1164. // Convert a multi-channel image into One-channel images
  1165. HImage ImageToChannels() const;
  1166. // Convert 7 images into a seven-channel image.
  1167. HImage Compose7(const HImage& Image2, const HImage& Image3, const HImage& Image4, const HImage& Image5, const HImage& Image6, const HImage& Image7) const;
  1168. // Convert 6 images into a six-channel image.
  1169. HImage Compose6(const HImage& Image2, const HImage& Image3, const HImage& Image4, const HImage& Image5, const HImage& Image6) const;
  1170. // Convert 5 images into a five-channel image.
  1171. HImage Compose5(const HImage& Image2, const HImage& Image3, const HImage& Image4, const HImage& Image5) const;
  1172. // Convert 4 images into a four-channel image.
  1173. HImage Compose4(const HImage& Image2, const HImage& Image3, const HImage& Image4) const;
  1174. // Convert 3 images into a three-channel image.
  1175. HImage Compose3(const HImage& Image2, const HImage& Image3) const;
  1176. // Convert two images into a two-channel image.
  1177. HImage Compose2(const HImage& Image2) const;
  1178. // Convert a seven-channel image into seven images.
  1179. HImage Decompose7(HImage* Image2, HImage* Image3, HImage* Image4, HImage* Image5, HImage* Image6, HImage* Image7) const;
  1180. // Convert a six-channel image into six images.
  1181. HImage Decompose6(HImage* Image2, HImage* Image3, HImage* Image4, HImage* Image5, HImage* Image6) const;
  1182. // Convert a five-channel image into five images.
  1183. HImage Decompose5(HImage* Image2, HImage* Image3, HImage* Image4, HImage* Image5) const;
  1184. // Convert a four-channel image into four images.
  1185. HImage Decompose4(HImage* Image2, HImage* Image3, HImage* Image4) const;
  1186. // Convert a three-channel image into three images.
  1187. HImage Decompose3(HImage* Image2, HImage* Image3) const;
  1188. // Convert a two-channel image into two images.
  1189. HImage Decompose2(HImage* Image2) const;
  1190. // Count channels of image.
  1191. HTuple CountChannels() const;
  1192. // Append additional matrices (channels) to the image.
  1193. HImage AppendChannel(const HImage& Image) const;
  1194. // Access a channel of a multi-channel image.
  1195. HImage AccessChannel(Hlong Channel) const;
  1196. // Tile multiple image objects into a large image with explicit positioning information.
  1197. HImage TileImagesOffset(const HTuple& OffsetRow, const HTuple& OffsetCol, const HTuple& Row1, const HTuple& Col1, const HTuple& Row2, const HTuple& Col2, Hlong Width, Hlong Height) const;
  1198. // Tile multiple image objects into a large image with explicit positioning information.
  1199. HImage TileImagesOffset(Hlong OffsetRow, Hlong OffsetCol, Hlong Row1, Hlong Col1, Hlong Row2, Hlong Col2, Hlong Width, Hlong Height) const;
  1200. // Tile multiple image objects into a large image.
  1201. HImage TileImages(Hlong NumColumns, const HString& TileOrder) const;
  1202. // Tile multiple image objects into a large image.
  1203. HImage TileImages(Hlong NumColumns, const char* TileOrder) const;
  1204. #ifdef _WIN32
  1205. // Tile multiple image objects into a large image.
  1206. HImage TileImages(Hlong NumColumns, const wchar_t* TileOrder) const;
  1207. #endif
  1208. // Tile multiple images into a large image.
  1209. HImage TileChannels(Hlong NumColumns, const HString& TileOrder) const;
  1210. // Tile multiple images into a large image.
  1211. HImage TileChannels(Hlong NumColumns, const char* TileOrder) const;
  1212. #ifdef _WIN32
  1213. // Tile multiple images into a large image.
  1214. HImage TileChannels(Hlong NumColumns, const wchar_t* TileOrder) const;
  1215. #endif
  1216. // Cut out of defined gray values.
  1217. HImage CropDomain() const;
  1218. // Cut out one or more rectangular image areas.
  1219. HImage CropRectangle1(const HTuple& Row1, const HTuple& Column1, const HTuple& Row2, const HTuple& Column2) const;
  1220. // Cut out one or more rectangular image areas.
  1221. HImage CropRectangle1(Hlong Row1, Hlong Column1, Hlong Row2, Hlong Column2) const;
  1222. // Cut out one or more rectangular image areas.
  1223. HImage CropPart(const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height) const;
  1224. // Cut out one or more rectangular image areas.
  1225. HImage CropPart(Hlong Row, Hlong Column, Hlong Width, Hlong Height) const;
  1226. // Change image size.
  1227. HImage ChangeFormat(Hlong Width, Hlong Height) const;
  1228. // Change definition domain of an image.
  1229. HImage ChangeDomain(const HRegion& NewDomain) const;
  1230. // Reduce the domain of an image to a rectangle.
  1231. HImage Rectangle1Domain(Hlong Row1, Hlong Column1, Hlong Row2, Hlong Column2) const;
  1232. // Reduce the domain of an image.
  1233. HImage ReduceDomain(const HRegion& Region) const;
  1234. // Expand the domain of an image to maximum.
  1235. HImage FullDomain() const;
  1236. // Get the domain of an image.
  1237. HRegion GetDomain() const;
  1238. // Detect lines in edge images with the help of the Hough transform using local gradient direction and return them in normal form.
  1239. HImage HoughLinesDir(HRegion* Lines, Hlong DirectionUncertainty, Hlong AngleResolution, const HString& Smoothing, Hlong FilterSize, Hlong Threshold, Hlong AngleGap, Hlong DistGap, const HString& GenLines, HTuple* Angle, HTuple* Dist) const;
  1240. // Detect lines in edge images with the help of the Hough transform using local gradient direction and return them in normal form.
  1241. HImage HoughLinesDir(HRegion* Lines, Hlong DirectionUncertainty, Hlong AngleResolution, const char* Smoothing, Hlong FilterSize, Hlong Threshold, Hlong AngleGap, Hlong DistGap, const char* GenLines, HTuple* Angle, HTuple* Dist) const;
  1242. #ifdef _WIN32
  1243. // Detect lines in edge images with the help of the Hough transform using local gradient direction and return them in normal form.
  1244. HImage HoughLinesDir(HRegion* Lines, Hlong DirectionUncertainty, Hlong AngleResolution, const wchar_t* Smoothing, Hlong FilterSize, Hlong Threshold, Hlong AngleGap, Hlong DistGap, const wchar_t* GenLines, HTuple* Angle, HTuple* Dist) const;
  1245. #endif
  1246. // Compute the Hough transform for lines using local gradient direction.
  1247. HImage HoughLineTransDir(Hlong DirectionUncertainty, Hlong AngleResolution) const;
  1248. // Segment the rectification grid region in the image.
  1249. HRegion FindRectificationGrid(const HTuple& MinContrast, const HTuple& Radius) const;
  1250. // Segment the rectification grid region in the image.
  1251. HRegion FindRectificationGrid(double MinContrast, double Radius) const;
  1252. // Establish connections between the grid points of the rectification grid.
  1253. HXLD ConnectGridPoints(const HTuple& Row, const HTuple& Column, const HTuple& Sigma, const HTuple& MaxDist) const;
  1254. // Establish connections between the grid points of the rectification grid.
  1255. HXLD ConnectGridPoints(const HTuple& Row, const HTuple& Column, Hlong Sigma, double MaxDist) const;
  1256. // Compute the mapping between the distorted image and the rectified image based upon the points of a regular grid.
  1257. HImage GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const;
  1258. // Compute the mapping between the distorted image and the rectified image based upon the points of a regular grid.
  1259. HImage GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const;
  1260. // Compute the mapping between the distorted image and the rectified image based upon the points of a regular grid.
  1261. HImage GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const;
  1262. #ifdef _WIN32
  1263. // Compute the mapping between the distorted image and the rectified image based upon the points of a regular grid.
  1264. HImage GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const wchar_t* Rotation, const HTuple& Row, const HTuple& Column, const wchar_t* MapType) const;
  1265. #endif
  1266. // Calculates image coordinates for a point in a 3D plot window.
  1267. void UnprojectCoordinates(const HWindow& WindowHandle, const HTuple& Row, const HTuple& Column, Hlong* ImageRow, Hlong* ImageColumn, HTuple* Height) const;
  1268. // Calculates image coordinates for a point in a 3D plot window.
  1269. void UnprojectCoordinates(const HWindow& WindowHandle, double Row, double Column, Hlong* ImageRow, Hlong* ImageColumn, Hlong* Height) const;
  1270. // Write the window content in an image object.
  1271. void DumpWindowImage(const HWindow& WindowHandle);
  1272. // Displays gray value images.
  1273. void DispImage(const HWindow& WindowHandle) const;
  1274. // Displays images with several channels.
  1275. void DispChannel(const HWindow& WindowHandle, const HTuple& Channel) const;
  1276. // Displays images with several channels.
  1277. void DispChannel(const HWindow& WindowHandle, Hlong Channel) const;
  1278. // Displays a color (RGB) image
  1279. void DispColor(const HWindow& WindowHandle) const;
  1280. // Visualize images using gnuplot.
  1281. void GnuplotPlotImage(const HGnuplot& GnuplotFileID, Hlong SamplesX, Hlong SamplesY, const HTuple& ViewRotX, const HTuple& ViewRotZ, const HString& Hidden3D) const;
  1282. // Visualize images using gnuplot.
  1283. void GnuplotPlotImage(const HGnuplot& GnuplotFileID, Hlong SamplesX, Hlong SamplesY, double ViewRotX, double ViewRotZ, const HString& Hidden3D) const;
  1284. // Visualize images using gnuplot.
  1285. void GnuplotPlotImage(const HGnuplot& GnuplotFileID, Hlong SamplesX, Hlong SamplesY, double ViewRotX, double ViewRotZ, const char* Hidden3D) const;
  1286. #ifdef _WIN32
  1287. // Visualize images using gnuplot.
  1288. void GnuplotPlotImage(const HGnuplot& GnuplotFileID, Hlong SamplesX, Hlong SamplesY, double ViewRotX, double ViewRotZ, const wchar_t* Hidden3D) const;
  1289. #endif
  1290. // Filter an image using a Laws texture filter.
  1291. HImage TextureLaws(const HString& FilterTypes, Hlong Shift, Hlong FilterSize) const;
  1292. // Filter an image using a Laws texture filter.
  1293. HImage TextureLaws(const char* FilterTypes, Hlong Shift, Hlong FilterSize) const;
  1294. #ifdef _WIN32
  1295. // Filter an image using a Laws texture filter.
  1296. HImage TextureLaws(const wchar_t* FilterTypes, Hlong Shift, Hlong FilterSize) const;
  1297. #endif
  1298. // Calculate the standard deviation of gray values within rectangular windows.
  1299. HImage DeviationImage(Hlong Width, Hlong Height) const;
  1300. // Calculate the entropy of gray values within a rectangular window.
  1301. HImage EntropyImage(Hlong Width, Hlong Height) const;
  1302. // Perform an isotropic diffusion of an image.
  1303. HImage IsotropicDiffusion(double Sigma, Hlong Iterations) const;
  1304. // Perform an anisotropic diffusion of an image.
  1305. HImage AnisotropicDiffusion(const HString& Mode, double Contrast, double Theta, Hlong Iterations) const;
  1306. // Perform an anisotropic diffusion of an image.
  1307. HImage AnisotropicDiffusion(const char* Mode, double Contrast, double Theta, Hlong Iterations) const;
  1308. #ifdef _WIN32
  1309. // Perform an anisotropic diffusion of an image.
  1310. HImage AnisotropicDiffusion(const wchar_t* Mode, double Contrast, double Theta, Hlong Iterations) const;
  1311. #endif
  1312. // Smooth an image using various filters.
  1313. HImage SmoothImage(const HString& Filter, double Alpha) const;
  1314. // Smooth an image using various filters.
  1315. HImage SmoothImage(const char* Filter, double Alpha) const;
  1316. #ifdef _WIN32
  1317. // Smooth an image using various filters.
  1318. HImage SmoothImage(const wchar_t* Filter, double Alpha) const;
  1319. #endif
  1320. // Non-linear smoothing with the sigma filter.
  1321. HImage SigmaImage(Hlong MaskHeight, Hlong MaskWidth, Hlong Sigma) const;
  1322. // Calculate the average of maximum and minimum inside any mask.
  1323. HImage MidrangeImage(const HRegion& Mask, const HTuple& Margin) const;
  1324. // Calculate the average of maximum and minimum inside any mask.
  1325. HImage MidrangeImage(const HRegion& Mask, const HString& Margin) const;
  1326. // Calculate the average of maximum and minimum inside any mask.
  1327. HImage MidrangeImage(const HRegion& Mask, const char* Margin) const;
  1328. #ifdef _WIN32
  1329. // Calculate the average of maximum and minimum inside any mask.
  1330. HImage MidrangeImage(const HRegion& Mask, const wchar_t* Margin) const;
  1331. #endif
  1332. // Smooth an image with an arbitrary rank mask.
  1333. HImage TrimmedMean(const HRegion& Mask, Hlong Number, const HTuple& Margin) const;
  1334. // Smooth an image with an arbitrary rank mask.
  1335. HImage TrimmedMean(const HRegion& Mask, Hlong Number, const HString& Margin) const;
  1336. // Smooth an image with an arbitrary rank mask.
  1337. HImage TrimmedMean(const HRegion& Mask, Hlong Number, const char* Margin) const;
  1338. #ifdef _WIN32
  1339. // Smooth an image with an arbitrary rank mask.
  1340. HImage TrimmedMean(const HRegion& Mask, Hlong Number, const wchar_t* Margin) const;
  1341. #endif
  1342. // Separated median filtering with rectangle masks.
  1343. HImage MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const HTuple& Margin) const;
  1344. // Separated median filtering with rectangle masks.
  1345. HImage MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const HString& Margin) const;
  1346. // Separated median filtering with rectangle masks.
  1347. HImage MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const char* Margin) const;
  1348. #ifdef _WIN32
  1349. // Separated median filtering with rectangle masks.
  1350. HImage MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const wchar_t* Margin) const;
  1351. #endif
  1352. // Compute a median filter with rectangular masks.
  1353. HImage MedianRect(Hlong MaskWidth, Hlong MaskHeight) const;
  1354. // Compute a median filter with various masks.
  1355. HImage MedianImage(const HString& MaskType, Hlong Radius, const HTuple& Margin) const;
  1356. // Compute a median filter with various masks.
  1357. HImage MedianImage(const HString& MaskType, Hlong Radius, const HString& Margin) const;
  1358. // Compute a median filter with various masks.
  1359. HImage MedianImage(const char* MaskType, Hlong Radius, const char* Margin) const;
  1360. #ifdef _WIN32
  1361. // Compute a median filter with various masks.
  1362. HImage MedianImage(const wchar_t* MaskType, Hlong Radius, const wchar_t* Margin) const;
  1363. #endif
  1364. // Weighted median filtering with different rank masks.
  1365. HImage MedianWeighted(const HString& MaskType, Hlong MaskSize) const;
  1366. // Weighted median filtering with different rank masks.
  1367. HImage MedianWeighted(const char* MaskType, Hlong MaskSize) const;
  1368. #ifdef _WIN32
  1369. // Weighted median filtering with different rank masks.
  1370. HImage MedianWeighted(const wchar_t* MaskType, Hlong MaskSize) const;
  1371. #endif
  1372. // Compute a rank filter with rectangular masks.
  1373. HImage RankRect(Hlong MaskWidth, Hlong MaskHeight, Hlong Rank) const;
  1374. // Compute a rank filter with arbitrary masks.
  1375. HImage RankImage(const HRegion& Mask, Hlong Rank, const HTuple& Margin) const;
  1376. // Compute a rank filter with arbitrary masks.
  1377. HImage RankImage(const HRegion& Mask, Hlong Rank, const HString& Margin) const;
  1378. // Compute a rank filter with arbitrary masks.
  1379. HImage RankImage(const HRegion& Mask, Hlong Rank, const char* Margin) const;
  1380. #ifdef _WIN32
  1381. // Compute a rank filter with arbitrary masks.
  1382. HImage RankImage(const HRegion& Mask, Hlong Rank, const wchar_t* Margin) const;
  1383. #endif
  1384. // Opening, Median and Closing with circle or rectangle mask.
  1385. HImage DualRank(const HString& MaskType, Hlong Radius, Hlong ModePercent, const HTuple& Margin) const;
  1386. // Opening, Median and Closing with circle or rectangle mask.
  1387. HImage DualRank(const HString& MaskType, Hlong Radius, Hlong ModePercent, const HString& Margin) const;
  1388. // Opening, Median and Closing with circle or rectangle mask.
  1389. HImage DualRank(const char* MaskType, Hlong Radius, Hlong ModePercent, const char* Margin) const;
  1390. #ifdef _WIN32
  1391. // Opening, Median and Closing with circle or rectangle mask.
  1392. HImage DualRank(const wchar_t* MaskType, Hlong Radius, Hlong ModePercent, const wchar_t* Margin) const;
  1393. #endif
  1394. // Smooth by averaging.
  1395. HImage MeanImage(Hlong MaskWidth, Hlong MaskHeight) const;
  1396. // Smooth an image using the binomial filter.
  1397. HImage BinomialFilter(Hlong MaskWidth, Hlong MaskHeight) const;
  1398. // Smooth an image using discrete Gaussian functions.
  1399. HImage GaussImage(Hlong Size) const;
  1400. // Smooth using discrete Gauss functions.
  1401. HImage GaussFilter(Hlong Size) const;
  1402. // Smooth an image in the spatial domain to suppress noise.
  1403. HImage EliminateMinMax(Hlong MaskWidth, Hlong MaskHeight, double Gap, Hlong Mode) const;
  1404. // Interpolate 2 video half images.
  1405. HImage FillInterlace(const HString& Mode) const;
  1406. // Interpolate 2 video half images.
  1407. HImage FillInterlace(const char* Mode) const;
  1408. #ifdef _WIN32
  1409. // Interpolate 2 video half images.
  1410. HImage FillInterlace(const wchar_t* Mode) const;
  1411. #endif
  1412. // Return gray values with given rank from multiple channels.
  1413. HImage RankN(Hlong RankIndex) const;
  1414. // Average gray values over several channels.
  1415. HImage MeanN() const;
  1416. // Replace values outside of thresholds with average value.
  1417. HImage EliminateSp(Hlong MaskWidth, Hlong MaskHeight, Hlong MinThresh, Hlong MaxThresh) const;
  1418. // Suppress salt and pepper noise.
  1419. HImage MeanSp(Hlong MaskWidth, Hlong MaskHeight, Hlong MinThresh, Hlong MaxThresh) const;
  1420. // Find corners using the Sojka operator.
  1421. void PointsSojka(Hlong MaskSize, const HTuple& SigmaW, const HTuple& SigmaD, const HTuple& MinGrad, const HTuple& MinApparentness, double MinAngle, const HString& Subpix, HTuple* Row, HTuple* Column) const;
  1422. // Find corners using the Sojka operator.
  1423. void PointsSojka(Hlong MaskSize, double SigmaW, double SigmaD, double MinGrad, double MinApparentness, double MinAngle, const HString& Subpix, HTuple* Row, HTuple* Column) const;
  1424. // Find corners using the Sojka operator.
  1425. void PointsSojka(Hlong MaskSize, double SigmaW, double SigmaD, double MinGrad, double MinApparentness, double MinAngle, const char* Subpix, HTuple* Row, HTuple* Column) const;
  1426. #ifdef _WIN32
  1427. // Find corners using the Sojka operator.
  1428. void PointsSojka(Hlong MaskSize, double SigmaW, double SigmaD, double MinGrad, double MinApparentness, double MinAngle, const wchar_t* Subpix, HTuple* Row, HTuple* Column) const;
  1429. #endif
  1430. // Enhance circular dots in an image.
  1431. HImage DotsImage(Hlong Diameter, const HString& FilterType, Hlong PixelShift) const;
  1432. // Enhance circular dots in an image.
  1433. HImage DotsImage(Hlong Diameter, const char* FilterType, Hlong PixelShift) const;
  1434. #ifdef _WIN32
  1435. // Enhance circular dots in an image.
  1436. HImage DotsImage(Hlong Diameter, const wchar_t* FilterType, Hlong PixelShift) const;
  1437. #endif
  1438. // Subpixel precise detection of local minima in an image.
  1439. void LocalMinSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1440. // Subpixel precise detection of local minima in an image.
  1441. void LocalMinSubPix(const char* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1442. #ifdef _WIN32
  1443. // Subpixel precise detection of local minima in an image.
  1444. void LocalMinSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1445. #endif
  1446. // Subpixel precise detection of local maxima in an image.
  1447. void LocalMaxSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1448. // Subpixel precise detection of local maxima in an image.
  1449. void LocalMaxSubPix(const char* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1450. #ifdef _WIN32
  1451. // Subpixel precise detection of local maxima in an image.
  1452. void LocalMaxSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1453. #endif
  1454. // Subpixel precise detection of saddle points in an image.
  1455. void SaddlePointsSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1456. // Subpixel precise detection of saddle points in an image.
  1457. void SaddlePointsSubPix(const char* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1458. #ifdef _WIN32
  1459. // Subpixel precise detection of saddle points in an image.
  1460. void SaddlePointsSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const;
  1461. #endif
  1462. // Subpixel precise detection of critical points in an image.
  1463. void CriticalPointsSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const;
  1464. // Subpixel precise detection of critical points in an image.
  1465. void CriticalPointsSubPix(const char* Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const;
  1466. #ifdef _WIN32
  1467. // Subpixel precise detection of critical points in an image.
  1468. void CriticalPointsSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const;
  1469. #endif
  1470. // Detect points of interest using the Harris operator.
  1471. void PointsHarris(double SigmaGrad, double SigmaSmooth, double Alpha, const HTuple& Threshold, HTuple* Row, HTuple* Column) const;
  1472. // Detect points of interest using the Harris operator.
  1473. void PointsHarris(double SigmaGrad, double SigmaSmooth, double Alpha, double Threshold, HTuple* Row, HTuple* Column) const;
  1474. // Detect points of interest using the binomial approximation of the Harris operator.
  1475. void PointsHarrisBinomial(Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, const HTuple& Threshold, const HString& Subpix, HTuple* Row, HTuple* Column) const;
  1476. // Detect points of interest using the binomial approximation of the Harris operator.
  1477. void PointsHarrisBinomial(Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const HString& Subpix, HTuple* Row, HTuple* Column) const;
  1478. // Detect points of interest using the binomial approximation of the Harris operator.
  1479. void PointsHarrisBinomial(Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const char* Subpix, HTuple* Row, HTuple* Column) const;
  1480. #ifdef _WIN32
  1481. // Detect points of interest using the binomial approximation of the Harris operator.
  1482. void PointsHarrisBinomial(Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const wchar_t* Subpix, HTuple* Row, HTuple* Column) const;
  1483. #endif
  1484. // Detect points of interest using the Lepetit operator.
  1485. void PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const HString& Subpix, HTuple* Row, HTuple* Column) const;
  1486. // Detect points of interest using the Lepetit operator.
  1487. void PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const char* Subpix, HTuple* Row, HTuple* Column) const;
  1488. #ifdef _WIN32
  1489. // Detect points of interest using the Lepetit operator.
  1490. void PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const wchar_t* Subpix, HTuple* Row, HTuple* Column) const;
  1491. #endif
  1492. // Detect points of interest using the Foerstner operator.
  1493. void PointsFoerstner(const HTuple& SigmaGrad, const HTuple& SigmaInt, const HTuple& SigmaPoints, const HTuple& ThreshInhom, double ThreshShape, const HString& Smoothing, const HString& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const;
  1494. // Detect points of interest using the Foerstner operator.
  1495. void PointsFoerstner(double SigmaGrad, double SigmaInt, double SigmaPoints, double ThreshInhom, double ThreshShape, const HString& Smoothing, const HString& EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const;
  1496. // Detect points of interest using the Foerstner operator.
  1497. void PointsFoerstner(double SigmaGrad, double SigmaInt, double SigmaPoints, double ThreshInhom, double ThreshShape, const char* Smoothing, const char* EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const;
  1498. #ifdef _WIN32
  1499. // Detect points of interest using the Foerstner operator.
  1500. void PointsFoerstner(double SigmaGrad, double SigmaInt, double SigmaPoints, double ThreshInhom, double ThreshShape, const wchar_t* Smoothing, const wchar_t* EliminateDoublets, HTuple* RowJunctions, HTuple* ColumnJunctions, HTuple* CoRRJunctions, HTuple* CoRCJunctions, HTuple* CoCCJunctions, HTuple* RowArea, HTuple* ColumnArea, HTuple* CoRRArea, HTuple* CoRCArea, HTuple* CoCCArea) const;
  1501. #endif
  1502. // Estimate the image noise from a single image.
  1503. HTuple EstimateNoise(const HString& Method, const HTuple& Percent) const;
  1504. // Estimate the image noise from a single image.
  1505. double EstimateNoise(const HString& Method, double Percent) const;
  1506. // Estimate the image noise from a single image.
  1507. double EstimateNoise(const char* Method, double Percent) const;
  1508. #ifdef _WIN32
  1509. // Estimate the image noise from a single image.
  1510. double EstimateNoise(const wchar_t* Method, double Percent) const;
  1511. #endif
  1512. // Determine the noise distribution of an image.
  1513. HTuple NoiseDistributionMean(const HRegion& ConstRegion, Hlong FilterSize) const;
  1514. // Add noise to an image.
  1515. HImage AddNoiseWhite(double Amp) const;
  1516. // Add noise to an image.
  1517. HImage AddNoiseDistribution(const HTuple& Distribution) const;
  1518. // Calculate standard deviation over several channels.
  1519. HImage DeviationN() const;
  1520. // Perform an inpainting by texture propagation.
  1521. HImage InpaintingTexture(const HRegion& Region, Hlong MaskSize, Hlong SearchSize, double Anisotropy, const HString& PostIteration, double Smoothness) const;
  1522. // Perform an inpainting by texture propagation.
  1523. HImage InpaintingTexture(const HRegion& Region, Hlong MaskSize, Hlong SearchSize, double Anisotropy, const char* PostIteration, double Smoothness) const;
  1524. #ifdef _WIN32
  1525. // Perform an inpainting by texture propagation.
  1526. HImage InpaintingTexture(const HRegion& Region, Hlong MaskSize, Hlong SearchSize, double Anisotropy, const wchar_t* PostIteration, double Smoothness) const;
  1527. #endif
  1528. // Perform an inpainting by coherence transport.
  1529. HImage InpaintingCt(const HRegion& Region, double Epsilon, double Kappa, double Sigma, double Rho, const HTuple& ChannelCoefficients) const;
  1530. // Perform an inpainting by coherence transport.
  1531. HImage InpaintingCt(const HRegion& Region, double Epsilon, double Kappa, double Sigma, double Rho, double ChannelCoefficients) const;
  1532. // Perform an inpainting by smoothing of level lines.
  1533. HImage InpaintingMcf(const HRegion& Region, double Sigma, double Theta, Hlong Iterations) const;
  1534. // Perform an inpainting by coherence enhancing diffusion.
  1535. HImage InpaintingCed(const HRegion& Region, double Sigma, double Rho, double Theta, Hlong Iterations) const;
  1536. // Perform an inpainting by anisotropic diffusion.
  1537. HImage InpaintingAniso(const HRegion& Region, const HString& Mode, double Contrast, double Theta, Hlong Iterations, double Rho) const;
  1538. // Perform an inpainting by anisotropic diffusion.
  1539. HImage InpaintingAniso(const HRegion& Region, const char* Mode, double Contrast, double Theta, Hlong Iterations, double Rho) const;
  1540. #ifdef _WIN32
  1541. // Perform an inpainting by anisotropic diffusion.
  1542. HImage InpaintingAniso(const HRegion& Region, const wchar_t* Mode, double Contrast, double Theta, Hlong Iterations, double Rho) const;
  1543. #endif
  1544. // Perform a harmonic interpolation on an image region.
  1545. HImage HarmonicInterpolation(const HRegion& Region, double Precision) const;
  1546. // Expand the domain of an image and set the gray values in the expanded domain.
  1547. HImage ExpandDomainGray(Hlong ExpansionRange) const;
  1548. // Compute the topographic primal sketch of an image.
  1549. HImage TopographicSketch() const;
  1550. // Compute an affine transformation of the color values of a multichannel image.
  1551. HImage LinearTransColor(const HTuple& TransMat) const;
  1552. // Compute the transformation matrix of the principal component analysis of multichannel images.
  1553. HTuple GenPrincipalCompTrans(HTuple* TransInv, HTuple* Mean, HTuple* Cov, HTuple* InfoPerComp) const;
  1554. // Compute the principal components of multichannel images.
  1555. HImage PrincipalComp(HTuple* InfoPerComp) const;
  1556. // Determine the fuzzy entropy of regions.
  1557. HTuple FuzzyEntropy(const HRegion& Regions, Hlong Apar, Hlong Cpar) const;
  1558. // Calculate the fuzzy perimeter of a region.
  1559. HTuple FuzzyPerimeter(const HRegion& Regions, Hlong Apar, Hlong Cpar) const;
  1560. // Perform a gray value closing with a selected mask.
  1561. HImage GrayClosingShape(const HTuple& MaskHeight, const HTuple& MaskWidth, const HString& MaskShape) const;
  1562. // Perform a gray value closing with a selected mask.
  1563. HImage GrayClosingShape(double MaskHeight, double MaskWidth, const HString& MaskShape) const;
  1564. // Perform a gray value closing with a selected mask.
  1565. HImage GrayClosingShape(double MaskHeight, double MaskWidth, const char* MaskShape) const;
  1566. #ifdef _WIN32
  1567. // Perform a gray value closing with a selected mask.
  1568. HImage GrayClosingShape(double MaskHeight, double MaskWidth, const wchar_t* MaskShape) const;
  1569. #endif
  1570. // Perform a gray value opening with a selected mask.
  1571. HImage GrayOpeningShape(const HTuple& MaskHeight, const HTuple& MaskWidth, const HString& MaskShape) const;
  1572. // Perform a gray value opening with a selected mask.
  1573. HImage GrayOpeningShape(double MaskHeight, double MaskWidth, const HString& MaskShape) const;
  1574. // Perform a gray value opening with a selected mask.
  1575. HImage GrayOpeningShape(double MaskHeight, double MaskWidth, const char* MaskShape) const;
  1576. #ifdef _WIN32
  1577. // Perform a gray value opening with a selected mask.
  1578. HImage GrayOpeningShape(double MaskHeight, double MaskWidth, const wchar_t* MaskShape) const;
  1579. #endif
  1580. // Determine the minimum gray value within a selected mask.
  1581. HImage GrayErosionShape(const HTuple& MaskHeight, const HTuple& MaskWidth, const HString& MaskShape) const;
  1582. // Determine the minimum gray value within a selected mask.
  1583. HImage GrayErosionShape(double MaskHeight, double MaskWidth, const HString& MaskShape) const;
  1584. // Determine the minimum gray value within a selected mask.
  1585. HImage GrayErosionShape(double MaskHeight, double MaskWidth, const char* MaskShape) const;
  1586. #ifdef _WIN32
  1587. // Determine the minimum gray value within a selected mask.
  1588. HImage GrayErosionShape(double MaskHeight, double MaskWidth, const wchar_t* MaskShape) const;
  1589. #endif
  1590. // Determine the maximum gray value within a selected mask.
  1591. HImage GrayDilationShape(const HTuple& MaskHeight, const HTuple& MaskWidth, const HString& MaskShape) const;
  1592. // Determine the maximum gray value within a selected mask.
  1593. HImage GrayDilationShape(double MaskHeight, double MaskWidth, const HString& MaskShape) const;
  1594. // Determine the maximum gray value within a selected mask.
  1595. HImage GrayDilationShape(double MaskHeight, double MaskWidth, const char* MaskShape) const;
  1596. #ifdef _WIN32
  1597. // Determine the maximum gray value within a selected mask.
  1598. HImage GrayDilationShape(double MaskHeight, double MaskWidth, const wchar_t* MaskShape) const;
  1599. #endif
  1600. // Determine the gray value range within a rectangle.
  1601. HImage GrayRangeRect(Hlong MaskHeight, Hlong MaskWidth) const;
  1602. // Perform a gray value closing with a rectangular mask.
  1603. HImage GrayClosingRect(Hlong MaskHeight, Hlong MaskWidth) const;
  1604. // Perform a gray value opening with a rectangular mask.
  1605. HImage GrayOpeningRect(Hlong MaskHeight, Hlong MaskWidth) const;
  1606. // Determine the minimum gray value within a rectangle.
  1607. HImage GrayErosionRect(Hlong MaskHeight, Hlong MaskWidth) const;
  1608. // Determine the maximum gray value within a rectangle.
  1609. HImage GrayDilationRect(Hlong MaskHeight, Hlong MaskWidth) const;
  1610. // Thinning of gray value images.
  1611. HImage GraySkeleton() const;
  1612. // Transform an image with a gray-value look-up-table
  1613. HImage LutTrans(const HTuple& Lut) const;
  1614. // Calculate the correlation between an image and an arbitrary filter mask
  1615. HImage ConvolImage(const HTuple& FilterMask, const HTuple& Margin) const;
  1616. // Calculate the correlation between an image and an arbitrary filter mask
  1617. HImage ConvolImage(const HString& FilterMask, const HString& Margin) const;
  1618. // Calculate the correlation between an image and an arbitrary filter mask
  1619. HImage ConvolImage(const char* FilterMask, const char* Margin) const;
  1620. #ifdef _WIN32
  1621. // Calculate the correlation between an image and an arbitrary filter mask
  1622. HImage ConvolImage(const wchar_t* FilterMask, const wchar_t* Margin) const;
  1623. #endif
  1624. // Convert the type of an image.
  1625. HImage ConvertImageType(const HString& NewType) const;
  1626. // Convert the type of an image.
  1627. HImage ConvertImageType(const char* NewType) const;
  1628. #ifdef _WIN32
  1629. // Convert the type of an image.
  1630. HImage ConvertImageType(const wchar_t* NewType) const;
  1631. #endif
  1632. // Convert two real-valued images into a vector field image.
  1633. HImage RealToVectorField(const HImage& Col, const HString& Type) const;
  1634. // Convert two real-valued images into a vector field image.
  1635. HImage RealToVectorField(const HImage& Col, const char* Type) const;
  1636. #ifdef _WIN32
  1637. // Convert two real-valued images into a vector field image.
  1638. HImage RealToVectorField(const HImage& Col, const wchar_t* Type) const;
  1639. #endif
  1640. // Convert a vector field image into two real-valued images.
  1641. HImage VectorFieldToReal(HImage* Col) const;
  1642. // Convert two real images into a complex image.
  1643. HImage RealToComplex(const HImage& ImageImaginary) const;
  1644. // Convert a complex image into two real images.
  1645. HImage ComplexToReal(HImage* ImageImaginary) const;
  1646. // Paint regions with their average gray value.
  1647. HImage RegionToMean(const HRegion& Regions) const;
  1648. // Calculate the lowest possible gray value on an arbitrary path to the image border for each point in the image.
  1649. HImage GrayInside() const;
  1650. // Symmetry of gray values along a row.
  1651. HImage Symmetry(Hlong MaskSize, double Direction, double Exponent) const;
  1652. // Selection of gray values of a multi-channel image using an index image.
  1653. HImage SelectGrayvaluesFromChannels(const HImage& IndexImage) const;
  1654. // Extract depth using multiple focus levels.
  1655. HImage DepthFromFocus(HImage* Confidence, const HTuple& Filter, const HTuple& Selection) const;
  1656. // Extract depth using multiple focus levels.
  1657. HImage DepthFromFocus(HImage* Confidence, const HString& Filter, const HString& Selection) const;
  1658. // Extract depth using multiple focus levels.
  1659. HImage DepthFromFocus(HImage* Confidence, const char* Filter, const char* Selection) const;
  1660. #ifdef _WIN32
  1661. // Extract depth using multiple focus levels.
  1662. HImage DepthFromFocus(HImage* Confidence, const wchar_t* Filter, const wchar_t* Selection) const;
  1663. #endif
  1664. // Compute the uncalibrated scene flow between two stereo image pairs.
  1665. HImage SceneFlowUncalib(const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, HImage* DisparityChange, const HTuple& SmoothingFlow, const HTuple& SmoothingDisparity, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  1666. // Compute the uncalibrated scene flow between two stereo image pairs.
  1667. HImage SceneFlowUncalib(const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, HImage* DisparityChange, double SmoothingFlow, double SmoothingDisparity, const HString& GenParamName, const HString& GenParamValue) const;
  1668. // Compute the uncalibrated scene flow between two stereo image pairs.
  1669. HImage SceneFlowUncalib(const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, HImage* DisparityChange, double SmoothingFlow, double SmoothingDisparity, const char* GenParamName, const char* GenParamValue) const;
  1670. #ifdef _WIN32
  1671. // Compute the uncalibrated scene flow between two stereo image pairs.
  1672. HImage SceneFlowUncalib(const HImage& ImageRect2T1, const HImage& ImageRect1T2, const HImage& ImageRect2T2, const HImage& Disparity, HImage* DisparityChange, double SmoothingFlow, double SmoothingDisparity, const wchar_t* GenParamName, const wchar_t* GenParamValue) const;
  1673. #endif
  1674. // Unwarp an image using a vector field.
  1675. HImage UnwarpImageVectorField(const HImage& VectorField) const;
  1676. // Convolve a vector field with derivatives of the Gaussian.
  1677. HImage DerivateVectorField(const HTuple& Sigma, const HString& Component) const;
  1678. // Convolve a vector field with derivatives of the Gaussian.
  1679. HImage DerivateVectorField(double Sigma, const HString& Component) const;
  1680. // Convolve a vector field with derivatives of the Gaussian.
  1681. HImage DerivateVectorField(double Sigma, const char* Component) const;
  1682. #ifdef _WIN32
  1683. // Convolve a vector field with derivatives of the Gaussian.
  1684. HImage DerivateVectorField(double Sigma, const wchar_t* Component) const;
  1685. #endif
  1686. // Compute the length of the vectors of a vector field.
  1687. HImage VectorFieldLength(const HString& Mode) const;
  1688. // Compute the length of the vectors of a vector field.
  1689. HImage VectorFieldLength(const char* Mode) const;
  1690. #ifdef _WIN32
  1691. // Compute the length of the vectors of a vector field.
  1692. HImage VectorFieldLength(const wchar_t* Mode) const;
  1693. #endif
  1694. // Compute the optical flow between two images.
  1695. HImage OpticalFlowMg(const HImage& ImageT2, const HString& Algorithm, double SmoothingSigma, double IntegrationSigma, double FlowSmoothness, double GradientConstancy, const HTuple& MGParamName, const HTuple& MGParamValue) const;
  1696. // Compute the optical flow between two images.
  1697. HImage OpticalFlowMg(const HImage& ImageT2, const HString& Algorithm, double SmoothingSigma, double IntegrationSigma, double FlowSmoothness, double GradientConstancy, const HString& MGParamName, const HString& MGParamValue) const;
  1698. // Compute the optical flow between two images.
  1699. HImage OpticalFlowMg(const HImage& ImageT2, const char* Algorithm, double SmoothingSigma, double IntegrationSigma, double FlowSmoothness, double GradientConstancy, const char* MGParamName, const char* MGParamValue) const;
  1700. #ifdef _WIN32
  1701. // Compute the optical flow between two images.
  1702. HImage OpticalFlowMg(const HImage& ImageT2, const wchar_t* Algorithm, double SmoothingSigma, double IntegrationSigma, double FlowSmoothness, double GradientConstancy, const wchar_t* MGParamName, const wchar_t* MGParamValue) const;
  1703. #endif
  1704. // Matching a template and an image in a resolution pyramid.
  1705. HImage ExhaustiveMatchMg(const HImage& ImageTemplate, const HString& Mode, Hlong Level, Hlong Threshold) const;
  1706. // Matching a template and an image in a resolution pyramid.
  1707. HImage ExhaustiveMatchMg(const HImage& ImageTemplate, const char* Mode, Hlong Level, Hlong Threshold) const;
  1708. #ifdef _WIN32
  1709. // Matching a template and an image in a resolution pyramid.
  1710. HImage ExhaustiveMatchMg(const HImage& ImageTemplate, const wchar_t* Mode, Hlong Level, Hlong Threshold) const;
  1711. #endif
  1712. // Preparing a pattern for template matching with rotation.
  1713. HTemplate CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const HString& Optimize, const HString& GrayValues) const;
  1714. // Preparing a pattern for template matching with rotation.
  1715. HTemplate CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const char* Optimize, const char* GrayValues) const;
  1716. #ifdef _WIN32
  1717. // Preparing a pattern for template matching with rotation.
  1718. HTemplate CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const wchar_t* Optimize, const wchar_t* GrayValues) const;
  1719. #endif
  1720. // Preparing a pattern for template matching.
  1721. HTemplate CreateTemplate(Hlong FirstError, Hlong NumLevel, const HString& Optimize, const HString& GrayValues) const;
  1722. // Preparing a pattern for template matching.
  1723. HTemplate CreateTemplate(Hlong FirstError, Hlong NumLevel, const char* Optimize, const char* GrayValues) const;
  1724. #ifdef _WIN32
  1725. // Preparing a pattern for template matching.
  1726. HTemplate CreateTemplate(Hlong FirstError, Hlong NumLevel, const wchar_t* Optimize, const wchar_t* GrayValues) const;
  1727. #endif
  1728. // Adapting a template to the size of an image.
  1729. void AdaptTemplate(const HTemplate& TemplateID) const;
  1730. // Searching all good gray value matches in a pyramid.
  1731. HRegion FastMatchMg(const HTemplate& TemplateID, double MaxError, const HTuple& NumLevel) const;
  1732. // Searching all good gray value matches in a pyramid.
  1733. HRegion FastMatchMg(const HTemplate& TemplateID, double MaxError, Hlong NumLevel) const;
  1734. // Searching the best gray value matches in a pre generated pyramid.
  1735. void BestMatchPreMg(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, Hlong NumLevels, const HTuple& WhichLevels, double* Row, double* Column, double* Error) const;
  1736. // Searching the best gray value matches in a pre generated pyramid.
  1737. void BestMatchPreMg(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1738. // Searching the best gray value matches in a pre generated pyramid.
  1739. void BestMatchPreMg(const HTemplate& TemplateID, double MaxError, const char* SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1740. #ifdef _WIN32
  1741. // Searching the best gray value matches in a pre generated pyramid.
  1742. void BestMatchPreMg(const HTemplate& TemplateID, double MaxError, const wchar_t* SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1743. #endif
  1744. // Searching the best gray value matches in a pyramid.
  1745. void BestMatchMg(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, Hlong NumLevels, const HTuple& WhichLevels, double* Row, double* Column, double* Error) const;
  1746. // Searching the best gray value matches in a pyramid.
  1747. void BestMatchMg(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1748. // Searching the best gray value matches in a pyramid.
  1749. void BestMatchMg(const HTemplate& TemplateID, double MaxError, const char* SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1750. #ifdef _WIN32
  1751. // Searching the best gray value matches in a pyramid.
  1752. void BestMatchMg(const HTemplate& TemplateID, double MaxError, const wchar_t* SubPixel, Hlong NumLevels, Hlong WhichLevels, double* Row, double* Column, double* Error) const;
  1753. #endif
  1754. // Searching all good matches of a template and an image.
  1755. HRegion FastMatch(const HTemplate& TemplateID, double MaxError) const;
  1756. // Searching the best matching of a template and a pyramid with rotation.
  1757. void BestMatchRotMg(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Error) const;
  1758. // Searching the best matching of a template and a pyramid with rotation.
  1759. void BestMatchRotMg(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, Hlong NumLevels, double* Row, double* Column, double* Angle, double* Error) const;
  1760. // Searching the best matching of a template and a pyramid with rotation.
  1761. void BestMatchRotMg(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const char* SubPixel, Hlong NumLevels, double* Row, double* Column, double* Angle, double* Error) const;
  1762. #ifdef _WIN32
  1763. // Searching the best matching of a template and a pyramid with rotation.
  1764. void BestMatchRotMg(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const wchar_t* SubPixel, Hlong NumLevels, double* Row, double* Column, double* Angle, double* Error) const;
  1765. #endif
  1766. // Searching the best matching of a template and an image with rotation.
  1767. void BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Error) const;
  1768. // Searching the best matching of a template and an image with rotation.
  1769. void BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Angle, double* Error) const;
  1770. // Searching the best matching of a template and an image with rotation.
  1771. void BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const char* SubPixel, double* Row, double* Column, double* Angle, double* Error) const;
  1772. #ifdef _WIN32
  1773. // Searching the best matching of a template and an image with rotation.
  1774. void BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const wchar_t* SubPixel, double* Row, double* Column, double* Angle, double* Error) const;
  1775. #endif
  1776. // Searching the best matching of a template and an image.
  1777. void BestMatch(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Error) const;
  1778. // Searching the best matching of a template and an image.
  1779. void BestMatch(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Error) const;
  1780. // Searching the best matching of a template and an image.
  1781. void BestMatch(const HTemplate& TemplateID, double MaxError, const char* SubPixel, double* Row, double* Column, double* Error) const;
  1782. #ifdef _WIN32
  1783. // Searching the best matching of a template and an image.
  1784. void BestMatch(const HTemplate& TemplateID, double MaxError, const wchar_t* SubPixel, double* Row, double* Column, double* Error) const;
  1785. #endif
  1786. // Matching of a template and an image.
  1787. HImage ExhaustiveMatch(const HRegion& RegionOfInterest, const HImage& ImageTemplate, const HString& Mode) const;
  1788. // Matching of a template and an image.
  1789. HImage ExhaustiveMatch(const HRegion& RegionOfInterest, const HImage& ImageTemplate, const char* Mode) const;
  1790. #ifdef _WIN32
  1791. // Matching of a template and an image.
  1792. HImage ExhaustiveMatch(const HRegion& RegionOfInterest, const HImage& ImageTemplate, const wchar_t* Mode) const;
  1793. #endif
  1794. // Searching corners in images.
  1795. HImage CornerResponse(Hlong Size, double Weight) const;
  1796. // Calculating a Gauss pyramid.
  1797. HImage GenGaussPyramid(const HString& Mode, double Scale) const;
  1798. // Calculating a Gauss pyramid.
  1799. HImage GenGaussPyramid(const char* Mode, double Scale) const;
  1800. #ifdef _WIN32
  1801. // Calculating a Gauss pyramid.
  1802. HImage GenGaussPyramid(const wchar_t* Mode, double Scale) const;
  1803. #endif
  1804. // Calculating the monotony operation.
  1805. HImage Monotony() const;
  1806. // Edge extraction using bandpass filters.
  1807. HImage BandpassImage(const HString& FilterType) const;
  1808. // Edge extraction using bandpass filters.
  1809. HImage BandpassImage(const char* FilterType) const;
  1810. #ifdef _WIN32
  1811. // Edge extraction using bandpass filters.
  1812. HImage BandpassImage(const wchar_t* FilterType) const;
  1813. #endif
  1814. // Detect color lines and their width.
  1815. HXLDCont LinesColor(const HTuple& Sigma, const HTuple& Low, const HTuple& High, const HString& ExtractWidth, const HString& CompleteJunctions) const;
  1816. // Detect color lines and their width.
  1817. HXLDCont LinesColor(double Sigma, double Low, double High, const HString& ExtractWidth, const HString& CompleteJunctions) const;
  1818. // Detect color lines and their width.
  1819. HXLDCont LinesColor(double Sigma, double Low, double High, const char* ExtractWidth, const char* CompleteJunctions) const;
  1820. #ifdef _WIN32
  1821. // Detect color lines and their width.
  1822. HXLDCont LinesColor(double Sigma, double Low, double High, const wchar_t* ExtractWidth, const wchar_t* CompleteJunctions) const;
  1823. #endif
  1824. // Detect lines and their width.
  1825. HXLDCont LinesGauss(const HTuple& Sigma, const HTuple& Low, const HTuple& High, const HString& LightDark, const HString& ExtractWidth, const HString& LineModel, const HString& CompleteJunctions) const;
  1826. // Detect lines and their width.
  1827. HXLDCont LinesGauss(double Sigma, double Low, double High, const HString& LightDark, const HString& ExtractWidth, const HString& LineModel, const HString& CompleteJunctions) const;
  1828. // Detect lines and their width.
  1829. HXLDCont LinesGauss(double Sigma, double Low, double High, const char* LightDark, const char* ExtractWidth, const char* LineModel, const char* CompleteJunctions) const;
  1830. #ifdef _WIN32
  1831. // Detect lines and their width.
  1832. HXLDCont LinesGauss(double Sigma, double Low, double High, const wchar_t* LightDark, const wchar_t* ExtractWidth, const wchar_t* LineModel, const wchar_t* CompleteJunctions) const;
  1833. #endif
  1834. // Detection of lines using the facet model.
  1835. HXLDCont LinesFacet(Hlong MaskSize, const HTuple& Low, const HTuple& High, const HString& LightDark) const;
  1836. // Detection of lines using the facet model.
  1837. HXLDCont LinesFacet(Hlong MaskSize, double Low, double High, const HString& LightDark) const;
  1838. // Detection of lines using the facet model.
  1839. HXLDCont LinesFacet(Hlong MaskSize, double Low, double High, const char* LightDark) const;
  1840. #ifdef _WIN32
  1841. // Detection of lines using the facet model.
  1842. HXLDCont LinesFacet(Hlong MaskSize, double Low, double High, const wchar_t* LightDark) const;
  1843. #endif
  1844. // Store a filter mask in the spatial domain as a real-image.
  1845. void GenFilterMask(const HTuple& FilterMask, double Scale, Hlong Width, Hlong Height);
  1846. // Store a filter mask in the spatial domain as a real-image.
  1847. void GenFilterMask(const HString& FilterMask, double Scale, Hlong Width, Hlong Height);
  1848. // Store a filter mask in the spatial domain as a real-image.
  1849. void GenFilterMask(const char* FilterMask, double Scale, Hlong Width, Hlong Height);
  1850. #ifdef _WIN32
  1851. // Store a filter mask in the spatial domain as a real-image.
  1852. void GenFilterMask(const wchar_t* FilterMask, double Scale, Hlong Width, Hlong Height);
  1853. #endif
  1854. // Generate a mean filter in the frequency domain.
  1855. void GenMeanFilter(const HString& MaskShape, double Diameter1, double Diameter2, double Phi, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1856. // Generate a mean filter in the frequency domain.
  1857. void GenMeanFilter(const char* MaskShape, double Diameter1, double Diameter2, double Phi, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1858. #ifdef _WIN32
  1859. // Generate a mean filter in the frequency domain.
  1860. void GenMeanFilter(const wchar_t* MaskShape, double Diameter1, double Diameter2, double Phi, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1861. #endif
  1862. // Generate a Gaussian filter in the frequency domain.
  1863. void GenGaussFilter(double Sigma1, double Sigma2, double Phi, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1864. // Generate a Gaussian filter in the frequency domain.
  1865. void GenGaussFilter(double Sigma1, double Sigma2, double Phi, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1866. #ifdef _WIN32
  1867. // Generate a Gaussian filter in the frequency domain.
  1868. void GenGaussFilter(double Sigma1, double Sigma2, double Phi, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1869. #endif
  1870. // Generate a derivative filter in the frequency domain.
  1871. void GenDerivativeFilter(const HString& Derivative, Hlong Exponent, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1872. // Generate a derivative filter in the frequency domain.
  1873. void GenDerivativeFilter(const char* Derivative, Hlong Exponent, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1874. #ifdef _WIN32
  1875. // Generate a derivative filter in the frequency domain.
  1876. void GenDerivativeFilter(const wchar_t* Derivative, Hlong Exponent, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1877. #endif
  1878. // Generate a bandpass filter with Gaussian or sinusoidal shape.
  1879. void GenStdBandpass(double Frequency, double Sigma, const HString& Type, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1880. // Generate a bandpass filter with Gaussian or sinusoidal shape.
  1881. void GenStdBandpass(double Frequency, double Sigma, const char* Type, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1882. #ifdef _WIN32
  1883. // Generate a bandpass filter with Gaussian or sinusoidal shape.
  1884. void GenStdBandpass(double Frequency, double Sigma, const wchar_t* Type, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1885. #endif
  1886. // Generate a bandpass filter with sinusoidal shape.
  1887. void GenSinBandpass(double Frequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1888. // Generate a bandpass filter with sinusoidal shape.
  1889. void GenSinBandpass(double Frequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1890. #ifdef _WIN32
  1891. // Generate a bandpass filter with sinusoidal shape.
  1892. void GenSinBandpass(double Frequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1893. #endif
  1894. // Generate an ideal band filter.
  1895. void GenBandfilter(double MinFrequency, double MaxFrequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1896. // Generate an ideal band filter.
  1897. void GenBandfilter(double MinFrequency, double MaxFrequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1898. #ifdef _WIN32
  1899. // Generate an ideal band filter.
  1900. void GenBandfilter(double MinFrequency, double MaxFrequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1901. #endif
  1902. // Generate an ideal bandpass filter.
  1903. void GenBandpass(double MinFrequency, double MaxFrequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1904. // Generate an ideal bandpass filter.
  1905. void GenBandpass(double MinFrequency, double MaxFrequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1906. #ifdef _WIN32
  1907. // Generate an ideal bandpass filter.
  1908. void GenBandpass(double MinFrequency, double MaxFrequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1909. #endif
  1910. // Generate an ideal lowpass filter.
  1911. void GenLowpass(double Frequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1912. // Generate an ideal lowpass filter.
  1913. void GenLowpass(double Frequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1914. #ifdef _WIN32
  1915. // Generate an ideal lowpass filter.
  1916. void GenLowpass(double Frequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1917. #endif
  1918. // Generate an ideal highpass filter.
  1919. void GenHighpass(double Frequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1920. // Generate an ideal highpass filter.
  1921. void GenHighpass(double Frequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1922. #ifdef _WIN32
  1923. // Generate an ideal highpass filter.
  1924. void GenHighpass(double Frequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1925. #endif
  1926. // Return the power spectrum of a complex image.
  1927. HImage PowerLn() const;
  1928. // Return the power spectrum of a complex image.
  1929. HImage PowerReal() const;
  1930. // Return the power spectrum of a complex image.
  1931. HImage PowerByte() const;
  1932. // Return the phase of a complex image in degrees.
  1933. HImage PhaseDeg() const;
  1934. // Return the phase of a complex image in radians.
  1935. HImage PhaseRad() const;
  1936. // Calculate the energy of a two-channel image.
  1937. HImage EnergyGabor(const HImage& ImageHilbert) const;
  1938. // Convolve an image with a Gabor filter in the frequency domain.
  1939. HImage ConvolGabor(const HImage& GaborFilter, HImage* ImageResultHilbert) const;
  1940. // Generate a Gabor filter.
  1941. void GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height);
  1942. // Generate a Gabor filter.
  1943. void GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const char* Norm, const char* Mode, Hlong Width, Hlong Height);
  1944. #ifdef _WIN32
  1945. // Generate a Gabor filter.
  1946. void GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height);
  1947. #endif
  1948. // Compute the phase correlation of two images in the frequency domain.
  1949. HImage PhaseCorrelationFft(const HImage& ImageFFT2) const;
  1950. // Compute the correlation of two images in the frequency domain.
  1951. HImage CorrelationFft(const HImage& ImageFFT2) const;
  1952. // Convolve an image with a filter in the frequency domain.
  1953. HImage ConvolFft(const HImage& ImageFilter) const;
  1954. // Compute the real-valued fast Fourier transform of an image.
  1955. HImage RftGeneric(const HString& Direction, const HString& Norm, const HString& ResultType, Hlong Width) const;
  1956. // Compute the real-valued fast Fourier transform of an image.
  1957. HImage RftGeneric(const char* Direction, const char* Norm, const char* ResultType, Hlong Width) const;
  1958. #ifdef _WIN32
  1959. // Compute the real-valued fast Fourier transform of an image.
  1960. HImage RftGeneric(const wchar_t* Direction, const wchar_t* Norm, const wchar_t* ResultType, Hlong Width) const;
  1961. #endif
  1962. // Compute the inverse fast Fourier transform of an image.
  1963. HImage FftImageInv() const;
  1964. // Compute the fast Fourier transform of an image.
  1965. HImage FftImage() const;
  1966. // Compute the fast Fourier transform of an image.
  1967. HImage FftGeneric(const HString& Direction, Hlong Exponent, const HString& Norm, const HString& Mode, const HString& ResultType) const;
  1968. // Compute the fast Fourier transform of an image.
  1969. HImage FftGeneric(const char* Direction, Hlong Exponent, const char* Norm, const char* Mode, const char* ResultType) const;
  1970. #ifdef _WIN32
  1971. // Compute the fast Fourier transform of an image.
  1972. HImage FftGeneric(const wchar_t* Direction, Hlong Exponent, const wchar_t* Norm, const wchar_t* Mode, const wchar_t* ResultType) const;
  1973. #endif
  1974. // Apply a shock filter to an image.
  1975. HImage ShockFilter(double Theta, Hlong Iterations, const HString& Mode, double Sigma) const;
  1976. // Apply a shock filter to an image.
  1977. HImage ShockFilter(double Theta, Hlong Iterations, const char* Mode, double Sigma) const;
  1978. #ifdef _WIN32
  1979. // Apply a shock filter to an image.
  1980. HImage ShockFilter(double Theta, Hlong Iterations, const wchar_t* Mode, double Sigma) const;
  1981. #endif
  1982. // Apply the mean curvature flow to an image.
  1983. HImage MeanCurvatureFlow(double Sigma, double Theta, Hlong Iterations) const;
  1984. // Perform a coherence enhancing diffusion of an image.
  1985. HImage CoherenceEnhancingDiff(double Sigma, double Rho, double Theta, Hlong Iterations) const;
  1986. // Histogram linearization of images
  1987. HImage EquHistoImage() const;
  1988. // Illuminate image.
  1989. HImage Illuminate(Hlong MaskWidth, Hlong MaskHeight, double Factor) const;
  1990. // Enhance contrast of the image.
  1991. HImage Emphasize(Hlong MaskWidth, Hlong MaskHeight, double Factor) const;
  1992. // Maximum gray value spreading in the value range 0 to 255.
  1993. HImage ScaleImageMax() const;
  1994. // Detect edges (amplitude and direction) using the Robinson operator.
  1995. HImage RobinsonDir(HImage* ImageEdgeDir) const;
  1996. // Detect edges (amplitude) using the Robinson operator.
  1997. HImage RobinsonAmp() const;
  1998. // Detect edges (amplitude and direction) using the Kirsch operator.
  1999. HImage KirschDir(HImage* ImageEdgeDir) const;
  2000. // Detect edges (amplitude) using the Kirsch operator.
  2001. HImage KirschAmp() const;
  2002. // Detect edges (amplitude and direction) using the Frei-Chen operator.
  2003. HImage FreiDir(HImage* ImageEdgeDir) const;
  2004. // Detect edges (amplitude) using the Frei-Chen operator.
  2005. HImage FreiAmp() const;
  2006. // Detect edges (amplitude and direction) using the Prewitt operator.
  2007. HImage PrewittDir(HImage* ImageEdgeDir) const;
  2008. // Detect edges (amplitude) using the Prewitt operator.
  2009. HImage PrewittAmp() const;
  2010. // Detect edges (amplitude) using the Sobel operator.
  2011. HImage SobelAmp(const HString& FilterType, const HTuple& Size) const;
  2012. // Detect edges (amplitude) using the Sobel operator.
  2013. HImage SobelAmp(const HString& FilterType, Hlong Size) const;
  2014. // Detect edges (amplitude) using the Sobel operator.
  2015. HImage SobelAmp(const char* FilterType, Hlong Size) const;
  2016. #ifdef _WIN32
  2017. // Detect edges (amplitude) using the Sobel operator.
  2018. HImage SobelAmp(const wchar_t* FilterType, Hlong Size) const;
  2019. #endif
  2020. // Detect edges (amplitude and direction) using the Sobel operator.
  2021. HImage SobelDir(HImage* EdgeDirection, const HString& FilterType, const HTuple& Size) const;
  2022. // Detect edges (amplitude and direction) using the Sobel operator.
  2023. HImage SobelDir(HImage* EdgeDirection, const HString& FilterType, Hlong Size) const;
  2024. // Detect edges (amplitude and direction) using the Sobel operator.
  2025. HImage SobelDir(HImage* EdgeDirection, const char* FilterType, Hlong Size) const;
  2026. #ifdef _WIN32
  2027. // Detect edges (amplitude and direction) using the Sobel operator.
  2028. HImage SobelDir(HImage* EdgeDirection, const wchar_t* FilterType, Hlong Size) const;
  2029. #endif
  2030. // Detect edges using the Roberts filter.
  2031. HImage Roberts(const HString& FilterType) const;
  2032. // Detect edges using the Roberts filter.
  2033. HImage Roberts(const char* FilterType) const;
  2034. #ifdef _WIN32
  2035. // Detect edges using the Roberts filter.
  2036. HImage Roberts(const wchar_t* FilterType) const;
  2037. #endif
  2038. // Calculate the Laplace operator by using finite differences.
  2039. HImage Laplace(const HString& ResultType, const HTuple& MaskSize, const HString& FilterMask) const;
  2040. // Calculate the Laplace operator by using finite differences.
  2041. HImage Laplace(const HString& ResultType, Hlong MaskSize, const HString& FilterMask) const;
  2042. // Calculate the Laplace operator by using finite differences.
  2043. HImage Laplace(const char* ResultType, Hlong MaskSize, const char* FilterMask) const;
  2044. #ifdef _WIN32
  2045. // Calculate the Laplace operator by using finite differences.
  2046. HImage Laplace(const wchar_t* ResultType, Hlong MaskSize, const wchar_t* FilterMask) const;
  2047. #endif
  2048. // Extract high frequency components from an image.
  2049. HImage HighpassImage(Hlong Width, Hlong Height) const;
  2050. // Extract subpixel precise color edges using Deriche, Shen, or Canny filters.
  2051. HXLDCont EdgesColorSubPix(const HString& Filter, double Alpha, const HTuple& Low, const HTuple& High) const;
  2052. // Extract subpixel precise color edges using Deriche, Shen, or Canny filters.
  2053. HXLDCont EdgesColorSubPix(const HString& Filter, double Alpha, double Low, double High) const;
  2054. // Extract subpixel precise color edges using Deriche, Shen, or Canny filters.
  2055. HXLDCont EdgesColorSubPix(const char* Filter, double Alpha, double Low, double High) const;
  2056. #ifdef _WIN32
  2057. // Extract subpixel precise color edges using Deriche, Shen, or Canny filters.
  2058. HXLDCont EdgesColorSubPix(const wchar_t* Filter, double Alpha, double Low, double High) const;
  2059. #endif
  2060. // Extract color edges using Canny, Deriche, or Shen filters.
  2061. HImage EdgesColor(HImage* ImaDir, const HString& Filter, double Alpha, const HString& NMS, Hlong Low, Hlong High) const;
  2062. // Extract color edges using Canny, Deriche, or Shen filters.
  2063. HImage EdgesColor(HImage* ImaDir, const char* Filter, double Alpha, const char* NMS, Hlong Low, Hlong High) const;
  2064. #ifdef _WIN32
  2065. // Extract color edges using Canny, Deriche, or Shen filters.
  2066. HImage EdgesColor(HImage* ImaDir, const wchar_t* Filter, double Alpha, const wchar_t* NMS, Hlong Low, Hlong High) const;
  2067. #endif
  2068. // Extract sub-pixel precise edges using Deriche, Lanser, Shen, or Canny filters.
  2069. HXLDCont EdgesSubPix(const HString& Filter, double Alpha, const HTuple& Low, const HTuple& High) const;
  2070. // Extract sub-pixel precise edges using Deriche, Lanser, Shen, or Canny filters.
  2071. HXLDCont EdgesSubPix(const HString& Filter, double Alpha, Hlong Low, Hlong High) const;
  2072. // Extract sub-pixel precise edges using Deriche, Lanser, Shen, or Canny filters.
  2073. HXLDCont EdgesSubPix(const char* Filter, double Alpha, Hlong Low, Hlong High) const;
  2074. #ifdef _WIN32
  2075. // Extract sub-pixel precise edges using Deriche, Lanser, Shen, or Canny filters.
  2076. HXLDCont EdgesSubPix(const wchar_t* Filter, double Alpha, Hlong Low, Hlong High) const;
  2077. #endif
  2078. // Extract edges using Deriche, Lanser, Shen, or Canny filters.
  2079. HImage EdgesImage(HImage* ImaDir, const HString& Filter, double Alpha, const HString& NMS, const HTuple& Low, const HTuple& High) const;
  2080. // Extract edges using Deriche, Lanser, Shen, or Canny filters.
  2081. HImage EdgesImage(HImage* ImaDir, const HString& Filter, double Alpha, const HString& NMS, Hlong Low, Hlong High) const;
  2082. // Extract edges using Deriche, Lanser, Shen, or Canny filters.
  2083. HImage EdgesImage(HImage* ImaDir, const char* Filter, double Alpha, const char* NMS, Hlong Low, Hlong High) const;
  2084. #ifdef _WIN32
  2085. // Extract edges using Deriche, Lanser, Shen, or Canny filters.
  2086. HImage EdgesImage(HImage* ImaDir, const wchar_t* Filter, double Alpha, const wchar_t* NMS, Hlong Low, Hlong High) const;
  2087. #endif
  2088. // Convolve an image with derivatives of the Gaussian.
  2089. HImage DerivateGauss(const HTuple& Sigma, const HString& Component) const;
  2090. // Convolve an image with derivatives of the Gaussian.
  2091. HImage DerivateGauss(double Sigma, const HString& Component) const;
  2092. // Convolve an image with derivatives of the Gaussian.
  2093. HImage DerivateGauss(double Sigma, const char* Component) const;
  2094. #ifdef _WIN32
  2095. // Convolve an image with derivatives of the Gaussian.
  2096. HImage DerivateGauss(double Sigma, const wchar_t* Component) const;
  2097. #endif
  2098. // LoG-Operator (Laplace of Gaussian).
  2099. HImage LaplaceOfGauss(const HTuple& Sigma) const;
  2100. // LoG-Operator (Laplace of Gaussian).
  2101. HImage LaplaceOfGauss(double Sigma) const;
  2102. // Approximate the LoG operator (Laplace of Gaussian).
  2103. HImage DiffOfGauss(double Sigma, double SigFactor) const;
  2104. // Detect straight edge segments.
  2105. void DetectEdgeSegments(Hlong SobelSize, Hlong MinAmplitude, Hlong MaxDistance, Hlong MinLength, HTuple* BeginRow, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol) const;
  2106. // Release the look-up-table needed for color space transformation.
  2107. static void ClearColorTransLut(const HColorTransLUT& ColorTransLUTHandle);
  2108. // Color space transformation using pre-generated look-up-table.
  2109. HImage ApplyColorTransLut(const HImage& Image2, const HImage& Image3, HImage* ImageResult2, HImage* ImageResult3, const HColorTransLUT& ColorTransLUTHandle) const;
  2110. // Creates the look-up-table for transformation of an image from the RGB color space to an arbitrary color space.
  2111. static HColorTransLUT CreateColorTransLut(const HString& ColorSpace, const HString& TransDirection, Hlong NumBits);
  2112. // Creates the look-up-table for transformation of an image from the RGB color space to an arbitrary color space.
  2113. static HColorTransLUT CreateColorTransLut(const char* ColorSpace, const char* TransDirection, Hlong NumBits);
  2114. #ifdef _WIN32
  2115. // Creates the look-up-table for transformation of an image from the RGB color space to an arbitrary color space.
  2116. static HColorTransLUT CreateColorTransLut(const wchar_t* ColorSpace, const wchar_t* TransDirection, Hlong NumBits);
  2117. #endif
  2118. // Convert a single-channel color filter array image into an RGB image.
  2119. HImage CfaToRgb(const HString& CFAType, const HString& Interpolation) const;
  2120. // Convert a single-channel color filter array image into an RGB image.
  2121. HImage CfaToRgb(const char* CFAType, const char* Interpolation) const;
  2122. #ifdef _WIN32
  2123. // Convert a single-channel color filter array image into an RGB image.
  2124. HImage CfaToRgb(const wchar_t* CFAType, const wchar_t* Interpolation) const;
  2125. #endif
  2126. // Transform an RGB image into a gray scale image.
  2127. HImage Rgb1ToGray() const;
  2128. // Transform an RGB image to a gray scale image.
  2129. HImage Rgb3ToGray(const HImage& ImageGreen, const HImage& ImageBlue) const;
  2130. // Transform an image from the RGB color space to an arbitrary color space.
  2131. HImage TransFromRgb(const HImage& ImageGreen, const HImage& ImageBlue, HImage* ImageResult2, HImage* ImageResult3, const HString& ColorSpace) const;
  2132. // Transform an image from the RGB color space to an arbitrary color space.
  2133. HImage TransFromRgb(const HImage& ImageGreen, const HImage& ImageBlue, HImage* ImageResult2, HImage* ImageResult3, const char* ColorSpace) const;
  2134. #ifdef _WIN32
  2135. // Transform an image from the RGB color space to an arbitrary color space.
  2136. HImage TransFromRgb(const HImage& ImageGreen, const HImage& ImageBlue, HImage* ImageResult2, HImage* ImageResult3, const wchar_t* ColorSpace) const;
  2137. #endif
  2138. // Transform an image from an arbitrary color space to the RGB color space.
  2139. HImage TransToRgb(const HImage& ImageInput2, const HImage& ImageInput3, HImage* ImageGreen, HImage* ImageBlue, const HString& ColorSpace) const;
  2140. // Transform an image from an arbitrary color space to the RGB color space.
  2141. HImage TransToRgb(const HImage& ImageInput2, const HImage& ImageInput3, HImage* ImageGreen, HImage* ImageBlue, const char* ColorSpace) const;
  2142. #ifdef _WIN32
  2143. // Transform an image from an arbitrary color space to the RGB color space.
  2144. HImage TransToRgb(const HImage& ImageInput2, const HImage& ImageInput3, HImage* ImageGreen, HImage* ImageBlue, const wchar_t* ColorSpace) const;
  2145. #endif
  2146. // Logical "AND" of each pixel using a bit mask.
  2147. HImage BitMask(Hlong BitMask) const;
  2148. // Extract a bit from the pixels.
  2149. HImage BitSlice(Hlong Bit) const;
  2150. // Right shift of all pixels of the image.
  2151. HImage BitRshift(Hlong Shift) const;
  2152. // Left shift of all pixels of the image.
  2153. HImage BitLshift(Hlong Shift) const;
  2154. // Complement all bits of the pixels.
  2155. HImage BitNot() const;
  2156. // Bit-by-bit XOR of all pixels of the input images.
  2157. HImage BitXor(const HImage& Image2) const;
  2158. // Bit-by-bit OR of all pixels of the input images.
  2159. HImage BitOr(const HImage& Image2) const;
  2160. // Bit-by-bit AND of all pixels of the input images.
  2161. HImage BitAnd(const HImage& Image2) const;
  2162. // Perform a gamma encoding or decoding of an image.
  2163. HImage GammaImage(double Gamma, double Offset, double Threshold, const HTuple& MaxGray, const HString& Encode) const;
  2164. // Perform a gamma encoding or decoding of an image.
  2165. HImage GammaImage(double Gamma, double Offset, double Threshold, double MaxGray, const HString& Encode) const;
  2166. // Perform a gamma encoding or decoding of an image.
  2167. HImage GammaImage(double Gamma, double Offset, double Threshold, double MaxGray, const char* Encode) const;
  2168. #ifdef _WIN32
  2169. // Perform a gamma encoding or decoding of an image.
  2170. HImage GammaImage(double Gamma, double Offset, double Threshold, double MaxGray, const wchar_t* Encode) const;
  2171. #endif
  2172. // Raise an image to a power.
  2173. HImage PowImage(const HTuple& Exponent) const;
  2174. // Raise an image to a power.
  2175. HImage PowImage(double Exponent) const;
  2176. // Calculate the exponentiation of an image.
  2177. HImage ExpImage(const HTuple& Base) const;
  2178. // Calculate the exponentiation of an image.
  2179. HImage ExpImage(const HString& Base) const;
  2180. // Calculate the exponentiation of an image.
  2181. HImage ExpImage(const char* Base) const;
  2182. #ifdef _WIN32
  2183. // Calculate the exponentiation of an image.
  2184. HImage ExpImage(const wchar_t* Base) const;
  2185. #endif
  2186. // Calculate the logarithm of an image.
  2187. HImage LogImage(const HTuple& Base) const;
  2188. // Calculate the logarithm of an image.
  2189. HImage LogImage(const HString& Base) const;
  2190. // Calculate the logarithm of an image.
  2191. HImage LogImage(const char* Base) const;
  2192. #ifdef _WIN32
  2193. // Calculate the logarithm of an image.
  2194. HImage LogImage(const wchar_t* Base) const;
  2195. #endif
  2196. // Calculate the arctangent of two images.
  2197. HImage Atan2Image(const HImage& ImageX) const;
  2198. // Calculate the arctangent of an image.
  2199. HImage AtanImage() const;
  2200. // Calculate the arccosine of an image.
  2201. HImage AcosImage() const;
  2202. // Calculate the arcsine of an image.
  2203. HImage AsinImage() const;
  2204. // Calculate the tangent of an image.
  2205. HImage TanImage() const;
  2206. // Calculate the cosine of an image.
  2207. HImage CosImage() const;
  2208. // Calculate the sine of an image.
  2209. HImage SinImage() const;
  2210. // Calculate the absolute difference of two images.
  2211. HImage AbsDiffImage(const HImage& Image2, const HTuple& Mult) const;
  2212. // Calculate the absolute difference of two images.
  2213. HImage AbsDiffImage(const HImage& Image2, double Mult) const;
  2214. // Calculate the square root of an image.
  2215. HImage SqrtImage() const;
  2216. // Subtract two images.
  2217. HImage SubImage(const HImage& ImageSubtrahend, const HTuple& Mult, const HTuple& Add) const;
  2218. // Subtract two images.
  2219. HImage SubImage(const HImage& ImageSubtrahend, double Mult, double Add) const;
  2220. // Scale the gray values of an image.
  2221. HImage ScaleImage(const HTuple& Mult, const HTuple& Add) const;
  2222. // Scale the gray values of an image.
  2223. HImage ScaleImage(double Mult, double Add) const;
  2224. // Divide two images.
  2225. HImage DivImage(const HImage& Image2, const HTuple& Mult, const HTuple& Add) const;
  2226. // Divide two images.
  2227. HImage DivImage(const HImage& Image2, double Mult, double Add) const;
  2228. // Multiply two images.
  2229. HImage MultImage(const HImage& Image2, const HTuple& Mult, const HTuple& Add) const;
  2230. // Multiply two images.
  2231. HImage MultImage(const HImage& Image2, double Mult, double Add) const;
  2232. // Add two images.
  2233. HImage AddImage(const HImage& Image2, const HTuple& Mult, const HTuple& Add) const;
  2234. // Add two images.
  2235. HImage AddImage(const HImage& Image2, double Mult, double Add) const;
  2236. // Calculate the absolute value (modulus) of an image.
  2237. HImage AbsImage() const;
  2238. // Calculate the minimum of two images pixel by pixel.
  2239. HImage MinImage(const HImage& Image2) const;
  2240. // Calculate the maximum of two images pixel by pixel.
  2241. HImage MaxImage(const HImage& Image2) const;
  2242. // Invert an image.
  2243. HImage InvertImage() const;
  2244. // Apply an automatic color correction to panorama images.
  2245. HImage AdjustMosaicImages(const HTuple& From, const HTuple& To, Hlong ReferenceImage, const HTuple& HomMatrices2D, const HString& EstimationMethod, const HTuple& EstimateParameters, const HString& OECFModel) const;
  2246. // Apply an automatic color correction to panorama images.
  2247. HImage AdjustMosaicImages(const HTuple& From, const HTuple& To, Hlong ReferenceImage, const HTuple& HomMatrices2D, const HString& EstimationMethod, const HString& EstimateParameters, const HString& OECFModel) const;
  2248. // Apply an automatic color correction to panorama images.
  2249. HImage AdjustMosaicImages(const HTuple& From, const HTuple& To, Hlong ReferenceImage, const HTuple& HomMatrices2D, const char* EstimationMethod, const char* EstimateParameters, const char* OECFModel) const;
  2250. #ifdef _WIN32
  2251. // Apply an automatic color correction to panorama images.
  2252. HImage AdjustMosaicImages(const HTuple& From, const HTuple& To, Hlong ReferenceImage, const HTuple& HomMatrices2D, const wchar_t* EstimationMethod, const wchar_t* EstimateParameters, const wchar_t* OECFModel) const;
  2253. #endif
  2254. // Create 6 cube map images of a spherical mosaic.
  2255. HImage GenCubeMapMosaic(HImage* Rear, HImage* Left, HImage* Right, HImage* Top, HImage* Bottom, const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, Hlong CubeMapDimension, const HTuple& StackingOrder, const HString& Interpolation) const;
  2256. // Create 6 cube map images of a spherical mosaic.
  2257. HImage GenCubeMapMosaic(HImage* Rear, HImage* Left, HImage* Right, HImage* Top, HImage* Bottom, const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, Hlong CubeMapDimension, const HString& StackingOrder, const HString& Interpolation) const;
  2258. // Create 6 cube map images of a spherical mosaic.
  2259. HImage GenCubeMapMosaic(HImage* Rear, HImage* Left, HImage* Right, HImage* Top, HImage* Bottom, const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, Hlong CubeMapDimension, const char* StackingOrder, const char* Interpolation) const;
  2260. #ifdef _WIN32
  2261. // Create 6 cube map images of a spherical mosaic.
  2262. HImage GenCubeMapMosaic(HImage* Rear, HImage* Left, HImage* Right, HImage* Top, HImage* Bottom, const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, Hlong CubeMapDimension, const wchar_t* StackingOrder, const wchar_t* Interpolation) const;
  2263. #endif
  2264. // Create a spherical mosaic image.
  2265. HImage GenSphericalMosaic(const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, const HTuple& LatMin, const HTuple& LatMax, const HTuple& LongMin, const HTuple& LongMax, const HTuple& LatLongStep, const HTuple& StackingOrder, const HTuple& Interpolation) const;
  2266. // Create a spherical mosaic image.
  2267. HImage GenSphericalMosaic(const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, double LatMin, double LatMax, double LongMin, double LongMax, double LatLongStep, const HString& StackingOrder, const HString& Interpolation) const;
  2268. // Create a spherical mosaic image.
  2269. HImage GenSphericalMosaic(const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, double LatMin, double LatMax, double LongMin, double LongMax, double LatLongStep, const char* StackingOrder, const char* Interpolation) const;
  2270. #ifdef _WIN32
  2271. // Create a spherical mosaic image.
  2272. HImage GenSphericalMosaic(const HHomMat2DArray& CameraMatrices, const HHomMat2DArray& RotationMatrices, double LatMin, double LatMax, double LongMin, double LongMax, double LatLongStep, const wchar_t* StackingOrder, const wchar_t* Interpolation) const;
  2273. #endif
  2274. // Combine multiple images into a mosaic image.
  2275. HImage GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const HTuple& StackingOrder, const HString& TransformDomain, HHomMat2D* TransMat2D) const;
  2276. // Combine multiple images into a mosaic image.
  2277. HImage GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const HString& StackingOrder, const HString& TransformDomain, HHomMat2D* TransMat2D) const;
  2278. // Combine multiple images into a mosaic image.
  2279. HImage GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const char* StackingOrder, const char* TransformDomain, HHomMat2D* TransMat2D) const;
  2280. #ifdef _WIN32
  2281. // Combine multiple images into a mosaic image.
  2282. HImage GenBundleAdjustedMosaic(const HHomMat2DArray& HomMatrices2D, const wchar_t* StackingOrder, const wchar_t* TransformDomain, HHomMat2D* TransMat2D) const;
  2283. #endif
  2284. // Combine multiple images into a mosaic image.
  2285. HImage GenProjectiveMosaic(Hlong StartImage, const HTuple& MappingSource, const HTuple& MappingDest, const HHomMat2DArray& HomMatrices2D, const HTuple& StackingOrder, const HString& TransformDomain, HHomMat2DArray* MosaicMatrices2D) const;
  2286. // Combine multiple images into a mosaic image.
  2287. HImage GenProjectiveMosaic(Hlong StartImage, const HTuple& MappingSource, const HTuple& MappingDest, const HHomMat2DArray& HomMatrices2D, const HString& StackingOrder, const HString& TransformDomain, HHomMat2DArray* MosaicMatrices2D) const;
  2288. // Combine multiple images into a mosaic image.
  2289. HImage GenProjectiveMosaic(Hlong StartImage, const HTuple& MappingSource, const HTuple& MappingDest, const HHomMat2DArray& HomMatrices2D, const char* StackingOrder, const char* TransformDomain, HHomMat2DArray* MosaicMatrices2D) const;
  2290. #ifdef _WIN32
  2291. // Combine multiple images into a mosaic image.
  2292. HImage GenProjectiveMosaic(Hlong StartImage, const HTuple& MappingSource, const HTuple& MappingDest, const HHomMat2DArray& HomMatrices2D, const wchar_t* StackingOrder, const wchar_t* TransformDomain, HHomMat2DArray* MosaicMatrices2D) const;
  2293. #endif
  2294. // Apply a projective transformation to an image and specify the output image size.
  2295. HImage ProjectiveTransImageSize(const HHomMat2D& HomMat2D, const HString& Interpolation, Hlong Width, Hlong Height, const HString& TransformDomain) const;
  2296. // Apply a projective transformation to an image and specify the output image size.
  2297. HImage ProjectiveTransImageSize(const HHomMat2D& HomMat2D, const char* Interpolation, Hlong Width, Hlong Height, const char* TransformDomain) const;
  2298. #ifdef _WIN32
  2299. // Apply a projective transformation to an image and specify the output image size.
  2300. HImage ProjectiveTransImageSize(const HHomMat2D& HomMat2D, const wchar_t* Interpolation, Hlong Width, Hlong Height, const wchar_t* TransformDomain) const;
  2301. #endif
  2302. // Apply a projective transformation to an image.
  2303. HImage ProjectiveTransImage(const HHomMat2D& HomMat2D, const HString& Interpolation, const HString& AdaptImageSize, const HString& TransformDomain) const;
  2304. // Apply a projective transformation to an image.
  2305. HImage ProjectiveTransImage(const HHomMat2D& HomMat2D, const char* Interpolation, const char* AdaptImageSize, const char* TransformDomain) const;
  2306. #ifdef _WIN32
  2307. // Apply a projective transformation to an image.
  2308. HImage ProjectiveTransImage(const HHomMat2D& HomMat2D, const wchar_t* Interpolation, const wchar_t* AdaptImageSize, const wchar_t* TransformDomain) const;
  2309. #endif
  2310. // Apply an arbitrary affine 2D transformation to an image and specify the output image size.
  2311. HImage AffineTransImageSize(const HHomMat2D& HomMat2D, const HString& Interpolation, Hlong Width, Hlong Height) const;
  2312. // Apply an arbitrary affine 2D transformation to an image and specify the output image size.
  2313. HImage AffineTransImageSize(const HHomMat2D& HomMat2D, const char* Interpolation, Hlong Width, Hlong Height) const;
  2314. #ifdef _WIN32
  2315. // Apply an arbitrary affine 2D transformation to an image and specify the output image size.
  2316. HImage AffineTransImageSize(const HHomMat2D& HomMat2D, const wchar_t* Interpolation, Hlong Width, Hlong Height) const;
  2317. #endif
  2318. // Apply an arbitrary affine 2D transformation to images.
  2319. HImage AffineTransImage(const HHomMat2D& HomMat2D, const HString& Interpolation, const HString& AdaptImageSize) const;
  2320. // Apply an arbitrary affine 2D transformation to images.
  2321. HImage AffineTransImage(const HHomMat2D& HomMat2D, const char* Interpolation, const char* AdaptImageSize) const;
  2322. #ifdef _WIN32
  2323. // Apply an arbitrary affine 2D transformation to images.
  2324. HImage AffineTransImage(const HHomMat2D& HomMat2D, const wchar_t* Interpolation, const wchar_t* AdaptImageSize) const;
  2325. #endif
  2326. // Zoom an image by a given factor.
  2327. HImage ZoomImageFactor(double ScaleWidth, double ScaleHeight, const HString& Interpolation) const;
  2328. // Zoom an image by a given factor.
  2329. HImage ZoomImageFactor(double ScaleWidth, double ScaleHeight, const char* Interpolation) const;
  2330. #ifdef _WIN32
  2331. // Zoom an image by a given factor.
  2332. HImage ZoomImageFactor(double ScaleWidth, double ScaleHeight, const wchar_t* Interpolation) const;
  2333. #endif
  2334. // Zoom an image to a given size.
  2335. HImage ZoomImageSize(Hlong Width, Hlong Height, const HString& Interpolation) const;
  2336. // Zoom an image to a given size.
  2337. HImage ZoomImageSize(Hlong Width, Hlong Height, const char* Interpolation) const;
  2338. #ifdef _WIN32
  2339. // Zoom an image to a given size.
  2340. HImage ZoomImageSize(Hlong Width, Hlong Height, const wchar_t* Interpolation) const;
  2341. #endif
  2342. // Mirror an image.
  2343. HImage MirrorImage(const HString& Mode) const;
  2344. // Mirror an image.
  2345. HImage MirrorImage(const char* Mode) const;
  2346. #ifdef _WIN32
  2347. // Mirror an image.
  2348. HImage MirrorImage(const wchar_t* Mode) const;
  2349. #endif
  2350. // Rotate an image about its center.
  2351. HImage RotateImage(const HTuple& Phi, const HString& Interpolation) const;
  2352. // Rotate an image about its center.
  2353. HImage RotateImage(double Phi, const HString& Interpolation) const;
  2354. // Rotate an image about its center.
  2355. HImage RotateImage(double Phi, const char* Interpolation) const;
  2356. #ifdef _WIN32
  2357. // Rotate an image about its center.
  2358. HImage RotateImage(double Phi, const wchar_t* Interpolation) const;
  2359. #endif
  2360. // Transform an image in polar coordinates back to Cartesian coordinates
  2361. HImage PolarTransImageInv(const HTuple& Row, const HTuple& Column, double AngleStart, double AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const;
  2362. // Transform an image in polar coordinates back to Cartesian coordinates
  2363. HImage PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const;
  2364. // Transform an image in polar coordinates back to Cartesian coordinates
  2365. HImage PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const char* Interpolation) const;
  2366. #ifdef _WIN32
  2367. // Transform an image in polar coordinates back to Cartesian coordinates
  2368. HImage PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const wchar_t* Interpolation) const;
  2369. #endif
  2370. // Transform an annular arc in an image to polar coordinates.
  2371. HImage PolarTransImageExt(const HTuple& Row, const HTuple& Column, double AngleStart, double AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const;
  2372. // Transform an annular arc in an image to polar coordinates.
  2373. HImage PolarTransImageExt(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const;
  2374. // Transform an annular arc in an image to polar coordinates.
  2375. HImage PolarTransImageExt(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const char* Interpolation) const;
  2376. #ifdef _WIN32
  2377. // Transform an annular arc in an image to polar coordinates.
  2378. HImage PolarTransImageExt(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const wchar_t* Interpolation) const;
  2379. #endif
  2380. // Transform an image to polar coordinates
  2381. HImage PolarTransImage(Hlong Row, Hlong Column, Hlong Width, Hlong Height) const;
  2382. // Approximate an affine map from a displacement vector field.
  2383. HHomMat2D VectorFieldToHomMat2d() const;
  2384. // Deserialize a serialized image object.
  2385. void DeserializeImage(const HSerializedItem& SerializedItemHandle);
  2386. // Serialize an image object.
  2387. HSerializedItem SerializeImage() const;
  2388. // Write images in graphic formats.
  2389. void WriteImage(const HString& Format, const HTuple& FillColor, const HTuple& FileName) const;
  2390. // Write images in graphic formats.
  2391. void WriteImage(const HString& Format, Hlong FillColor, const HString& FileName) const;
  2392. // Write images in graphic formats.
  2393. void WriteImage(const char* Format, Hlong FillColor, const char* FileName) const;
  2394. #ifdef _WIN32
  2395. // Write images in graphic formats.
  2396. void WriteImage(const wchar_t* Format, Hlong FillColor, const wchar_t* FileName) const;
  2397. #endif
  2398. // Read images.
  2399. void ReadSequence(Hlong HeaderSize, Hlong SourceWidth, Hlong SourceHeight, Hlong StartRow, Hlong StartColumn, Hlong DestWidth, Hlong DestHeight, const HString& PixelType, const HString& BitOrder, const HString& ByteOrder, const HString& Pad, Hlong Index, const HString& FileName);
  2400. // Read images.
  2401. void ReadSequence(Hlong HeaderSize, Hlong SourceWidth, Hlong SourceHeight, Hlong StartRow, Hlong StartColumn, Hlong DestWidth, Hlong DestHeight, const char* PixelType, const char* BitOrder, const char* ByteOrder, const char* Pad, Hlong Index, const char* FileName);
  2402. #ifdef _WIN32
  2403. // Read images.
  2404. void ReadSequence(Hlong HeaderSize, Hlong SourceWidth, Hlong SourceHeight, Hlong StartRow, Hlong StartColumn, Hlong DestWidth, Hlong DestHeight, const wchar_t* PixelType, const wchar_t* BitOrder, const wchar_t* ByteOrder, const wchar_t* Pad, Hlong Index, const wchar_t* FileName);
  2405. #endif
  2406. // Read an image with different file formats.
  2407. void ReadImage(const HTuple& FileName);
  2408. // Read an image with different file formats.
  2409. void ReadImage(const HString& FileName);
  2410. // Read an image with different file formats.
  2411. void ReadImage(const char* FileName);
  2412. #ifdef _WIN32
  2413. // Read an image with different file formats.
  2414. void ReadImage(const wchar_t* FileName);
  2415. #endif
  2416. // Return gray values of an image at the positions of an XLD contour.
  2417. HTuple GetGrayvalContourXld(const HXLDCont& Contour, const HString& Interpolation) const;
  2418. // Return gray values of an image at the positions of an XLD contour.
  2419. HTuple GetGrayvalContourXld(const HXLDCont& Contour, const char* Interpolation) const;
  2420. #ifdef _WIN32
  2421. // Return gray values of an image at the positions of an XLD contour.
  2422. HTuple GetGrayvalContourXld(const HXLDCont& Contour, const wchar_t* Interpolation) const;
  2423. #endif
  2424. // Calculate gray value moments and approximation by a first order surface (plane).
  2425. HTuple FitSurfaceFirstOrder(const HRegion& Regions, const HString& Algorithm, Hlong Iterations, double ClippingFactor, HTuple* Beta, HTuple* Gamma) const;
  2426. // Calculate gray value moments and approximation by a first order surface (plane).
  2427. double FitSurfaceFirstOrder(const HRegion& Regions, const HString& Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma) const;
  2428. // Calculate gray value moments and approximation by a first order surface (plane).
  2429. double FitSurfaceFirstOrder(const HRegion& Regions, const char* Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma) const;
  2430. #ifdef _WIN32
  2431. // Calculate gray value moments and approximation by a first order surface (plane).
  2432. double FitSurfaceFirstOrder(const HRegion& Regions, const wchar_t* Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma) const;
  2433. #endif
  2434. // Calculate gray value moments and approximation by a second order surface.
  2435. HTuple FitSurfaceSecondOrder(const HRegion& Regions, const HString& Algorithm, Hlong Iterations, double ClippingFactor, HTuple* Beta, HTuple* Gamma, HTuple* Delta, HTuple* Epsilon, HTuple* Zeta) const;
  2436. // Calculate gray value moments and approximation by a second order surface.
  2437. double FitSurfaceSecondOrder(const HRegion& Regions, const HString& Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma, double* Delta, double* Epsilon, double* Zeta) const;
  2438. // Calculate gray value moments and approximation by a second order surface.
  2439. double FitSurfaceSecondOrder(const HRegion& Regions, const char* Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma, double* Delta, double* Epsilon, double* Zeta) const;
  2440. #ifdef _WIN32
  2441. // Calculate gray value moments and approximation by a second order surface.
  2442. double FitSurfaceSecondOrder(const HRegion& Regions, const wchar_t* Algorithm, Hlong Iterations, double ClippingFactor, double* Beta, double* Gamma, double* Delta, double* Epsilon, double* Zeta) const;
  2443. #endif
  2444. // Create a curved gray surface with second order polynomial.
  2445. void GenImageSurfaceSecondOrder(const HString& Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height);
  2446. // Create a curved gray surface with second order polynomial.
  2447. void GenImageSurfaceSecondOrder(const char* Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height);
  2448. #ifdef _WIN32
  2449. // Create a curved gray surface with second order polynomial.
  2450. void GenImageSurfaceSecondOrder(const wchar_t* Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height);
  2451. #endif
  2452. // Create a tilted gray surface with first order polynomial.
  2453. void GenImageSurfaceFirstOrder(const HString& Type, double Alpha, double Beta, double Gamma, double Row, double Column, Hlong Width, Hlong Height);
  2454. // Create a tilted gray surface with first order polynomial.
  2455. void GenImageSurfaceFirstOrder(const char* Type, double Alpha, double Beta, double Gamma, double Row, double Column, Hlong Width, Hlong Height);
  2456. #ifdef _WIN32
  2457. // Create a tilted gray surface with first order polynomial.
  2458. void GenImageSurfaceFirstOrder(const wchar_t* Type, double Alpha, double Beta, double Gamma, double Row, double Column, Hlong Width, Hlong Height);
  2459. #endif
  2460. // Determine the minimum and maximum gray values within regions.
  2461. void MinMaxGray(const HRegion& Regions, const HTuple& Percent, HTuple* Min, HTuple* Max, HTuple* Range) const;
  2462. // Determine the minimum and maximum gray values within regions.
  2463. void MinMaxGray(const HRegion& Regions, double Percent, double* Min, double* Max, double* Range) const;
  2464. // Calculate the mean and deviation of gray values.
  2465. HTuple Intensity(const HRegion& Regions, HTuple* Deviation) const;
  2466. // Calculate the mean and deviation of gray values.
  2467. double Intensity(const HRegion& Regions, double* Deviation) const;
  2468. // Calculate the gray value distribution of a single channel image within a certain gray value range.
  2469. HTuple GrayHistoRange(const HRegion& Regions, const HTuple& Min, const HTuple& Max, Hlong NumBins, double* BinSize) const;
  2470. // Calculate the gray value distribution of a single channel image within a certain gray value range.
  2471. Hlong GrayHistoRange(const HRegion& Regions, double Min, double Max, Hlong NumBins, double* BinSize) const;
  2472. // Calculate the histogram of two-channel gray value images.
  2473. HImage Histo2dim(const HRegion& Regions, const HImage& ImageRow) const;
  2474. // Calculate the gray value distribution.
  2475. HTuple GrayHistoAbs(const HRegion& Regions, const HTuple& Quantization) const;
  2476. // Calculate the gray value distribution.
  2477. HTuple GrayHistoAbs(const HRegion& Regions, double Quantization) const;
  2478. // Calculate the gray value distribution.
  2479. HTuple GrayHisto(const HRegion& Regions, HTuple* RelativeHisto) const;
  2480. // Determine the entropy and anisotropy of images.
  2481. HTuple EntropyGray(const HRegion& Regions, HTuple* Anisotropy) const;
  2482. // Determine the entropy and anisotropy of images.
  2483. double EntropyGray(const HRegion& Regions, double* Anisotropy) const;
  2484. // Calculate gray value features from a co-occurrence matrix.
  2485. double CoocFeatureMatrix(double* Correlation, double* Homogeneity, double* Contrast) const;
  2486. // Calculate a co-occurrence matrix and derive gray value features thereof.
  2487. HTuple CoocFeatureImage(const HRegion& Regions, Hlong LdGray, const HTuple& Direction, HTuple* Correlation, HTuple* Homogeneity, HTuple* Contrast) const;
  2488. // Calculate a co-occurrence matrix and derive gray value features thereof.
  2489. double CoocFeatureImage(const HRegion& Regions, Hlong LdGray, Hlong Direction, double* Correlation, double* Homogeneity, double* Contrast) const;
  2490. // Calculate the co-occurrence matrix of a region in an image.
  2491. HImage GenCoocMatrix(const HRegion& Regions, Hlong LdGray, Hlong Direction) const;
  2492. // Calculate gray value moments and approximation by a plane.
  2493. void MomentsGrayPlane(const HRegion& Regions, HTuple* MRow, HTuple* MCol, HTuple* Alpha, HTuple* Beta, HTuple* Mean) const;
  2494. // Calculate gray value moments and approximation by a plane.
  2495. void MomentsGrayPlane(const HRegion& Regions, double* MRow, double* MCol, double* Alpha, double* Beta, double* Mean) const;
  2496. // Calculate the deviation of the gray values from the approximating image plane.
  2497. HTuple PlaneDeviation(const HRegion& Regions) const;
  2498. // Compute the orientation and major axes of a region in a gray value image.
  2499. HTuple EllipticAxisGray(const HRegion& Regions, HTuple* Rb, HTuple* Phi) const;
  2500. // Compute the orientation and major axes of a region in a gray value image.
  2501. double EllipticAxisGray(const HRegion& Regions, double* Rb, double* Phi) const;
  2502. // Compute the area and center of gravity of a region in a gray value image.
  2503. HTuple AreaCenterGray(const HRegion& Regions, HTuple* Row, HTuple* Column) const;
  2504. // Compute the area and center of gravity of a region in a gray value image.
  2505. double AreaCenterGray(const HRegion& Regions, double* Row, double* Column) const;
  2506. // Calculate horizontal and vertical gray-value projections.
  2507. HTuple GrayProjections(const HRegion& Region, const HString& Mode, HTuple* VertProjection) const;
  2508. // Calculate horizontal and vertical gray-value projections.
  2509. HTuple GrayProjections(const HRegion& Region, const char* Mode, HTuple* VertProjection) const;
  2510. #ifdef _WIN32
  2511. // Calculate horizontal and vertical gray-value projections.
  2512. HTuple GrayProjections(const HRegion& Region, const wchar_t* Mode, HTuple* VertProjection) const;
  2513. #endif
  2514. // Detect and read 2D data code symbols in an image or train the 2D data code model.
  2515. HXLDCont FindDataCode2d(const HDataCode2D& DataCodeHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* ResultHandles, HTuple* DecodedDataStrings) const;
  2516. // Detect and read 2D data code symbols in an image or train the 2D data code model.
  2517. HXLDCont FindDataCode2d(const HDataCode2D& DataCodeHandle, const HString& GenParamName, Hlong GenParamValue, Hlong* ResultHandles, HString* DecodedDataStrings) const;
  2518. // Detect and read 2D data code symbols in an image or train the 2D data code model.
  2519. HXLDCont FindDataCode2d(const HDataCode2D& DataCodeHandle, const char* GenParamName, Hlong GenParamValue, Hlong* ResultHandles, HString* DecodedDataStrings) const;
  2520. #ifdef _WIN32
  2521. // Detect and read 2D data code symbols in an image or train the 2D data code model.
  2522. HXLDCont FindDataCode2d(const HDataCode2D& DataCodeHandle, const wchar_t* GenParamName, Hlong GenParamValue, Hlong* ResultHandles, HString* DecodedDataStrings) const;
  2523. #endif
  2524. // Convert image maps into other map types.
  2525. HImage ConvertMapType(const HString& NewType, const HTuple& ImageWidth) const;
  2526. // Convert image maps into other map types.
  2527. HImage ConvertMapType(const HString& NewType, Hlong ImageWidth) const;
  2528. // Convert image maps into other map types.
  2529. HImage ConvertMapType(const char* NewType, Hlong ImageWidth) const;
  2530. #ifdef _WIN32
  2531. // Convert image maps into other map types.
  2532. HImage ConvertMapType(const wchar_t* NewType, Hlong ImageWidth) const;
  2533. #endif
  2534. // Compute an absolute pose out of point correspondences between world and image coordinates.
  2535. static HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HCamPar& CameraParam, const HString& Method, const HTuple& QualityType, HTuple* Quality);
  2536. // Compute an absolute pose out of point correspondences between world and image coordinates.
  2537. static HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HCamPar& CameraParam, const HString& Method, const HString& QualityType, double* Quality);
  2538. // Compute an absolute pose out of point correspondences between world and image coordinates.
  2539. static HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HCamPar& CameraParam, const char* Method, const char* QualityType, double* Quality);
  2540. #ifdef _WIN32
  2541. // Compute an absolute pose out of point correspondences between world and image coordinates.
  2542. static HPose VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HCamPar& CameraParam, const wchar_t* Method, const wchar_t* QualityType, double* Quality);
  2543. #endif
  2544. // Compute a pose out of a homography describing the relation between world and image coordinates.
  2545. static HPose ProjHomMat2dToPose(const HHomMat2D& Homography, const HHomMat2D& CameraMatrix, const HString& Method);
  2546. // Compute a pose out of a homography describing the relation between world and image coordinates.
  2547. static HPose ProjHomMat2dToPose(const HHomMat2D& Homography, const HHomMat2D& CameraMatrix, const char* Method);
  2548. #ifdef _WIN32
  2549. // Compute a pose out of a homography describing the relation between world and image coordinates.
  2550. static HPose ProjHomMat2dToPose(const HHomMat2D& Homography, const HHomMat2D& CameraMatrix, const wchar_t* Method);
  2551. #endif
  2552. // Perform a radiometric self-calibration of a camera.
  2553. HTuple RadiometricSelfCalibration(const HTuple& ExposureRatios, const HString& Features, const HString& FunctionType, double Smoothness, Hlong PolynomialDegree) const;
  2554. // Perform a radiometric self-calibration of a camera.
  2555. HTuple RadiometricSelfCalibration(double ExposureRatios, const HString& Features, const HString& FunctionType, double Smoothness, Hlong PolynomialDegree) const;
  2556. // Perform a radiometric self-calibration of a camera.
  2557. HTuple RadiometricSelfCalibration(double ExposureRatios, const char* Features, const char* FunctionType, double Smoothness, Hlong PolynomialDegree) const;
  2558. #ifdef _WIN32
  2559. // Perform a radiometric self-calibration of a camera.
  2560. HTuple RadiometricSelfCalibration(double ExposureRatios, const wchar_t* Features, const wchar_t* FunctionType, double Smoothness, Hlong PolynomialDegree) const;
  2561. #endif
  2562. // Apply a general transformation to an image.
  2563. HImage MapImage(const HImage& Map) const;
  2564. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  2565. void GenRadialDistortionMap(const HCamPar& CamParamIn, const HCamPar& CamParamOut, const HString& MapType);
  2566. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  2567. void GenRadialDistortionMap(const HCamPar& CamParamIn, const HCamPar& CamParamOut, const char* MapType);
  2568. #ifdef _WIN32
  2569. // Generate a projection map that describes the mapping of images corresponding to a changing radial distortion.
  2570. void GenRadialDistortionMap(const HCamPar& CamParamIn, const HCamPar& CamParamOut, const wchar_t* MapType);
  2571. #endif
  2572. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  2573. void GenImageToWorldPlaneMap(const HCamPar& CameraParam, const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const HTuple& Scale, const HString& MapType);
  2574. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  2575. void GenImageToWorldPlaneMap(const HCamPar& CameraParam, const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const HString& Scale, const HString& MapType);
  2576. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  2577. void GenImageToWorldPlaneMap(const HCamPar& CameraParam, const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const char* Scale, const char* MapType);
  2578. #ifdef _WIN32
  2579. // Generate a projection map that describes the mapping between the image plane and the plane z=0 of a world coordinate system.
  2580. void GenImageToWorldPlaneMap(const HCamPar& CameraParam, const HPose& WorldPose, Hlong WidthIn, Hlong HeightIn, Hlong WidthMapped, Hlong HeightMapped, const wchar_t* Scale, const wchar_t* MapType);
  2581. #endif
  2582. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  2583. HImage ImageToWorldPlane(const HCamPar& CameraParam, const HPose& WorldPose, Hlong Width, Hlong Height, const HTuple& Scale, const HString& Interpolation) const;
  2584. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  2585. HImage ImageToWorldPlane(const HCamPar& CameraParam, const HPose& WorldPose, Hlong Width, Hlong Height, const HString& Scale, const HString& Interpolation) const;
  2586. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  2587. HImage ImageToWorldPlane(const HCamPar& CameraParam, const HPose& WorldPose, Hlong Width, Hlong Height, const char* Scale, const char* Interpolation) const;
  2588. #ifdef _WIN32
  2589. // Rectify an image by transforming it into the plane z=0 of a world coordinate system.
  2590. HImage ImageToWorldPlane(const HCamPar& CameraParam, const HPose& WorldPose, Hlong Width, Hlong Height, const wchar_t* Scale, const wchar_t* Interpolation) const;
  2591. #endif
  2592. // Change the radial distortion of an image.
  2593. HImage ChangeRadialDistortionImage(const HRegion& Region, const HCamPar& CamParamIn, const HCamPar& CamParamOut) const;
  2594. // Simulate an image with calibration plate.
  2595. void SimCaltab(const HString& CalPlateDescr, const HCamPar& CameraParam, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac);
  2596. // Simulate an image with calibration plate.
  2597. void SimCaltab(const char* CalPlateDescr, const HCamPar& CameraParam, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac);
  2598. #ifdef _WIN32
  2599. // Simulate an image with calibration plate.
  2600. void SimCaltab(const wchar_t* CalPlateDescr, const HCamPar& CameraParam, const HPose& CalPlatePose, Hlong GrayBackground, Hlong GrayPlate, Hlong GrayMarks, double ScaleFac);
  2601. #endif
  2602. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  2603. HTuple FindMarksAndPose(const HRegion& CalPlateRegion, const HString& CalPlateDescr, const HCamPar& StartCamParam, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  2604. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  2605. HTuple FindMarksAndPose(const HRegion& CalPlateRegion, const char* CalPlateDescr, const HCamPar& StartCamParam, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  2606. #ifdef _WIN32
  2607. // Extract rectangularly arranged 2D calibration marks from the image and calculate initial values for the external camera parameters.
  2608. HTuple FindMarksAndPose(const HRegion& CalPlateRegion, const wchar_t* CalPlateDescr, const HCamPar& StartCamParam, Hlong StartThresh, Hlong DeltaThresh, Hlong MinThresh, double Alpha, double MinContLength, double MaxDiamMarks, HTuple* CCoord, HPose* StartPose) const;
  2609. #endif
  2610. // Segment the region of a standard calibration plate with rectangularly arranged marks in the image.
  2611. HRegion FindCaltab(const HString& CalPlateDescr, const HTuple& SizeGauss, const HTuple& MarkThresh, Hlong MinDiamMarks) const;
  2612. // Segment the region of a standard calibration plate with rectangularly arranged marks in the image.
  2613. HRegion FindCaltab(const HString& CalPlateDescr, Hlong SizeGauss, Hlong MarkThresh, Hlong MinDiamMarks) const;
  2614. // Segment the region of a standard calibration plate with rectangularly arranged marks in the image.
  2615. HRegion FindCaltab(const char* CalPlateDescr, Hlong SizeGauss, Hlong MarkThresh, Hlong MinDiamMarks) const;
  2616. #ifdef _WIN32
  2617. // Segment the region of a standard calibration plate with rectangularly arranged marks in the image.
  2618. HRegion FindCaltab(const wchar_t* CalPlateDescr, Hlong SizeGauss, Hlong MarkThresh, Hlong MinDiamMarks) const;
  2619. #endif
  2620. // Decode bar code symbols within a rectangle.
  2621. HTuple DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const HTuple& CodeType, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2) const;
  2622. // Decode bar code symbols within a rectangle.
  2623. HString DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const HString& CodeType, double Row, double Column, double Phi, double Length1, double Length2) const;
  2624. // Decode bar code symbols within a rectangle.
  2625. HString DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const char* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const;
  2626. #ifdef _WIN32
  2627. // Decode bar code symbols within a rectangle.
  2628. HString DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const wchar_t* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const;
  2629. #endif
  2630. // Detect and read bar code symbols in an image.
  2631. HRegion FindBarCode(const HBarCode& BarCodeHandle, const HTuple& CodeType, HTuple* DecodedDataStrings) const;
  2632. // Detect and read bar code symbols in an image.
  2633. HRegion FindBarCode(const HBarCode& BarCodeHandle, const HString& CodeType, HString* DecodedDataStrings) const;
  2634. // Detect and read bar code symbols in an image.
  2635. HRegion FindBarCode(const HBarCode& BarCodeHandle, const char* CodeType, HString* DecodedDataStrings) const;
  2636. #ifdef _WIN32
  2637. // Detect and read bar code symbols in an image.
  2638. HRegion FindBarCode(const HBarCode& BarCodeHandle, const wchar_t* CodeType, HString* DecodedDataStrings) const;
  2639. #endif
  2640. // Return the estimated background image.
  2641. void GiveBgEsti(const HBgEsti& BgEstiHandle);
  2642. // Change the estimated background image.
  2643. void UpdateBgEsti(const HRegion& UpDateRegion, const HBgEsti& BgEstiHandle) const;
  2644. // Estimate the background and return the foreground region.
  2645. HRegion RunBgEsti(const HBgEsti& BgEstiHandle) const;
  2646. // Generate and initialize a data set for the background estimation.
  2647. HBgEsti CreateBgEsti(double Syspar1, double Syspar2, const HString& GainMode, double Gain1, double Gain2, const HString& AdaptMode, double MinDiff, Hlong StatNum, double ConfidenceC, double TimeC) const;
  2648. // Generate and initialize a data set for the background estimation.
  2649. HBgEsti CreateBgEsti(double Syspar1, double Syspar2, const char* GainMode, double Gain1, double Gain2, const char* AdaptMode, double MinDiff, Hlong StatNum, double ConfidenceC, double TimeC) const;
  2650. #ifdef _WIN32
  2651. // Generate and initialize a data set for the background estimation.
  2652. HBgEsti CreateBgEsti(double Syspar1, double Syspar2, const wchar_t* GainMode, double Gain1, double Gain2, const wchar_t* AdaptMode, double MinDiff, Hlong StatNum, double ConfidenceC, double TimeC) const;
  2653. #endif
  2654. // Asynchronous grab of images and preprocessed image data from the specified image acquisition device.
  2655. HRegion GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HTuple* Data);
  2656. // Asynchronous grab of images and preprocessed image data from the specified image acquisition device.
  2657. HRegion GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HString* Data);
  2658. // Synchronous grab of images and preprocessed image data from the specified image acquisition device.
  2659. HRegion GrabData(HXLDCont* Contours, const HFramegrabber& AcqHandle, HTuple* Data);
  2660. // Synchronous grab of images and preprocessed image data from the specified image acquisition device.
  2661. HRegion GrabData(HXLDCont* Contours, const HFramegrabber& AcqHandle, HString* Data);
  2662. // Asynchronous grab of an image from the specified image acquisition device.
  2663. void GrabImageAsync(const HFramegrabber& AcqHandle, double MaxDelay);
  2664. // Synchronous grab of an image from the specified image acquisition device.
  2665. void GrabImage(const HFramegrabber& AcqHandle);
  2666. // Add training images to the texture inspection model.
  2667. HTuple AddTextureInspectionModelImage(const HTextureInspectionModel& TextureInspectionModel) const;
  2668. // Inspection of the texture within an image.
  2669. HRegion ApplyTextureInspectionModel(const HTextureInspectionModel& TextureInspectionModel, HTextureInspectionResult* TextureInspectionResultID) const;
  2670. // bilateral filtering of an image.
  2671. HImage BilateralFilter(const HImage& ImageJoint, double SigmaSpatial, double SigmaRange, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  2672. // bilateral filtering of an image.
  2673. HImage BilateralFilter(const HImage& ImageJoint, double SigmaSpatial, double SigmaRange, const HString& GenParamName, double GenParamValue) const;
  2674. // bilateral filtering of an image.
  2675. HImage BilateralFilter(const HImage& ImageJoint, double SigmaSpatial, double SigmaRange, const char* GenParamName, double GenParamValue) const;
  2676. #ifdef _WIN32
  2677. // bilateral filtering of an image.
  2678. HImage BilateralFilter(const HImage& ImageJoint, double SigmaSpatial, double SigmaRange, const wchar_t* GenParamName, double GenParamValue) const;
  2679. #endif
  2680. // Find the best matches of multiple NCC models.
  2681. void FindNccModels(const HNCCModelArray& ModelIDs, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& SubPixel, const HTuple& NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  2682. // Find the best matches of multiple NCC models.
  2683. void FindNccModels(const HNCCModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const HString& SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  2684. // Find the best matches of multiple NCC models.
  2685. void FindNccModels(const HNCCModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const char* SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  2686. #ifdef _WIN32
  2687. // Find the best matches of multiple NCC models.
  2688. void FindNccModels(const HNCCModel& ModelIDs, double AngleStart, double AngleExtent, double MinScore, Hlong NumMatches, double MaxOverlap, const wchar_t* SubPixel, Hlong NumLevels, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Score, HTuple* Model) const;
  2689. #endif
  2690. // Get the training images contained in a texture inspection model.
  2691. void GetTextureInspectionModelImage(const HTextureInspectionModel& TextureInspectionModel);
  2692. // Guided filtering of an image.
  2693. HImage GuidedFilter(const HImage& ImageGuide, Hlong Radius, double Amplitude) const;
  2694. // Create an interleaved image from a multichannel image.
  2695. HImage InterleaveChannels(const HString& PixelFormat, const HTuple& RowBytes, Hlong Alpha) const;
  2696. // Create an interleaved image from a multichannel image.
  2697. HImage InterleaveChannels(const HString& PixelFormat, const HString& RowBytes, Hlong Alpha) const;
  2698. // Create an interleaved image from a multichannel image.
  2699. HImage InterleaveChannels(const char* PixelFormat, const char* RowBytes, Hlong Alpha) const;
  2700. #ifdef _WIN32
  2701. // Create an interleaved image from a multichannel image.
  2702. HImage InterleaveChannels(const wchar_t* PixelFormat, const wchar_t* RowBytes, Hlong Alpha) const;
  2703. #endif
  2704. // Segment image using Maximally Stable Extremal Regions (MSER).
  2705. HRegion SegmentImageMser(HRegion* MSERLight, const HString& Polarity, const HTuple& MinArea, const HTuple& MaxArea, const HTuple& Delta, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  2706. // Segment image using Maximally Stable Extremal Regions (MSER).
  2707. HRegion SegmentImageMser(HRegion* MSERLight, const HString& Polarity, Hlong MinArea, Hlong MaxArea, Hlong Delta, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  2708. // Segment image using Maximally Stable Extremal Regions (MSER).
  2709. HRegion SegmentImageMser(HRegion* MSERLight, const char* Polarity, Hlong MinArea, Hlong MaxArea, Hlong Delta, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  2710. #ifdef _WIN32
  2711. // Segment image using Maximally Stable Extremal Regions (MSER).
  2712. HRegion SegmentImageMser(HRegion* MSERLight, const wchar_t* Polarity, Hlong MinArea, Hlong MaxArea, Hlong Delta, const HTuple& GenParamName, const HTuple& GenParamValue) const;
  2713. #endif
  2714. // Train a texture inspection model.
  2715. static void TrainTextureInspectionModel(const HTextureInspectionModel& TextureInspectionModel);
  2716. // Reconstruct a surface from several, differently illuminated images.
  2717. HImage UncalibratedPhotometricStereo(HImage* Gradient, HImage* Albedo, const HTuple& ResultType) const;
  2718. // Insert objects into an iconic object tuple.
  2719. HImage InsertObj(const HImage& ObjectsInsert, Hlong Index) const;
  2720. // Remove objects from an iconic object tuple.
  2721. HImage RemoveObj(const HTuple& Index) const;
  2722. // Remove objects from an iconic object tuple.
  2723. HImage RemoveObj(Hlong Index) const;
  2724. // Replaces one or more elements of an iconic object tuple.
  2725. HImage ReplaceObj(const HImage& ObjectsReplace, const HTuple& Index) const;
  2726. // Replaces one or more elements of an iconic object tuple.
  2727. HImage ReplaceObj(const HImage& ObjectsReplace, Hlong Index) const;
  2728. // Get the clutter parameters of a shape model.
  2729. static HRegion GetShapeModelClutter(const HShapeModel& ModelID, const HTuple& GenParamName, HTuple* GenParamValue, HHomMat2D* HomMat2D, Hlong* ClutterContrast);
  2730. // Get the clutter parameters of a shape model.
  2731. static HRegion GetShapeModelClutter(const HShapeModel& ModelID, const HString& GenParamName, HString* GenParamValue, HHomMat2D* HomMat2D, Hlong* ClutterContrast);
  2732. // Get the clutter parameters of a shape model.
  2733. static HRegion GetShapeModelClutter(const HShapeModel& ModelID, const char* GenParamName, HString* GenParamValue, HHomMat2D* HomMat2D, Hlong* ClutterContrast);
  2734. #ifdef _WIN32
  2735. // Get the clutter parameters of a shape model.
  2736. static HRegion GetShapeModelClutter(const HShapeModel& ModelID, const wchar_t* GenParamName, HString* GenParamValue, HHomMat2D* HomMat2D, Hlong* ClutterContrast);
  2737. #endif
  2738. // Set the clutter parameters of a shape model.
  2739. static void SetShapeModelClutter(const HRegion& ClutterRegion, const HShapeModel& ModelID, const HHomMat2D& HomMat2D, Hlong ClutterContrast, const HTuple& GenParamName, const HTuple& GenParamValue);
  2740. // Set the clutter parameters of a shape model.
  2741. static void SetShapeModelClutter(const HRegion& ClutterRegion, const HShapeModel& ModelID, const HHomMat2D& HomMat2D, Hlong ClutterContrast, const HString& GenParamName, double GenParamValue);
  2742. // Set the clutter parameters of a shape model.
  2743. static void SetShapeModelClutter(const HRegion& ClutterRegion, const HShapeModel& ModelID, const HHomMat2D& HomMat2D, Hlong ClutterContrast, const char* GenParamName, double GenParamValue);
  2744. #ifdef _WIN32
  2745. // Set the clutter parameters of a shape model.
  2746. static void SetShapeModelClutter(const HRegion& ClutterRegion, const HShapeModel& ModelID, const HHomMat2D& HomMat2D, Hlong ClutterContrast, const wchar_t* GenParamName, double GenParamValue);
  2747. #endif
  2748. // Read metadata from image files.
  2749. static HTuple ReadImageMetadata(const HString& Format, const HTuple& TagName, const HString& FileName);
  2750. // Read metadata from image files.
  2751. static HTuple ReadImageMetadata(const char* Format, const HTuple& TagName, const char* FileName);
  2752. #ifdef _WIN32
  2753. // Read metadata from image files.
  2754. static HTuple ReadImageMetadata(const wchar_t* Format, const HTuple& TagName, const wchar_t* FileName);
  2755. #endif
  2756. // Extract watersheds and combine basins based on markers.
  2757. HRegion WatershedsMarker(const HRegion& Markers) const;
  2758. // Write metadata of image files.
  2759. static void WriteImageMetadata(const HString& Format, const HTuple& TagName, const HTuple& TagValue, const HString& FileName);
  2760. // Write metadata of image files.
  2761. static void WriteImageMetadata(const char* Format, const HTuple& TagName, const HTuple& TagValue, const char* FileName);
  2762. #ifdef _WIN32
  2763. // Write metadata of image files.
  2764. static void WriteImageMetadata(const wchar_t* Format, const HTuple& TagName, const HTuple& TagValue, const wchar_t* FileName);
  2765. #endif
  2766. // Cut out one or more arbitrarily oriented rectangular image areas.
  2767. HImage CropRectangle2(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, const HString& AlignToAxis, const HString& Interpolation) const;
  2768. // Cut out one or more arbitrarily oriented rectangular image areas.
  2769. HImage CropRectangle2(double Row, double Column, double Phi, double Length1, double Length2, const HString& AlignToAxis, const HString& Interpolation) const;
  2770. // Cut out one or more arbitrarily oriented rectangular image areas.
  2771. HImage CropRectangle2(double Row, double Column, double Phi, double Length1, double Length2, const char* AlignToAxis, const char* Interpolation) const;
  2772. #ifdef _WIN32
  2773. // Cut out one or more arbitrarily oriented rectangular image areas.
  2774. HImage CropRectangle2(double Row, double Column, double Phi, double Length1, double Length2, const wchar_t* AlignToAxis, const wchar_t* Interpolation) const;
  2775. #endif
  2776. private:
  2777. // Verify matching semantic type ('image')!
  2778. void AssertObjectClass();
  2779. };
  2780. }
  2781. #endif