ippcv.h 269 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106
  1. /* ///////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // INTEL CORPORATION PROPRIETARY INFORMATION
  4. // This software is supplied under the terms of a license agreement or
  5. // nondisclosure agreement with Intel Corporation and may not be copied
  6. // or disclosed except in accordance with the terms of that agreement.
  7. // Copyright (c) 1999-2009 Intel Corporation. All Rights Reserved.
  8. //
  9. // Intel(R) Integrated Performance Primitives
  10. // Computer Vision (ippCV)
  11. //
  12. */
  13. #if !defined( __IPPCV_H__ ) || defined( _OWN_BLDPCS )
  14. #define __IPPCV_H__
  15. #if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
  16. #define _IPP_STDCALL_CDECL
  17. #undef __stdcall
  18. #endif
  19. #ifndef __IPPDEFS_H__
  20. #include "ippdefs.h"
  21. #endif
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. #if !defined( _OWN_BLDPCS )
  26. typedef enum _IppiKernelType {
  27. ippKernelSobel = 0,
  28. ippKernelScharr = 1
  29. } IppiKernelType;
  30. typedef enum _IppiNorm {
  31. ippiNormInf = 0,
  32. ippiNormL1 = 1,
  33. ippiNormL2 = 2,
  34. ippiNormFM = 3
  35. } IppiNorm;
  36. struct ipcvMorphState;
  37. typedef struct ipcvMorphState IppiMorphState;
  38. struct ipcvMorphAdvState;
  39. typedef struct ipcvMorphAdvState IppiMorphAdvState;
  40. struct ipcvMorphGrayState_8u;
  41. typedef struct ipcvMorphGrayState_8u IppiMorphGrayState_8u;
  42. struct ipcvMorphGrayState_32f;
  43. typedef struct ipcvMorphGrayState_32f IppiMorphGrayState_32f;
  44. struct ipcvConvState;
  45. typedef struct ipcvConvState IppiConvState;
  46. typedef struct _IppiConnectedComp {
  47. Ipp64f area; /* area of the segmented component */
  48. Ipp64f value[3];/* gray scale value of the segmented component */
  49. IppiRect rect; /* bounding rectangle of the segmented component */
  50. } IppiConnectedComp;
  51. struct PyramidState;
  52. typedef struct PyramidState IppiPyramidState;
  53. typedef IppiPyramidState IppiPyramidDownState_8u_C1R;
  54. typedef IppiPyramidState IppiPyramidDownState_16u_C1R;
  55. typedef IppiPyramidState IppiPyramidDownState_32f_C1R;
  56. typedef IppiPyramidState IppiPyramidDownState_8u_C3R;
  57. typedef IppiPyramidState IppiPyramidDownState_16u_C3R;
  58. typedef IppiPyramidState IppiPyramidDownState_32f_C3R;
  59. typedef IppiPyramidState IppiPyramidUpState_8u_C1R;
  60. typedef IppiPyramidState IppiPyramidUpState_16u_C1R;
  61. typedef IppiPyramidState IppiPyramidUpState_32f_C1R;
  62. typedef IppiPyramidState IppiPyramidUpState_8u_C3R;
  63. typedef IppiPyramidState IppiPyramidUpState_16u_C3R;
  64. typedef IppiPyramidState IppiPyramidUpState_32f_C3R;
  65. typedef struct _IppiPyramid {
  66. Ipp8u **pImage;
  67. IppiSize *pRoi;
  68. Ipp64f *pRate;
  69. int *pStep;
  70. Ipp8u *pState;
  71. int level;
  72. } IppiPyramid;
  73. struct OptFlowPyrLK;
  74. typedef struct OptFlowPyrLK IppiOptFlowPyrLK;
  75. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_8u_C1R;
  76. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_16u_C1R;
  77. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_32f_C1R;
  78. struct ipcvHaarClassifier_32f;
  79. typedef struct ipcvHaarClassifier_32f IppiHaarClassifier_32f;
  80. struct ipcvHaarClassifier_32s;
  81. typedef struct ipcvHaarClassifier_32s IppiHaarClassifier_32s;
  82. struct ipcvFGHistogramState_8u_C1R;
  83. typedef struct ipcvFGHistogramState_8u_C1R IppFGHistogramState_8u_C1R;
  84. struct ipcvFGHistogramState_8u_C3R;
  85. typedef struct ipcvFGHistogramState_8u_C3R IppFGHistogramState_8u_C3R;
  86. struct ipcvFGGaussianState_8u_C1R;
  87. typedef struct ipcvFGGaussianState_8u_C1R IppFGGaussianState_8u_C1R;
  88. struct ipcvFGGaussianState_8u_C3R;
  89. typedef struct ipcvFGGaussianState_8u_C3R IppFGGaussianState_8u_C3R;
  90. typedef struct _IppFGHistogramModel { /* for C3 image */
  91. int valueQuant; /* 64 */
  92. int changeQuant; /* 32 */
  93. int valueUse; /* 30 */
  94. int valueAll; /* 50 */
  95. int changeUse; /* 50 */
  96. int changeAll; /* 80 */
  97. Ipp32f updBGChange; /* 0.0046 */
  98. Ipp32f updBGRef; /* 0.0010 */
  99. int numFrame;
  100. float detectionRate;
  101. float brightnessDistortion;
  102. int shadowBG;
  103. } IppFGHistogramModel;
  104. typedef struct _IppFGGaussianModel {
  105. int numGauss;
  106. Ipp32f priorBack;
  107. Ipp32f updBGProb;
  108. int winSize;
  109. int numFrame;
  110. float detectionRate;
  111. float brightnessDistortion;
  112. int shadowBG;
  113. } IppFGGaussianModel;
  114. typedef enum _IppiInpaintFlag {
  115. IPP_INPAINT_TELEA = 0,
  116. IPP_INPAINT_NS = 1
  117. } IppiInpaintFlag;
  118. struct ipcvInpaintState_8u;
  119. typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C1R;
  120. typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C3R;
  121. #endif /* _OWN_BLDPCS */
  122. #define IPP_SEGMENT_QUEUE 0x01
  123. #define IPP_SEGMENT_DISTANCE 0x02
  124. #define IPP_SEGMENT_BORDER_4 0x40
  125. #define IPP_SEGMENT_BORDER_8 0x80
  126. #define IPP_TRUNC(a,b) ((a)&~((b)-1))
  127. #define IPP_APPEND(a,b) (((a)+(b)-1)&~((b)-1))
  128. /* ///////////////////////////////////////////////////////////////////////////////////////
  129. //////////////////////////////////////////////////////////////////////////////////////////
  130. // Functions declarations
  131. //////////////////////////////////////////////////////////////////////////////////////////
  132. /////////////////////////////////////////////////////////////////////////////////////// */
  133. /* ///////////////////////////////////////////////////////////////////////////////////////
  134. // Name: ippcvGetLibVersion
  135. //
  136. // Purpose: getting of the library version
  137. //
  138. // Returns: the structure of information about version of ippcv library
  139. //
  140. // Parameters:
  141. //
  142. // Notes: not necessary to release the returned structure
  143. */
  144. IPPAPI( const IppLibraryVersion*, ippcvGetLibVersion, (void) )
  145. /****************************************************************************************\
  146. * Copy with Subpixel Precision *
  147. \****************************************************************************************/
  148. /*F///////////////////////////////////////////////////////////////////////////////////////
  149. // Name: ippiCopySubpix_8u_C1R, ippiCopySubpix_16u_C1R,
  150. // ippiCopySubpix_8u16u_C1R_Sfs, ippiCopySubpix_16u32f_C1R,
  151. // ippiCopySubpix_8u32f_C1R, ippiCopySubpix_32f_C1R
  152. //
  153. // Purpose: copies source image to destination image with interpolation
  154. //
  155. // Returns:
  156. // ippStsNoErr Ok
  157. // ippStsNullPtrErr One of pointers is NULL
  158. // ippStsSizeErr The width or height of images is less or equal zero
  159. // ippStsStepErr The steps in images are too small
  160. // ippStsNotEvenStepErr Step is not multiple of element.
  161. //
  162. // Parameters:
  163. // pSrc Pointer to source image
  164. // srcStep Step in source image
  165. // pDst Pointer to destination image
  166. // dstStep Step in destination image
  167. // roiSize Source and destination image ROI size.
  168. // dx x coeff of linear interpolation
  169. // dy y coeff of linear interpolation
  170. // scaleFactor Output scale factor, >= 0
  171. //
  172. // Notes:
  173. //F*/
  174. IPPAPI(IppStatus, ippiCopySubpix_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  175. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy))
  176. IPPAPI(IppStatus, ippiCopySubpix_8u16u_C1R_Sfs, (const Ipp8u* pSrc, int srcStep,
  177. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy, int scaleFactor))
  178. IPPAPI(IppStatus, ippiCopySubpix_8u32f_C1R, (const Ipp8u* pSrc, int srcStep,
  179. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy))
  180. IPPAPI(IppStatus, ippiCopySubpix_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  181. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy))
  182. IPPAPI(IppStatus, ippiCopySubpix_16u32f_C1R, (const Ipp16u* pSrc, int srcStep,
  183. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy))
  184. IPPAPI(IppStatus, ippiCopySubpix_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  185. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f dx, Ipp32f dy))
  186. /*F////////////////////////////////////////////////////////////////////////////////////////////////
  187. // Name: ippiCopySubpixIntersect_8u_C1R, ippiCopySubpixIntersect_16u_C1R,
  188. // ippiCopySubpixIntersect_8u16u_C1R_Sfs, ippiCopySubpixIntersect_16u32f_C1R,
  189. // ippiCopySubpixIntersect_8u32f_C1R, ippiCopySubpixIntersect_32f_C1R
  190. //
  191. // Purpose: finds intersection of centered window in the source image and copies
  192. // in to destination image with the border
  193. // border pixel are taken from the source image or replicated if they are outside it
  194. //
  195. // Returns:
  196. // ippStsNoErr Ok
  197. // ippStsNullPtrErr One of pointers is NULL
  198. // ippStsSizeErr The width or height of images is less or equal zero
  199. // ippStsStepErr The steps in images are too small
  200. // ippStsNotEvenStepErr Step is not multiple of element.
  201. //
  202. // Parameters:
  203. // pSrc Pointer to source image
  204. // srcStep Step in source image
  205. // srcRoiSize Source image ROI size.
  206. // pDst Pointer to destination image
  207. // dstStep Step in destination image
  208. // dstRoiSize Destination image ROI size.
  209. // point Center of dst window in src image (subpixel)
  210. // pMin Top left corner of dst filled part
  211. // pMax Bottom right corner of dst filled part
  212. // scaleFactor Output scale factor, >= 0
  213. //
  214. // Notes: For integer point.x or point.y pixels from the last row
  215. // or column are not copied. Branches are possible.
  216. //F*/
  217. IPPAPI(IppStatus, ippiCopySubpixIntersect_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  218. IppiSize srcRoiSize, Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  219. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  220. IPPAPI(IppStatus, ippiCopySubpixIntersect_8u16u_C1R_Sfs, (const Ipp8u* pSrc, int srcStep,
  221. IppiSize srcRoiSize, Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  222. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax, int scaleFactor))
  223. IPPAPI(IppStatus, ippiCopySubpixIntersect_8u32f_C1R, (const Ipp8u* pSrc, int srcStep,
  224. IppiSize srcRoiSize, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  225. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  226. IPPAPI(IppStatus, ippiCopySubpixIntersect_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  227. IppiSize srcRoiSize, Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  228. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  229. IPPAPI(IppStatus, ippiCopySubpixIntersect_16u32f_C1R, (const Ipp16u* pSrc, int srcStep,
  230. IppiSize srcRoiSize, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  231. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  232. IPPAPI(IppStatus, ippiCopySubpixIntersect_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  233. IppiSize srcRoiSize, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  234. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  235. /****************************************************************************************\
  236. * Line sampling *
  237. \****************************************************************************************/
  238. /*F///////////////////////////////////////////////////////////////////////////////////////
  239. // Name: ippiSampleLine_8u_C1R, ippiSampleLine_8u_C3R,
  240. // ippiSampleLine_16u_C1R, ippiSampleLine_16u_C3R,
  241. // ippiSampleLine_32f_C1R, ippiSampleLine_32f_C3R,
  242. //
  243. // Purpose: Reads values of pixels on the raster
  244. // line between two given points and write them to buffer.
  245. //
  246. // Return:
  247. // ippStsNoErr Ok
  248. // ippStsNullPtrErr One of pointers is NULL
  249. // ippStsSizeErr The width or height of images is less or equal zero
  250. // ippStsStepErr The steps in images are too small
  251. // ippStsNotEvenStepErr Step is not multiple of element.
  252. // ippStsOutOfRangeErr At least one of the points is outside the image ROI.
  253. //
  254. // Parameters:
  255. // pSrc Source image
  256. // srcStep Its step
  257. // roiSize ROI size
  258. // pBuffer Pointer to buffer where the pixels are stored.
  259. // It must have size >= max(abs(pt2.y - pt1.y)+1,
  260. // abs(pt2.x - pt1.x)+1)*
  261. // <size_of_pixel>.
  262. // pt1 Starting point of the line segment.
  263. // The pixel value will be stored to buffer first.
  264. // pt2 Ending point of the line segment.
  265. // The pixel value will be stored to buffer last.
  266. //F*/
  267. IPPAPI(IppStatus, ippiSampleLine_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  268. IppiSize roiSize, Ipp8u* pDst,
  269. IppiPoint pt1, IppiPoint pt2 ))
  270. IPPAPI(IppStatus, ippiSampleLine_8u_C3R, ( const Ipp8u* pSrc, int srcStep,
  271. IppiSize roiSize, Ipp8u* pDst,
  272. IppiPoint pt1, IppiPoint pt2 ))
  273. IPPAPI(IppStatus, ippiSampleLine_16u_C1R, ( const Ipp16u* pSrc, int srcStep,
  274. IppiSize roiSize, Ipp16u* pDst,
  275. IppiPoint pt1, IppiPoint pt2 ))
  276. IPPAPI(IppStatus, ippiSampleLine_16u_C3R, ( const Ipp16u* pSrc, int srcStep,
  277. IppiSize roiSize, Ipp16u* pDst,
  278. IppiPoint pt1, IppiPoint pt2 ))
  279. IPPAPI(IppStatus, ippiSampleLine_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  280. IppiSize roiSize, Ipp32f* pDst,
  281. IppiPoint pt1, IppiPoint pt2 ))
  282. IPPAPI(IppStatus, ippiSampleLine_32f_C3R, ( const Ipp32f* pSrc, int srcStep,
  283. IppiSize roiSize, Ipp32f* pDst,
  284. IppiPoint pt1, IppiPoint pt2 ))
  285. /****************************************************************************************\
  286. * Accumulation *
  287. \****************************************************************************************/
  288. /* ///////////////////////////////////////////////////////////////////////////////////////
  289. // Name: ippiAdd_8u32f_C1IR, ippiAdd_8s32f_C1IR,
  290. // ippiAdd_16u32f_C1IR,
  291. // ippiAdd_8u32f_C1IMR, ippiAdd_8s32f_C1IMR,
  292. // ippiAdd_16u32f_C1IMR, ippiAdd_32f_C1IMR
  293. //
  294. // Purpose: Add image to accumulator.
  295. //
  296. // Return:
  297. // ippStsNoErr Ok
  298. // ippStsNullPtrErr One of pointers is NULL
  299. // ippStsSizeErr The width or height of images is less or equal zero
  300. // ippStsStepErr Step is too small to fit image.
  301. // ippStsNotEvenStepErr Step is not multiple of element.
  302. //
  303. // Arguments:
  304. // pSrc Pointer to source image
  305. // srcStep Step in the source image
  306. // pMask Pointer to mask
  307. // maskStep Step in the mask image
  308. // pSrcDst Pointer to accumulator image
  309. // srcDstStep Step in the accumulator image
  310. // roiSize Image size
  311. */
  312. IPPAPI(IppStatus, ippiAdd_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  313. Ipp32f* pSrcDst, int srcDstStep,
  314. IppiSize roiSize ))
  315. IPPAPI(IppStatus, ippiAdd_8s32f_C1IR, (const Ipp8s* pSrc, int srcStep,
  316. Ipp32f* pSrcDst, int srcDstStep,
  317. IppiSize roiSize ))
  318. IPPAPI(IppStatus, ippiAdd_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  319. Ipp32f* pSrcDst, int srcDstStep,
  320. IppiSize roiSize ))
  321. IPPAPI(IppStatus, ippiAdd_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  322. const Ipp8u* pMask, int maskStep,
  323. Ipp32f* pSrcDst, int srcDstStep,
  324. IppiSize roiSize ))
  325. IPPAPI(IppStatus, ippiAdd_8s32f_C1IMR,(const Ipp8s* pSrc, int srcStep,
  326. const Ipp8u* pMask, int maskStep,
  327. Ipp32f* pSrcDst, int srcDstStep,
  328. IppiSize roiSize ))
  329. IPPAPI(IppStatus, ippiAdd_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  330. const Ipp8u* pMask, int maskStep,
  331. Ipp32f* pSrcDst, int srcDstStep,
  332. IppiSize roiSize ))
  333. IPPAPI(IppStatus, ippiAdd_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  334. const Ipp8u* pMask, int maskStep,
  335. Ipp32f* pSrcDst, int srcDstStep,
  336. IppiSize roiSize ))
  337. /* ///////////////////////////////////////////////////////////////////////////////////////
  338. // Name: ippiAddSquare_8u32f_C1IR, ippiAddSquare_8s32f_C1IR,
  339. // ippiAddSquare_16u32f_C1IR, ippiAddSquare_32f_C1IR,
  340. // ippiAddSquare_8u32f_C1IMR, ippiAddSquare_8s32f_C1IMR,
  341. // ippiAddSquare_16u32f_C1IMR, ippiAddSquare_32f_C1IMR
  342. //
  343. // Purpose: Add squared image (i.e. multiplied by itself) to accumulator.
  344. //
  345. // Return:
  346. // ippStsNoErr Ok
  347. // ippStsNullPtrErr One of pointers is NULL
  348. // ippStsSizeErr The width or height of images is less or equal zero
  349. // ippStsStepErr Step is too small to fit image.
  350. // ippStsNotEvenStepErr Step is not multiple of element.
  351. //
  352. // Arguments:
  353. // pSrc Pointer to source image
  354. // srcStep Step in the source image
  355. // pMask Pointer to mask
  356. // maskStep Step in the mask image
  357. // pSrcDst Pointer to accumulator image
  358. // srcDstStep Step in the accumulator image
  359. // roiSize Image size
  360. */
  361. IPPAPI(IppStatus, ippiAddSquare_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  362. Ipp32f* pSrcDst, int srcDstStep,
  363. IppiSize roiSize ))
  364. IPPAPI(IppStatus, ippiAddSquare_8s32f_C1IR, (const Ipp8s* pSrc, int srcStep,
  365. Ipp32f* pSrcDst, int srcDstStep,
  366. IppiSize roiSize ))
  367. IPPAPI(IppStatus, ippiAddSquare_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  368. Ipp32f* pSrcDst, int srcDstStep,
  369. IppiSize roiSize ))
  370. IPPAPI(IppStatus, ippiAddSquare_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  371. Ipp32f* pSrcDst, int srcDstStep,
  372. IppiSize roiSize ))
  373. IPPAPI(IppStatus, ippiAddSquare_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  374. const Ipp8u* pMask, int maskStep,
  375. Ipp32f* pSrcDst, int srcDstStep,
  376. IppiSize roiSize ))
  377. IPPAPI(IppStatus, ippiAddSquare_8s32f_C1IMR,(const Ipp8s* pSrc, int srcStep,
  378. const Ipp8u* pMask, int maskStep,
  379. Ipp32f* pSrcDst, int srcDstStep,
  380. IppiSize roiSize ))
  381. IPPAPI(IppStatus, ippiAddSquare_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  382. const Ipp8u* pMask, int maskStep,
  383. Ipp32f* pSrcDst, int srcDstStep,
  384. IppiSize roiSize ))
  385. IPPAPI(IppStatus, ippiAddSquare_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  386. const Ipp8u* pMask, int maskStep,
  387. Ipp32f* pSrcDst, int srcDstStep,
  388. IppiSize roiSize ))
  389. /* ///////////////////////////////////////////////////////////////////////////////////////
  390. // Name: ippiAddProduct_8u32f_C1IR, ippiAddProduct_8s32f_C1IR,
  391. // ippiAddProduct_16u32f_C1IR, ippiAddProduct_32f_C1IR,
  392. // ippiAddProduct_8u32f_C1IMR, ippiAddProduct_8s32f_C1IMR,
  393. // ippiAddProduct_16u32f_C1IMR, ippiAddProduct_32f_C1IMR
  394. //
  395. // Purpose: Add product of two images to accumulator.
  396. //
  397. // Return:
  398. // ippStsNoErr Ok
  399. // ippStsNullPtrErr One of pointers is NULL
  400. // ippStsSizeErr The width or height of images is less or equal zero
  401. // ippStsStepErr Step is too small to fit image.
  402. // ippStsNotEvenStepErr Step is not multiple of element.
  403. //
  404. // Arguments:
  405. // pSrc1 Pointer to first source image
  406. // src1Step Step in the first source image
  407. // pSrc2 Pointer to second source image
  408. // src2Step Step in the second source image
  409. // pMask Pointer to mask
  410. // maskStep Step in the mask image
  411. // pSrcDst Pointer to accumulator image
  412. // srcDstStep Step in the accumulator image
  413. // roiSize Image size
  414. */
  415. IPPAPI(IppStatus, ippiAddProduct_8u32f_C1IR, (const Ipp8u* pSrc1, int src1Step,
  416. const Ipp8u* pSrc2, int src2Step,
  417. Ipp32f* pSrcDst, int srcDstStep,
  418. IppiSize roiSize ))
  419. IPPAPI(IppStatus, ippiAddProduct_8s32f_C1IR, (const Ipp8s* pSrc1, int src1Step,
  420. const Ipp8s* pSrc2, int src2Step,
  421. Ipp32f* pSrcDst, int srcDstStep,
  422. IppiSize roiSize ))
  423. IPPAPI(IppStatus, ippiAddProduct_16u32f_C1IR, (const Ipp16u* pSrc1, int src1Step,
  424. const Ipp16u* pSrc2, int src2Step,
  425. Ipp32f* pSrcDst, int srcDstStep,
  426. IppiSize roiSize ))
  427. IPPAPI(IppStatus, ippiAddProduct_32f_C1IR, (const Ipp32f* pSrc1, int src1Step,
  428. const Ipp32f* pSrc2, int src2Step,
  429. Ipp32f* pSrcDst, int srcDstStep,
  430. IppiSize roiSize ))
  431. IPPAPI(IppStatus, ippiAddProduct_8u32f_C1IMR,(const Ipp8u* pSrc1, int src1Step,
  432. const Ipp8u* pSrc2, int src2Step,
  433. const Ipp8u* pMask, int maskStep,
  434. Ipp32f* pSrcDst, int srcDstStep,
  435. IppiSize roiSize ))
  436. IPPAPI(IppStatus, ippiAddProduct_8s32f_C1IMR,(const Ipp8s* pSrc1, int src1Step,
  437. const Ipp8s* pSrc2, int src2Step,
  438. const Ipp8u* pMask, int maskStep,
  439. Ipp32f* pSrcDst, int srcDstStep,
  440. IppiSize roiSize ))
  441. IPPAPI(IppStatus, ippiAddProduct_16u32f_C1IMR,(const Ipp16u* pSrc1, int src1Step,
  442. const Ipp16u* pSrc2, int src2Step,
  443. const Ipp8u* pMask, int maskStep,
  444. Ipp32f* pSrcDst, int srcDstStep,
  445. IppiSize roiSize ))
  446. IPPAPI(IppStatus, ippiAddProduct_32f_C1IMR, (const Ipp32f* pSrc1, int src1Step,
  447. const Ipp32f* pSrc2, int src2Step,
  448. const Ipp8u* pMask, int maskStep,
  449. Ipp32f* pSrcDst, int srcDstStep,
  450. IppiSize roiSize ))
  451. /* ///////////////////////////////////////////////////////////////////////////////////////
  452. // Name: ippiAddWeighted_8u32f_C1IR, ippiAddWeighted_8s32f_C1IR,
  453. // ippiAddWeighted_16u32f_C1IR, ippiAddWeighted_32f_C1IR,
  454. // ippiAddWeighted_8u32f_C1IMR, ippiAddWeighted_8s32f_C1IMR,
  455. // ippiAddWeighted_16u32f_C1IMR,ippiAddWeighted_32f_C1IMR
  456. // ippiAddWeighted_32f_C1R
  457. //
  458. // Purpose: Add image, multiplied by alpha, to accumulator, multiplied by (1 - alpha).
  459. //
  460. // Return:
  461. // ippStsNoErr Ok
  462. // ippStsNullPtrErr One of pointers is NULL
  463. // ippStsSizeErr The width or height of images is less or equal zero
  464. // ippStsStepErr Step is too small to fit image.
  465. // ippStsNotEvenStepErr Step is not multiple of element.
  466. //
  467. // Arguments:
  468. // pSrc1 Pointer to first source image
  469. // src1Step Step in the first source image
  470. // pSrc2 Pointer to second source image
  471. // src2Step Step in the second source image
  472. // pMask Pointer to mask
  473. // maskStep Step in the mask image
  474. // pSrcDst Pointer to accumulator image
  475. // srcDstStep Step in the accumulator image
  476. // pDst Pointer to destination image
  477. // dstStep Step in the destination image
  478. // roiSize Image size
  479. // alpha Weight of source image
  480. */
  481. IPPAPI(IppStatus, ippiAddWeighted_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  482. Ipp32f* pSrcDst, int srcDstStep,
  483. IppiSize roiSize, Ipp32f alpha ))
  484. IPPAPI(IppStatus, ippiAddWeighted_8s32f_C1IR, (const Ipp8s* pSrc, int srcStep,
  485. Ipp32f* pSrcDst, int srcDstStep,
  486. IppiSize roiSize, Ipp32f alpha ))
  487. IPPAPI(IppStatus, ippiAddWeighted_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  488. Ipp32f* pSrcDst, int srcDstStep,
  489. IppiSize roiSize, Ipp32f alpha ))
  490. IPPAPI(IppStatus, ippiAddWeighted_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  491. Ipp32f* pSrcDst, int srcDstStep,
  492. IppiSize roiSize, Ipp32f alpha ))
  493. IPPAPI(IppStatus, ippiAddWeighted_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  494. const Ipp8u* pMask, int maskStep,
  495. Ipp32f* pSrcDst, int srcDstStep,
  496. IppiSize roiSize, Ipp32f alpha ))
  497. IPPAPI(IppStatus, ippiAddWeighted_8s32f_C1IMR,(const Ipp8s* pSrc, int srcStep,
  498. const Ipp8u* pMask, int maskStep,
  499. Ipp32f* pSrcDst, int srcDstStep,
  500. IppiSize roiSize, Ipp32f alpha ))
  501. IPPAPI(IppStatus, ippiAddWeighted_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  502. const Ipp8u* pMask, int maskStep,
  503. Ipp32f* pSrcDst, int srcDstStep,
  504. IppiSize roiSize, Ipp32f alpha ))
  505. IPPAPI(IppStatus, ippiAddWeighted_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  506. const Ipp8u* pMask, int maskStep,
  507. Ipp32f* pSrcDst, int srcDstStep,
  508. IppiSize roiSize, Ipp32f alpha ))
  509. IPPAPI(IppStatus, ippiAddWeighted_32f_C1R, ( const Ipp32f* pSrc1, int src1Step,
  510. const Ipp32f* pSrc2, int src2Step,
  511. Ipp32f* pDst, int dstStep,
  512. IppiSize roiSize, Ipp32f alpha ))
  513. /****************************************************************************************\
  514. * Absolute difference *
  515. \****************************************************************************************/
  516. /*F///////////////////////////////////////////////////////////////////////////////////////
  517. // Name: ippiAbsDiff_8u_C1R, ippiAbsDiff_8u_C3R, ippiAbsDiff_16u_C1R, ippiAbsDiff_32f_C1R,
  518. //
  519. // Purpose: Calculate absolute difference between corresponding pixels of the two images
  520. // or between image pixels and scalar.
  521. //
  522. // Return:
  523. // ippStsNoErr Ok
  524. // ippStsNullPtrErr One of pointers is NULL
  525. // ippStsSizeErr The width or height of images is less or equal zero
  526. // ippStsStepErr The steps in images are too small
  527. // ippStsNotEvenStepErr Step is not multiple of element.
  528. //
  529. // Parameters:
  530. // pSrc1 Source image
  531. // src1Step Its step
  532. // pSrc2 Second source image
  533. // src2Step Its step
  534. // pDst Destination image
  535. // dstStep Its step
  536. // roiSize ROI size
  537. //F*/
  538. IPPAPI(IppStatus, ippiAbsDiff_8u_C1R, ( const Ipp8u* pSrc1, int src1Step,
  539. const Ipp8u* pSrc2, int src2Step,
  540. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  541. IPPAPI(IppStatus, ippiAbsDiff_8u_C3R, ( const Ipp8u* pSrc1, int src1Step,
  542. const Ipp8u* pSrc2, int src2Step,
  543. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  544. IPPAPI(IppStatus, ippiAbsDiff_16u_C1R, ( const Ipp16u* pSrc1, int src1Step,
  545. const Ipp16u* pSrc2, int src2Step,
  546. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  547. IPPAPI(IppStatus, ippiAbsDiff_32f_C1R, ( const Ipp32f* pSrc1, int src1Step,
  548. const Ipp32f* pSrc2, int src2Step,
  549. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  550. /*F///////////////////////////////////////////////////////////////////////////////////////
  551. // Name: ippiAbsDiffC_8u_C1R, ippiAbsDiffC_16u_C1R, ippiAbsDiffC_32f_C1R,
  552. //
  553. // Purpose: Calculate absolute difference between image pixels and scalar.
  554. //
  555. // Return:
  556. // ippStsNoErr Ok
  557. // ippStsNullPtrErr One of pointers is NULL
  558. // ippStsSizeErr The width or height of images is less or equal zero
  559. // ippStsStepErr The steps in images are too small
  560. // ippStsNotEvenStepErr Step is not multiple of element.
  561. //
  562. // Parameters:
  563. // pSrc Source image
  564. // srcStep Its step
  565. // pDst Destination image: dst(x,y) = abs(src(x,y) - value)
  566. // dstStep Its step
  567. // roiSize ROI size
  568. // value Scalar value to compare with. For 8u function
  569. // If scalar is not within [0,255], it is clipped
  570. // ( value = value < 0 ? 0 : value > 255 ? 255 : value )
  571. //F*/
  572. IPPAPI(IppStatus, ippiAbsDiffC_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  573. Ipp8u* pDst, int dstStep,
  574. IppiSize roiSize, int value ))
  575. IPPAPI(IppStatus, ippiAbsDiffC_16u_C1R, ( const Ipp16u* pSrc, int srcStep,
  576. Ipp16u* pDst, int dstStep,
  577. IppiSize roiSize, int value ))
  578. IPPAPI(IppStatus, ippiAbsDiffC_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  579. Ipp32f* pDst, int dstStep,
  580. IppiSize roiSize, Ipp32f value ))
  581. /****************************************************************************************\
  582. * Morphological Operations *
  583. \****************************************************************************************/
  584. /* ///////////////////////////////////////////////////////////////////////////////////////
  585. // Name: ippiMorphologyGetSize_8u_C1R, ippiMorphologyGetSize_32f_C1R,
  586. // ippiMorphologyGetSize_8u_C3R, ippiMorphologyGetSize_32f_C3R,
  587. // ippiMorphologyGetSize_8u_C4R, ippiMorphologyGetSize_32f_C4R
  588. //
  589. // Purpose: Gets size of internal state of morphological operation.
  590. //
  591. // Return:
  592. // ippStsNoErr Ok
  593. // ippStsNullPtrErr One of pointers is NULL
  594. // ippStsSizeErr The width of image or width or height of structuring
  595. // element is less or equal zero.
  596. //
  597. // Arguments:
  598. // roiWidth Width of image ROI in pixels
  599. // pMask Pointer to structuring element (mask)
  600. // maskSize Size of structuring element
  601. // pSize Pointer to state length (GetSize)
  602. */
  603. IPPAPI(IppStatus, ippiMorphologyGetSize_8u_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  604. IPPAPI(IppStatus, ippiMorphologyGetSize_8u_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  605. IPPAPI(IppStatus, ippiMorphologyGetSize_8u_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  606. IPPAPI(IppStatus, ippiMorphologyGetSize_32f_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  607. IPPAPI(IppStatus, ippiMorphologyGetSize_32f_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  608. IPPAPI(IppStatus, ippiMorphologyGetSize_32f_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize, int* pSize))
  609. /* ///////////////////////////////////////////////////////////////////////////////////////
  610. // Name: ippiMorphologyInit_8u_C1R, ippiMorphologyInit_32f_C1R,
  611. // ippiMorphologyInit_8u_C3R, ippiMorphologyInit_32f_C3R,
  612. // ippiMorphologyInit_8u_C4R, ippiMorphologyInit_32f_C4R,
  613. //
  614. // Purpose: Initialize internal state of morphological operation.
  615. //
  616. // Return:
  617. // ippStsNoErr Ok
  618. // ippStsNullPtrErr One of pointers is NULL
  619. // ippStsSizeErr The width of image or width or height of structuring
  620. // element is less or equal zero.
  621. // ippStsAnchorErr Anchor point is outside the structuring element
  622. //
  623. // Arguments:
  624. // roiWidth Width of image ROI in pixels
  625. // pMask Pointer to structuring element (mask)
  626. // maskSize Size of structuring element
  627. // anchor Anchor of the structuring element
  628. // pState Pointer to morphological state (Init)
  629. */
  630. IPPAPI(IppStatus, ippiMorphologyInit_8u_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  631. IppiPoint anchor, IppiMorphState* pState))
  632. IPPAPI(IppStatus, ippiMorphologyInit_8u_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  633. IppiPoint anchor, IppiMorphState* pState))
  634. IPPAPI(IppStatus, ippiMorphologyInit_8u_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  635. IppiPoint anchor, IppiMorphState* pState))
  636. IPPAPI(IppStatus, ippiMorphologyInit_32f_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  637. IppiPoint anchor, IppiMorphState* pState))
  638. IPPAPI(IppStatus, ippiMorphologyInit_32f_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  639. IppiPoint anchor, IppiMorphState* pState))
  640. IPPAPI(IppStatus, ippiMorphologyInit_32f_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  641. IppiPoint anchor, IppiMorphState* pState))
  642. /* ///////////////////////////////////////////////////////////////////////////////////////
  643. // Name: ippiMorphologyInitAlloc_8u_C1R, ippiMorphologyInitAlloc_32f_C1R,
  644. // ippiMorphologyInitAlloc_8u_C3R, ippiMorphologyInitAlloc_32f_C3R,
  645. // ippiMorphologyInitAlloc_8u_C4R, ippiMorphologyInitAlloc_32f_C4R
  646. //
  647. // Purpose: Allocate buffers and initialize internal state of morphological operation.
  648. //
  649. // Return:
  650. // ippStsNoErr Ok
  651. // ippStsNullPtrErr One of pointers is NULL
  652. // ippStsSizeErr The width of image or width or height of structuring
  653. // element is less or equal zero.
  654. // ippStsAnchorErr Anchor point is outside the structuring element
  655. // ippStsMemAllocErr Memory allocation error
  656. //
  657. // Arguments:
  658. // roiWidth Width of image ROI in pixels
  659. // pMask Pointer to structuring element (mask)
  660. // maskSize Size of structuring element
  661. // anchor Anchor of the structuring element
  662. // ppState Double pointer to morphological state (InitAlloc)
  663. */
  664. IPPAPI(IppStatus, ippiMorphologyInitAlloc_8u_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  665. IppiPoint anchor, IppiMorphState** ppState))
  666. IPPAPI(IppStatus, ippiMorphologyInitAlloc_8u_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  667. IppiPoint anchor, IppiMorphState** ppState))
  668. IPPAPI(IppStatus, ippiMorphologyInitAlloc_8u_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  669. IppiPoint anchor, IppiMorphState** ppState))
  670. IPPAPI(IppStatus, ippiMorphologyInitAlloc_32f_C1R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  671. IppiPoint anchor, IppiMorphState** ppState))
  672. IPPAPI(IppStatus, ippiMorphologyInitAlloc_32f_C3R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  673. IppiPoint anchor, IppiMorphState** ppState))
  674. IPPAPI(IppStatus, ippiMorphologyInitAlloc_32f_C4R,(int roiWidth, const Ipp8u* pMask, IppiSize maskSize,
  675. IppiPoint anchor, IppiMorphState** ppState))
  676. /* ///////////////////////////////////////////////////////////////////////////////////////
  677. // Name: ippiMorphologyFree
  678. //
  679. // Purpose: Releases buffers, allocated by ippiMorphologyInitAlloc
  680. // Return:
  681. // ippStsNoErr Ok
  682. // ippStsNullPtrErr One of pointers is NULL
  683. //
  684. // Arguments:
  685. // morphState Pointer to morphological state.
  686. */
  687. IPPAPI(IppStatus, ippiMorphologyFree,(IppiMorphState* pState))
  688. /* ///////////////////////////////////////////////////////////////////////////////////////
  689. // Name: ippiDilateBorderReplicate_8u_C1R, ippiDilateBorderReplicate_8u_C3R,
  690. // ippiDilateBorderReplicate_8u_C4R, ippiDilateBorderReplicate_32f_C1R,
  691. // ippiDilateBorderReplicate_32f_C3R, ippiDilateBorderReplicate_32f_C4R
  692. //
  693. // ippiErodeBorderReplicate_8u_C1R, ippiErodeBorderReplicate_8u_C3R,
  694. // ippiErodeBorderReplicate_8u_C4R, ippiErodeBorderReplicate_32f_C1R,
  695. // ippiErodeBorderReplicate_32f_C3R, ippiErodeBorderReplicate_32f_C4R,
  696. //
  697. // Purpose: Perform erosion/dilation of image arbitrary shape structuring element.
  698. //
  699. // Return:
  700. // ippStsNoErr Ok
  701. // ippStsNullPtrErr One of pointers is NULL
  702. // ippStsSizeErr The ROI width or height is less than 1
  703. // or ROI width is bigger than ROI width in state
  704. // ippStsStepErr Step is too small to fit image.
  705. // ippStsNotEvenStepErr Step is not multiple of element.
  706. // ippStsBadArgErr Bad border type
  707. //
  708. // Arguments:
  709. // pSrc The pointer to source image
  710. // srcStep The step in source image
  711. // pDst The pointer to destination image
  712. // dstStep The step in destination image
  713. // roiSize ROI size
  714. // borderType Type of border (ippBorderRepl now)
  715. // pState Pointer to morphological operation state
  716. */
  717. IPPAPI(IppStatus, ippiDilateBorderReplicate_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  718. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  719. IppiBorderType borderType, IppiMorphState* pState))
  720. IPPAPI(IppStatus, ippiDilateBorderReplicate_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  721. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  722. IppiBorderType borderType, IppiMorphState* pState))
  723. IPPAPI(IppStatus, ippiDilateBorderReplicate_8u_C4R,(const Ipp8u* pSrc, int srcStep,
  724. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  725. IppiBorderType borderType, IppiMorphState* pState))
  726. IPPAPI(IppStatus, ippiDilateBorderReplicate_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  727. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  728. IppiBorderType borderType, IppiMorphState* pState))
  729. IPPAPI(IppStatus, ippiDilateBorderReplicate_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  730. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  731. IppiBorderType borderType, IppiMorphState* pState))
  732. IPPAPI(IppStatus, ippiDilateBorderReplicate_32f_C4R,(const Ipp32f* pSrc, int srcStep,
  733. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  734. IppiBorderType borderType, IppiMorphState* pState))
  735. IPPAPI(IppStatus, ippiErodeBorderReplicate_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  736. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  737. IppiBorderType borderType, IppiMorphState* pState))
  738. IPPAPI(IppStatus, ippiErodeBorderReplicate_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  739. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  740. IppiBorderType borderType, IppiMorphState* pState))
  741. IPPAPI(IppStatus, ippiErodeBorderReplicate_8u_C4R,(const Ipp8u* pSrc, int srcStep,
  742. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  743. IppiBorderType borderType, IppiMorphState* pState))
  744. IPPAPI(IppStatus, ippiErodeBorderReplicate_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  745. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  746. IppiBorderType borderType, IppiMorphState* pState))
  747. IPPAPI(IppStatus, ippiErodeBorderReplicate_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  748. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  749. IppiBorderType borderType, IppiMorphState* pState))
  750. IPPAPI(IppStatus, ippiErodeBorderReplicate_32f_C4R,(const Ipp32f* pSrc, int srcStep,
  751. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  752. IppiBorderType borderType, IppiMorphState* pState))
  753. /****************************************************************************************\
  754. * Advanced Morphological Operations *
  755. \****************************************************************************************/
  756. /* ///////////////////////////////////////////////////////////////////////////////////////
  757. // Name: ippiMorphAdvGetSize_8u_C1R, ippiMorphAdvGetSize_32f_C1R,
  758. // ippiMorphAdvGetSize_8u_C3R, ippiMorphAdvGetSize_32f_C3R,
  759. // ippiMorphAdvGetSize_8u_C4R, ippiMorphAdvGetSize_32f_C4R
  760. //
  761. // Purpose: Gets size of internal state of advanced morphological operation.
  762. //
  763. // Return:
  764. // ippStsNoErr Ok
  765. // ippStsNullPtrErr One of pointers is NULL
  766. // ippStsSizeErr The width of image or width or height of structuring
  767. // element is less or equal zero.
  768. //
  769. // Arguments:
  770. // roiSize Maximal image ROI in pixels
  771. // pMask Pointer to structuring element (mask)
  772. // maskSize Size of structuring element
  773. // pSize Pointer to state length (GetSize)
  774. */
  775. IPPAPI(IppStatus, ippiMorphAdvGetSize_8u_C1R,(IppiSize roiSize, const Ipp8u* pMask,
  776. IppiSize maskSize, int* stateSize))
  777. IPPAPI(IppStatus, ippiMorphAdvGetSize_8u_C3R,(IppiSize roiSize, const Ipp8u* pMask,
  778. IppiSize maskSize, int* stateSize))
  779. IPPAPI(IppStatus, ippiMorphAdvGetSize_8u_C4R,(IppiSize roiSize, const Ipp8u* pMask,
  780. IppiSize maskSize, int* stateSize))
  781. IPPAPI(IppStatus, ippiMorphAdvGetSize_32f_C1R,(IppiSize roiSize, const Ipp8u* pMask,
  782. IppiSize maskSize, int* stateSize))
  783. IPPAPI(IppStatus, ippiMorphAdvGetSize_32f_C3R,(IppiSize roiSize, const Ipp8u* pMask,
  784. IppiSize maskSize, int* stateSize))
  785. IPPAPI(IppStatus, ippiMorphAdvGetSize_32f_C4R,(IppiSize roiSize, const Ipp8u* pMask,
  786. IppiSize maskSize, int* stateSize))
  787. /* ///////////////////////////////////////////////////////////////////////////////////////
  788. // Name: ippiMorphAdvInit_8u_C1R, ippiMorphAdvInit_32f_C1R,
  789. // ippiMorphAdvInit_8u_C3R, ippiMorphAdvInit_32f_C3R,
  790. // ippiMorphAdvInit_8u_C4R, ippiMorphAdvInit_32f_C4R,
  791. //
  792. // Purpose: Initialize internal state of advanced morphological operation.
  793. //
  794. // Return:
  795. // ippStsNoErr Ok
  796. // ippStsNullPtrErr One of pointers is NULL
  797. // ippStsSizeErr The width of image or width or height of structuring
  798. // element is less or equal zero.
  799. // ippStsAnchorErr Anchor point is outside the structuring element
  800. //
  801. // Arguments:
  802. // pState Pointer to morphological state (Init)
  803. // roiSize Maximal image ROI in pixels
  804. // pMask Pointer to structuring element (mask)
  805. // maskSize Size of structuring element
  806. // anchor Anchor of the structuring element
  807. */
  808. IPPAPI(IppStatus, ippiMorphAdvInit_8u_C1R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  809. IppiSize maskSize, IppiPoint anchor))
  810. IPPAPI(IppStatus, ippiMorphAdvInit_8u_C3R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  811. IppiSize maskSize, IppiPoint anchor))
  812. IPPAPI(IppStatus, ippiMorphAdvInit_8u_C4R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  813. IppiSize maskSize, IppiPoint anchor))
  814. IPPAPI(IppStatus, ippiMorphAdvInit_32f_C1R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  815. IppiSize maskSize, IppiPoint anchor))
  816. IPPAPI(IppStatus, ippiMorphAdvInit_32f_C3R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  817. IppiSize maskSize, IppiPoint anchor))
  818. IPPAPI(IppStatus, ippiMorphAdvInit_32f_C4R,(IppiMorphAdvState* morphState, IppiSize roiSize, const Ipp8u* pMask,
  819. IppiSize maskSize, IppiPoint anchor))
  820. /* ///////////////////////////////////////////////////////////////////////////////////////
  821. // Name: ippiMorphAdvInitAlloc_8u_C1R, ippiMorphAdvInitAlloc_32f_C1R,
  822. // ippiMorphAdvInitAlloc_8u_C3R, ippiMorphAdvInitAlloc_32f_C3R,
  823. // ippiMorphAdvInitAlloc_8u_C4R, ippiMorphAdvInitAlloc_32f_C4R
  824. //
  825. // Purpose: Allocate buffers and initialize internal state of advanced morphological operation.
  826. //
  827. // Return:
  828. // ippStsNoErr Ok
  829. // ippStsNullPtrErr One of pointers is NULL
  830. // ippStsSizeErr The width of image or width or height of structuring
  831. // element is less or equal zero.
  832. // ippStsAnchorErr Anchor point is outside the structuring element
  833. // ippStsMemAllocErr Memory allocation error
  834. //
  835. // Arguments:
  836. // ppState Double pointer to morphological state (InitAlloc)
  837. // roiSize Maximal image ROI in pixels
  838. // pMask Pointer to structuring element (mask)
  839. // maskSize Size of structuring element
  840. // anchor Anchor of the structuring element
  841. */
  842. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_8u_C1R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  843. IppiSize maskSize, IppiPoint anchor))
  844. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_8u_C3R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  845. IppiSize maskSize, IppiPoint anchor))
  846. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_8u_C4R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  847. IppiSize maskSize, IppiPoint anchor))
  848. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_32f_C1R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  849. IppiSize maskSize, IppiPoint anchor))
  850. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_32f_C3R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  851. IppiSize maskSize, IppiPoint anchor))
  852. IPPAPI(IppStatus, ippiMorphAdvInitAlloc_32f_C4R,(IppiMorphAdvState** morphState, IppiSize roiSize, const Ipp8u* pMask,
  853. IppiSize maskSize, IppiPoint anchor))
  854. /* ///////////////////////////////////////////////////////////////////////////////////////
  855. // Name: ippiMorphAdvFree
  856. //
  857. // Purpose: Releases buffers, allocated by rippiMorphAdvInitAlloc
  858. // Return:
  859. // ippStsNoErr Ok
  860. // ippStsNullPtrErr Null pointer to pointer to morphological state.
  861. //
  862. // Arguments:
  863. // pState double pointer to morphological state.
  864. */
  865. IPPAPI(IppStatus, ippiMorphAdvFree,(IppiMorphAdvState* pState))
  866. /* ///////////////////////////////////////////////////////////////////////////////////////
  867. // Name: ippiMorphCloseBorder_8u_C1R, ippiMorphCloseBorder_8u_C3R,
  868. // ippiMorphCloseBorder_8u_C4R, ippiMorphCloseBorder_32f_C1R,
  869. // ippiMorphCloseBorder_32f_C3R, ippiMorphCloseBorder_32f_C4R
  870. //
  871. // ippiMorphOpenBorder_8u_C1R, ippiMorphOpenBorder_8u_C3R,
  872. // ippiMorphOpenBorder_8u_C4R, ippiMorphOpenBorder_32f_C1R,
  873. // ippiMorphOpenBorder_32f_C3R, ippiMorphOpenBorder_32f_C4R,
  874. //
  875. // ippiMorphTophatBorder_8u_C1R, ippiMorphTophatBorder_8u_C3R,
  876. // ippiMorphTophatBorder_8u_C4R, ippiMorphTophatBorder_32f_C1R,
  877. // ippiMorphTophatBorder_32f_C3R, ippiMorphTophatBorder_32f_C4R,
  878. //
  879. // ippiMorphBlackhatBorder_8u_C1R, ippiMorphBlackhatBorder_8u_C3R,
  880. // ippiMorphBlackhatBorder_8u_C4R, ippiMorphBlackhatBorder_32f_C1R,
  881. // ippiMorphBlackhatBorder_32f_C3R, ippiMorphBlackhatBorder_32f_C4R,
  882. //
  883. // ippiMorphGradientBorder_8u_C1R, ippiMorphGradientBorder_8u_C3R,
  884. // ippiMorphGradientBorder_8u_C4R, ippiMorphGradientBorder_32f_C1R,
  885. // ippiMorphGradientBorder_32f_C3R, ippiMorphGradientBorder_32f_C4R,
  886. //
  887. // Purpose: Perform advanced morphology of image arbitrary shape structuring element.
  888. //
  889. // Return:
  890. // ippStsNoErr Ok
  891. // ippStsNullPtrErr One of pointers is NULL
  892. // ippStsSizeErr The ROI width or height is less than 1
  893. // or ROI width is bigger than ROI width in state
  894. // ippStsStepErr Step is too small to fit image.
  895. // ippStsNotEvenStepErr Step is not multiple of element.
  896. // ippStsBadArgErr Bad border type
  897. //
  898. // Arguments:
  899. // pSrc The pointer to source image
  900. // srcStep The step in source image
  901. // pDst The pointer to destination image
  902. // dstStep The step in destination image
  903. // roiSize ROI size
  904. // borderType Type of border (ippBorderRepl now)
  905. // pState Pointer to morphological operation state
  906. */
  907. IPPAPI(IppStatus, ippiMorphOpenBorder_8u_C1R,(
  908. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  909. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  910. IPPAPI(IppStatus, ippiMorphOpenBorder_8u_C3R,(
  911. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  912. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  913. IPPAPI(IppStatus, ippiMorphOpenBorder_8u_C4R,(
  914. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  915. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  916. IPPAPI(IppStatus, ippiMorphOpenBorder_32f_C1R,(
  917. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  918. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  919. IPPAPI(IppStatus, ippiMorphOpenBorder_32f_C3R,(
  920. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  921. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  922. IPPAPI(IppStatus, ippiMorphOpenBorder_32f_C4R,(
  923. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  924. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  925. IPPAPI(IppStatus, ippiMorphCloseBorder_8u_C1R,(
  926. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  927. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  928. IPPAPI(IppStatus, ippiMorphCloseBorder_8u_C3R,(
  929. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  930. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  931. IPPAPI(IppStatus, ippiMorphCloseBorder_8u_C4R,(
  932. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  933. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  934. IPPAPI(IppStatus, ippiMorphCloseBorder_32f_C1R,(
  935. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  936. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  937. IPPAPI(IppStatus, ippiMorphCloseBorder_32f_C3R,(
  938. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  939. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  940. IPPAPI(IppStatus, ippiMorphCloseBorder_32f_C4R,(
  941. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  942. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  943. IPPAPI(IppStatus, ippiMorphTophatBorder_8u_C1R,(
  944. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  945. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  946. IPPAPI(IppStatus, ippiMorphTophatBorder_8u_C3R,(
  947. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  948. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  949. IPPAPI(IppStatus, ippiMorphTophatBorder_8u_C4R,(
  950. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  951. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  952. IPPAPI(IppStatus, ippiMorphTophatBorder_32f_C1R,(
  953. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  954. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  955. IPPAPI(IppStatus, ippiMorphTophatBorder_32f_C3R,(
  956. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  957. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  958. IPPAPI(IppStatus, ippiMorphTophatBorder_32f_C4R,(
  959. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  960. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  961. IPPAPI(IppStatus, ippiMorphBlackhatBorder_8u_C1R,(
  962. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  963. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  964. IPPAPI(IppStatus, ippiMorphBlackhatBorder_8u_C3R,(
  965. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  966. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  967. IPPAPI(IppStatus, ippiMorphBlackhatBorder_8u_C4R,(
  968. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  969. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  970. IPPAPI(IppStatus, ippiMorphBlackhatBorder_32f_C1R,(
  971. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  972. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  973. IPPAPI(IppStatus, ippiMorphBlackhatBorder_32f_C3R,(
  974. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  975. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  976. IPPAPI(IppStatus, ippiMorphBlackhatBorder_32f_C4R,(
  977. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  978. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  979. IPPAPI(IppStatus, ippiMorphGradientBorder_8u_C1R,(
  980. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  981. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  982. IPPAPI(IppStatus, ippiMorphGradientBorder_8u_C3R,(
  983. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  984. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  985. IPPAPI(IppStatus, ippiMorphGradientBorder_8u_C4R,(
  986. const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  987. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  988. IPPAPI(IppStatus, ippiMorphGradientBorder_32f_C1R,(
  989. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  990. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  991. IPPAPI(IppStatus, ippiMorphGradientBorder_32f_C3R,(
  992. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  993. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  994. IPPAPI(IppStatus, ippiMorphGradientBorder_32f_C4R,(
  995. const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  996. IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState))
  997. /* ///////////////////////////////////////////////////////////////////////////////////////
  998. // Name: ippiMorphGrayGetSize_8u_C1R, ippiMorphGrayGetSize_32f_C1R
  999. //
  1000. // Purpose: Gets size of internal state of gray-kernel morphological operation.
  1001. //
  1002. // Return:
  1003. // ippStsNoErr Ok
  1004. // ippStsNullPtrErr One of pointers is NULL
  1005. // ippStsSizeErr The width of image or width or height of structuring
  1006. // element is less or equal zero.
  1007. //
  1008. // Arguments:
  1009. // roiSize Maximal image ROI in pixels
  1010. // pMask Pointer to structuring element
  1011. // maskSize Size of structuring element
  1012. // pSize Pointer to state length
  1013. */
  1014. IPPAPI(IppStatus, ippiMorphGrayGetSize_8u_C1R,(IppiSize roiSize, const Ipp32s* pMask, IppiSize maskSize, int* pSize))
  1015. IPPAPI(IppStatus, ippiMorphGrayGetSize_32f_C1R,(IppiSize roiSize, const Ipp32f* pMask, IppiSize maskSize, int* pSize))
  1016. /* ///////////////////////////////////////////////////////////////////////////////////////
  1017. // Name: ippiMorphGrayInit_8u_C1R, ippiMorphGrayInit_32f_C1R
  1018. //
  1019. // Purpose: Initialize internal state of gray-scale morphological operation.
  1020. //
  1021. // Return:
  1022. // ippStsNoErr Ok
  1023. // ippStsNullPtrErr One of pointers is NULL
  1024. // ippStsSizeErr The width of image or width or height of structuring
  1025. // element is less or equal zero.
  1026. // ippStsAnchorErr Anchor point is outside the structuring element
  1027. //
  1028. // Arguments:
  1029. // roiSize Maximal image roiSize in pixels
  1030. // pMask Pointer to structuring element (mask)
  1031. // maskSize Size of structuring element
  1032. // anchor Anchor of the structuring element
  1033. // pState Pointer to morphological state (Init)
  1034. */
  1035. IPPAPI(IppStatus, ippiMorphGrayInit_8u_C1R,(IppiMorphGrayState_8u* pState, IppiSize roiSize, const Ipp32s* pMask,
  1036. IppiSize maskSize, IppiPoint anchor))
  1037. IPPAPI(IppStatus, ippiMorphGrayInit_32f_C1R,(IppiMorphGrayState_32f* pState, IppiSize roiSize, const Ipp32f* pMask,
  1038. IppiSize maskSize, IppiPoint anchor))
  1039. /* ///////////////////////////////////////////////////////////////////////////////////////
  1040. // Name: ippiMorphGrayInitAlloc_8u_C1R, ippiMorphGrayInitAlloc_32f_C1R
  1041. //
  1042. // Purpose: Allocate buffers and initialize internal state of gray-scale morphological operation.
  1043. //
  1044. // Return:
  1045. // ippStsNoErr Ok
  1046. // ippStsNullPtrErr One of pointers is NULL
  1047. // ippStsSizeErr The width of image or width or height of structuring
  1048. // element is less or equal zero.
  1049. // ippStsAnchorErr Anchor point is outside the structuring element
  1050. // ippStsMemAllocErr Memory allocation error
  1051. //
  1052. // Arguments:
  1053. // roiSize Maximal image roiSize in pixels
  1054. // pMask Pointer to structuring element (mask)
  1055. // maskSize Size of structuring element
  1056. // anchor Anchor of the structuring element
  1057. // ppState Double pointer to morphological state (InitAlloc)
  1058. */
  1059. IPPAPI(IppStatus, ippiMorphGrayInitAlloc_8u_C1R,(IppiMorphGrayState_8u** ppState, IppiSize roiSize, const Ipp32s* pMask,
  1060. IppiSize maskSize, IppiPoint anchor))
  1061. IPPAPI(IppStatus, ippiMorphGrayInitAlloc_32f_C1R,(IppiMorphGrayState_32f** ppState, IppiSize roiSize, const Ipp32f* pMask,
  1062. IppiSize maskSize, IppiPoint anchor))
  1063. /* ///////////////////////////////////////////////////////////////////////////////////////
  1064. // Name: ippiMorphGrayFree_8u_C1R, ippiMorphGrayFree_32f_C1R
  1065. //
  1066. // Purpose: Releases buffers, allocated by rippiMorphGrayInitAlloc
  1067. //
  1068. // Return:
  1069. // ippStsNoErr Ok
  1070. // ippStsNullPtrErr Null pointer to pointer to morphological state.
  1071. //
  1072. // Arguments:
  1073. // pState Double pointer to morphological state.
  1074. */
  1075. IPPAPI(IppStatus, ippiMorphGrayFree_8u_C1R,(IppiMorphGrayState_8u* pState))
  1076. IPPAPI(IppStatus, ippiMorphGrayFree_32f_C1R,(IppiMorphGrayState_32f* pState))
  1077. /*F///////////////////////////////////////////////////////////////////////////////////////////////
  1078. // Name: ippiGrayDilateBorder_8u_C1R, ippiGrayDilateBorder_32f_C1R,
  1079. // ippiGrayErodeBorder_8u_C1R, ippiGrayErodeBorder_32f_C1R
  1080. //
  1081. // Purpose: Perform erosion/dilation of image with gray-scale structuring element.
  1082. //
  1083. // Return:
  1084. // ippStsNoErr Ok
  1085. // ippStsNullPtrErr One of pointers is NULL
  1086. // ippStsSizeErr The ROI width or height is less than 1
  1087. // or ROI width is bigger than ROI width in state
  1088. // ippStsStepErr Step is too small to fit image.
  1089. // ippStsNotEvenStepErr Step is not multiple of element.
  1090. // ippStsBadArgErr Bad border type
  1091. //
  1092. // Arguments:
  1093. // pSrc The pointer to source image
  1094. // srcStep The step in source image
  1095. // pDst The pointer to destination image
  1096. // dstStep The step in destination image
  1097. // roiSize ROI size
  1098. // border Type of border (ippBorderRepl now)
  1099. // pState Pointer to morphological operation state
  1100. */
  1101. IPPAPI(IppStatus, ippiGrayErodeBorder_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  1102. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  1103. IppiBorderType border, IppiMorphGrayState_8u* pState))
  1104. IPPAPI(IppStatus, ippiGrayErodeBorder_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  1105. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1106. IppiBorderType border, IppiMorphGrayState_32f* pState))
  1107. IPPAPI(IppStatus, ippiGrayDilateBorder_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  1108. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  1109. IppiBorderType border, IppiMorphGrayState_8u* pState))
  1110. IPPAPI(IppStatus, ippiGrayDilateBorder_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  1111. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1112. IppiBorderType border, IppiMorphGrayState_32f* pState))
  1113. /*F/////////////////////////////////////////////////////////////////////////////////////
  1114. // Name: ippiMorphReconstructGetBufferSize_8u_C1, ippiMorphReconstructGetBufferSize_8u_C1
  1115. //
  1116. // Purpose: returns buffer size for morphological reconstruction
  1117. //
  1118. // Returns:
  1119. // ippStsNoErr Ok
  1120. // ippStsNullPtrErr One of pointers is NULL
  1121. // ippStsSizeErr The width or height of images is less or equal zero
  1122. // ippStsStepErr The steps in images are too small
  1123. // ippStsNotEvenStepErr Step is not multiple of element.
  1124. //
  1125. // Parameters:
  1126. // roiSize The maximal ROI size.
  1127. // pBufSize The pointer to the buffer size.
  1128. //
  1129. // Notes:
  1130. //F*/
  1131. IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_8u_C1,(IppiSize roiSize, int *pSize))
  1132. IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_32f_C1,(IppiSize roiSize, int *pSize))
  1133. /*F/////////////////////////////////////////////////////////////////////////////////////
  1134. // Name: ippiMorphReconstructDilate_8u_C1IR, ippiMorphReconstructErode_8u_C1IR,
  1135. // ippiMorphReconstructDilate_32f_C1IR, ippiMorphReconstructErode_32f_C1IR
  1136. //
  1137. // Purpose: performs morphological reconstruction of pSrcDst under/above pSrc
  1138. //
  1139. // Returns:
  1140. // ippStsNoErr Ok
  1141. // ippStsNullPtrErr One of pointers is NULL
  1142. // ippStsSizeErr The width or height of images is less or equal zero
  1143. // ippStsStepErr The steps in images are too small
  1144. // ippStsNotEvenStepErr Step is not multiple of element.
  1145. //
  1146. // Parameters:
  1147. // pSrc The pointer to source above/under image
  1148. // srcStep The step in source image
  1149. // pSrcDst The pointer to image to reconstruct
  1150. // srcDstStep The step in destination image
  1151. // roiSize The source and destination image ROI size.
  1152. // norm The norm type for dilation
  1153. // ippiNormInf = Linf norm (8-connectivity)
  1154. // ippiNormL1 = L1 norm (4-connectivity)
  1155. // pBuffer The pointer to working buffer
  1156. //
  1157. // Notes:
  1158. //F*/
  1159. IPPAPI(IppStatus, ippiMorphReconstructDilate_8u_C1IR, (const Ipp8u* pSrc, int srcStep,
  1160. Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp8u *pBuf, IppiNorm norm))
  1161. IPPAPI(IppStatus, ippiMorphReconstructErode_8u_C1IR, (const Ipp8u* pSrc, int srcStep,
  1162. Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp8u *pBuf, IppiNorm norm))
  1163. IPPAPI(IppStatus, ippiMorphReconstructDilate_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  1164. Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp32f *pBuf, IppiNorm norm))
  1165. IPPAPI(IppStatus, ippiMorphReconstructErode_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  1166. Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp32f *pBuf, IppiNorm norm))
  1167. /****************************************************************************************\
  1168. * Min/Max Filters *
  1169. \****************************************************************************************/
  1170. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  1171. // Name: ippiFilterMinGetBufferSize_8u_C1R, ippiFilterMaxGetBufferSize_8u_C1R,
  1172. // ippiFilterMinGetBufferSize_32f_C1R, ippiFilterMaxGetBufferSize_32f_C1R,
  1173. // ippiFilterMinGetBufferSize_8u_C3R, ippiFilterMaxGetBufferSize_8u_C3R,
  1174. // ippiFilterMinGetBufferSize_32f_C3R, ippiFilterMaxGetBufferSize_32f_C3R,
  1175. // ippiFilterMinGetBufferSize_8u_C4R, ippiFilterMaxGetBufferSize_8u_C4R,
  1176. // ippiFilterMinGetBufferSize_32f_C4R, ippiFilterMaxGetBufferSize_32f_C4R
  1177. //
  1178. // Purpose: Calculate buffer size for morphology operations with rectangular kernel
  1179. //
  1180. // Return:
  1181. // ippStsNoErr Ok
  1182. // ippStsNullPtrErr One of pointers is NULL
  1183. // ippStsSizeErr The width of the image is less or equal zero
  1184. // ippStsMaskSizeErr Wrong mask size
  1185. //
  1186. // Parameters:
  1187. // roiWidth The image ROI width
  1188. // maskSize The mask size
  1189. // pBufferSize The pointer to the buffer size
  1190. */
  1191. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_8u_C1R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1192. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_8u_C1R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1193. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_32f_C1R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1194. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_32f_C1R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1195. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_8u_C3R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1196. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_8u_C3R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1197. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_32f_C3R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1198. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_32f_C3R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1199. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_8u_C4R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1200. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_8u_C4R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1201. IPPAPI(IppStatus, ippiFilterMinGetBufferSize_32f_C4R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1202. IPPAPI(IppStatus, ippiFilterMaxGetBufferSize_32f_C4R, (int roiWidth, IppiSize maskSize, int *pBufferSize))
  1203. /*F///////////////////////////////////////////////////////////////////////////////////////
  1204. // Name: ippiFilterMaxBorderReplicate_8u_C1R, ippiFilterMinBorderReplicate_8u_C1R,
  1205. // ippiFilterMaxBorderReplicate_32f_C1R, ippiFilterMinBorderReplicate_32f_C1R
  1206. // ippiFilterMaxBorderReplicate_8u_C3R, ippiFilterMinBorderReplicate_8u_C3R,
  1207. // ippiFilterMaxBorderReplicate_32f_C3R, ippiFilterMinBorderReplicate_32f_C3R
  1208. // ippiFilterMaxBorderReplicate_8u_C4R, ippiFilterMinBorderReplicate_8u_C4R,
  1209. // ippiFilterMaxBorderReplicate_32f_C4R, ippiFilterMinBorderReplicate_32f_C4R
  1210. //
  1211. // Purpose: Perform morphology operations with rectangular kernel
  1212. //
  1213. // Return:
  1214. // ippStsNoErr Ok
  1215. // ippStsNullPtrErr One of pointers is NULL
  1216. // ippStsSizeErr The width or height of images is less or equal zero
  1217. // ippStsStepErr The steps in images are too small
  1218. // ippStsNotEvenStepErr Step is not multiple of element.
  1219. // ippStsMaskSizeErr Wrong mask size
  1220. // ippStsAnchorErr Anchor is outside the mask size.
  1221. //
  1222. // Parameters:
  1223. // pSrc The pointer to the source image
  1224. // srcStep The step in the source image
  1225. // pDst The pointer to the destination image
  1226. // dstStep The step in the destination image
  1227. // roiSize The image ROI size
  1228. // maskSize The mask size
  1229. // anchor The anchor position
  1230. // pBuffer The pointer to the working buffer
  1231. //F*/
  1232. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1233. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1234. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1235. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1236. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1237. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1238. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1239. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1240. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1241. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1242. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1243. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1244. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1245. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1246. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1247. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1248. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1249. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1250. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1251. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1252. IPPAPI(IppStatus, ippiFilterMinBorderReplicate_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1253. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1254. IPPAPI(IppStatus, ippiFilterMaxBorderReplicate_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1255. IppiSize roiSize, IppiSize maskSize, IppiPoint anchor, Ipp8u *pBuffer))
  1256. /****************************************************************************************\
  1257. * Separable Filters *
  1258. \****************************************************************************************/
  1259. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  1260. // Name: ippiFilterRowBorderPipelineGetBufferSize_8u16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_8u16s_C3R
  1261. // ippiFilterRowBorderPipelineGetBufferSize_16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_16s_C3R
  1262. // ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C3R
  1263. // ippiFilterRowBorderPipelineGetBufferSize_32f_C1R, ippiFilterRowBorderPipelineGetBufferSize_32f_C3R
  1264. //
  1265. // Purpose: Get size of external buffer.
  1266. //
  1267. // Return:
  1268. // ippStsNoErr Ok
  1269. // ippStsNullPtrErr One of pointers is NULL
  1270. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  1271. //
  1272. // Parameters:
  1273. // roiSize The image ROI size
  1274. // kernelSize The size of the kernel
  1275. // pBufferSize The pointer to the buffer size
  1276. */
  1277. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_8u16s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1278. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_8u16s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1279. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_16s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1280. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_16s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1281. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1282. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1283. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_32f_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1284. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_32f_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1285. /*F///////////////////////////////////////////////////////////////////////////////////////////
  1286. // Name: ippiFilterRowBorderPipeline_8u16s_C1R, ippiFilterRowBorderPipeline_8u16s_C3R
  1287. // ippiFilterRowBorderPipeline_16s_C1R, ippiFilterRowBorderPipeline_16s_C3R
  1288. // ippiFilterRowBorderPipeline_Low_16s_C1R, ippiFilterRowBorderPipeline_Low_16s_C3R
  1289. // ippiFilterRowBorderPipeline_32f_C1R, ippiFilterRowBorderPipeline_32f_C3R
  1290. //
  1291. // Purpose: Convolves source image rows with the row kernel
  1292. //
  1293. // Return:
  1294. // ippStsNoErr Ok
  1295. // ippStsNullPtrErr One of pointers is NULL
  1296. // ippStsSizeErr The width or height of images is less or equal zero
  1297. // ippStsStepErr The steps in images are too small
  1298. // ippStsNotEvenStepErr Step is not multiple of element.
  1299. // ippStsAnchorErr The anchor outside the kernel
  1300. // ippStsBadArgErr Wrong border type or zero divisor
  1301. //
  1302. // Parameters:
  1303. // pSrc The pointer to the source image
  1304. // srcStep The step in the source image
  1305. // ppDst The double pointer to the destination image
  1306. // roiSize The image ROI size
  1307. // pKernel The pointer to the kernel
  1308. // kernelSize The size of the kernel
  1309. // xAnchor The anchor value , (0<=xAnchor<kernelSize)
  1310. // borderType The type of the border
  1311. // borderValue The value for the constant border
  1312. // divisor The value to divide output pixels by , (for integer functions)
  1313. // pBuffer The pointer to the working buffer
  1314. // Notes: The output is the doulble pointer to support the circle buffer
  1315. //F*/
  1316. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_8u16s_C1R, (const Ipp8u* pSrc, int srcStep, Ipp16s** ppDst,
  1317. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1318. IppiBorderType borderType, Ipp8u borderValue, int divisor, Ipp8u* pBuffer))
  1319. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_8u16s_C3R, (const Ipp8u* pSrc, int srcStep, Ipp16s** ppDst,
  1320. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1321. IppiBorderType borderType, Ipp8u borderValue[3], int divisor, Ipp8u* pBuffer))
  1322. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst,
  1323. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1324. IppiBorderType borderType, Ipp16s borderValue, int divisor, Ipp8u* pBuffer))
  1325. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst,
  1326. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1327. IppiBorderType borderType, Ipp16s borderValue[3], int divisor, Ipp8u* pBuffer))
  1328. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_Low_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst,
  1329. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1330. IppiBorderType borderType, Ipp16s borderValue, int divisor, Ipp8u* pBuffer))
  1331. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_Low_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s** ppDst,
  1332. IppiSize roiSize, const Ipp16s* pKernel, int kernelSize, int xAnchor,
  1333. IppiBorderType borderType, Ipp16s borderValue[3], int divisor, Ipp8u* pBuffer))
  1334. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst,
  1335. IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor,
  1336. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1337. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst,
  1338. IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor,
  1339. IppiBorderType borderType, Ipp32f borderValue[3], Ipp8u* pBuffer))
  1340. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  1341. // Name: ippiFilterColumnPipelineGetBufferSize_16s_C1R, ippiFilterColumnPipelineGetBufferSize_16s_C3R
  1342. // ippiFilterColumnPipelineGetBufferSize_Low_16s_C1R, ippiFilterColumnPipelineGetBufferSize_Low_16s_C3R
  1343. // ippiFilterColumnPipelineGetBufferSize_16s8u_C1R, ippiFilterColumnPipelineGetBufferSize_16s8u_C3R
  1344. // ippiFilterColumnPipelineGetBufferSize_16s8s_C1R, ippiFilterColumnPipelineGetBufferSize_16s8s_C3R
  1345. // ippiFilterColumnPipelineGetBufferSize_32f_C1R, ippiFilterColumnPipelineGetBufferSize_32f_C3R
  1346. //
  1347. // Purpose: Get size of external buffer.
  1348. //
  1349. // Return:
  1350. // ippStsNoErr Ok
  1351. // ippStsNullPtrErr One of pointers is NULL
  1352. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  1353. //
  1354. // Parameters:
  1355. // roiSize The image ROI size
  1356. // kernelSize The size of the kernel
  1357. // pBufferSize The pointer to the buffer size
  1358. */
  1359. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1360. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1361. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_Low_16s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1362. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_Low_16s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1363. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s8u_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1364. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s8u_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1365. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s8s_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1366. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_16s8s_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1367. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_32f_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1368. IPPAPI(IppStatus, ippiFilterColumnPipelineGetBufferSize_32f_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  1369. /*F///////////////////////////////////////////////////////////////////////////////////////////
  1370. // Name: ippiFilterColumnPipeline_16s_C1R, ippiFilterColumnPipeline_16s_C3R
  1371. // ippiFilterColumnPipeline_Low_16s_C1R, ippiFilterColumnPipeline_Low_16s_C3R
  1372. // ippiFilterColumnPipeline_16s8u_C1R, ippiFilterColumnPipeline_16s8u_C3R
  1373. // ippiFilterColumnPipeline_16s8s_C1R, ippiFilterColumnPipeline_16s8s_C3R
  1374. // ippiFilterColumnPipeline_32f_C1R, ippiFilterColumnPipeline_32f_C3R
  1375. // Purpose: Convolves source image rows with the row kernel
  1376. //
  1377. // Return:
  1378. // ippStsNoErr Ok
  1379. // ippStsNullPtrErr One of pointers is NULL
  1380. // ippStsSizeErr The width or height of images is less or equal zero
  1381. // ippStsStepErr The steps in images are too small
  1382. // ippStsNotEvenStepErr Step is not multiple of element.
  1383. // ippStsBadArgErr Zero divisor
  1384. //
  1385. // Parameters:
  1386. // ppSrc The double pointer to the source image
  1387. // pDst The pointer to the destination image
  1388. // dstStep The step in the destination image
  1389. // roiSize The image ROI size
  1390. // pKernel The pointer to the kernel
  1391. // kernelSize The size of the kernel
  1392. // divisor The value to divide output pixels by , (for integer functions)
  1393. // pBuffer The pointer to the working buffer
  1394. // Notes: The input is the doulble pointer to support the circle buffer
  1395. //F*/
  1396. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s_C1R, (const Ipp16s** ppSrc, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1397. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1398. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s_C3R, (const Ipp16s** ppSrc, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1399. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1400. IPPAPI(IppStatus, ippiFilterColumnPipeline_Low_16s_C1R, (const Ipp16s** ppSrc, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1401. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1402. IPPAPI(IppStatus, ippiFilterColumnPipeline_Low_16s_C3R, (const Ipp16s** ppSrc, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1403. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1404. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s8u_C1R, (const Ipp16s** ppSrc, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  1405. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1406. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s8u_C3R, (const Ipp16s** ppSrc, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  1407. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1408. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s8s_C1R, (const Ipp16s** ppSrc, Ipp8s* pDst, int dstStep, IppiSize roiSize,
  1409. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1410. IPPAPI(IppStatus, ippiFilterColumnPipeline_16s8s_C3R, (const Ipp16s** ppSrc, Ipp8s* pDst, int dstStep, IppiSize roiSize,
  1411. const Ipp16s* pKernel, int kernelSize, int divisor, Ipp8u* pBuffer))
  1412. IPPAPI(IppStatus, ippiFilterColumnPipeline_32f_C1R, (const Ipp32f** ppSrc, Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1413. const Ipp32f* pKernel, int kernelSize, Ipp8u* pBuffer))
  1414. IPPAPI(IppStatus, ippiFilterColumnPipeline_32f_C3R, (const Ipp32f** ppSrc, Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1415. const Ipp32f* pKernel, int kernelSize, Ipp8u* pBuffer))
  1416. /****************************************************************************************\
  1417. * Fixed Filters *
  1418. \****************************************************************************************/
  1419. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  1420. // Name: ippiFilterScharrHorizGetBufferSize_8u16s_C1R, ippiFilterScharrHorizGetBufferSize_32f_C1R,
  1421. // ippiFilterScharrVertGetBufferSize_8u16s_C1R, ippiFilterScharrVertGetBufferSize_32f_C1R,
  1422. // ippiFilterSobelHorizGetBufferSize_8u16s_C1R, ippiFilterSobelHorizGetBufferSize_32f_C1R,
  1423. // ippiFilterSobelVertGetBufferSize_8u16s_C1R, ippiFilterSobelVertGetBufferSize_32f_C1R,
  1424. // ippiFilterSobelNegVertGetBufferSize_8u16s_C1R, ippiFilterSobelNegVertGetBufferSize_32f_C1R,
  1425. // ippiFilterSobelHorizSecondGetBufferSize_8u16s_C1R, ippiFilterSobelHorizSecondGetBufferSize_32f_C1R,
  1426. // ippiFilterSobelVertSecondGetBufferSize_8u16s_C1R, ippiFilterSobelVertSecondGetBufferSize_32f_C1R,
  1427. // ippiFilterSobelCrossGetBufferSize_8u16s_C1R, ippiFilterSobelCrossGetBufferSize_32f_C1R,
  1428. // ippiFilterLaplacianGetBufferSize_8u16s_C1R, ippiFilterLaplacianGetBufferSize_32f_C1R,
  1429. // ippiFilterLowpassGetBufferSize_8u_C1R, ippiFilterLowpassGetBufferSize_32f_C1R,
  1430. // ippiFilterScharrHorizGetBufferSize_8u8s_C1R,
  1431. // ippiFilterScharrVertGetBufferSize_8u8s_C1R,
  1432. // ippiFilterSobelHorizGetBufferSize_8u8s_C1R,
  1433. // ippiFilterSobelVertGetBufferSize_8u8s_C1R,
  1434. // ippiFilterSobelNegVertGetBufferSize_8u8s_C1R,
  1435. // ippiFilterSobelHorizSecondGetBufferSize_8u8s_C1R,
  1436. // ippiFilterSobelVertSecondGetBufferSize_8u8s_C1R,
  1437. // ippiFilterSobelCrossGetBufferSize_8u8s_C1R,
  1438. // ippiFilterLaplacianGetBufferSize_8u8s_C1R,
  1439. //
  1440. //
  1441. // Purpose: Perform convolution operation with fixed kernels 3x3 and 5x5
  1442. //
  1443. // Return:
  1444. // ippStsNoErr Ok
  1445. // ippStsNullPtrErr One of pointers is NULL
  1446. // ippStsSizeErr The width of the image is less or equal zero
  1447. // ippStsMaskSizeErr Wrong mask size
  1448. //
  1449. // Parameters:
  1450. // roiSize The image ROI size
  1451. // mask The mask size
  1452. // pBufferSize The pointer to the buffer size
  1453. */
  1454. IPPAPI(IppStatus, ippiFilterScharrHorizGetBufferSize_8u16s_C1R, (IppiSize roiSize, int* pBufferSize))
  1455. IPPAPI(IppStatus, ippiFilterScharrVertGetBufferSize_8u16s_C1R, (IppiSize roiSize, int* pBufferSize))
  1456. IPPAPI(IppStatus, ippiFilterSobelHorizGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1457. IPPAPI(IppStatus, ippiFilterSobelVertGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1458. IPPAPI(IppStatus, ippiFilterSobelNegVertGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1459. IPPAPI(IppStatus, ippiFilterSobelHorizSecondGetBufferSize_8u16s_C1R,(IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1460. IPPAPI(IppStatus, ippiFilterSobelVertSecondGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1461. IPPAPI(IppStatus, ippiFilterSobelCrossGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1462. IPPAPI(IppStatus, ippiFilterLaplacianGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1463. IPPAPI(IppStatus, ippiFilterScharrHorizGetBufferSize_8u8s_C1R, (IppiSize roiSize, int* pBufferSize))
  1464. IPPAPI(IppStatus, ippiFilterScharrVertGetBufferSize_8u8s_C1R, (IppiSize roiSize, int* pBufferSize))
  1465. IPPAPI(IppStatus, ippiFilterSobelHorizGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1466. IPPAPI(IppStatus, ippiFilterSobelVertGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1467. IPPAPI(IppStatus, ippiFilterSobelNegVertGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1468. IPPAPI(IppStatus, ippiFilterSobelHorizSecondGetBufferSize_8u8s_C1R,(IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1469. IPPAPI(IppStatus, ippiFilterSobelVertSecondGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1470. IPPAPI(IppStatus, ippiFilterSobelCrossGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1471. IPPAPI(IppStatus, ippiFilterLaplacianGetBufferSize_8u8s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1472. IPPAPI(IppStatus, ippiFilterLowpassGetBufferSize_8u_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1473. IPPAPI(IppStatus, ippiFilterScharrHorizGetBufferSize_32f_C1R, (IppiSize roiSize, int* pBufferSize))
  1474. IPPAPI(IppStatus, ippiFilterScharrVertGetBufferSize_32f_C1R, (IppiSize roiSize, int* pBufferSize))
  1475. IPPAPI(IppStatus, ippiFilterSobelHorizGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1476. IPPAPI(IppStatus, ippiFilterSobelVertGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1477. IPPAPI(IppStatus, ippiFilterSobelNegVertGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1478. IPPAPI(IppStatus, ippiFilterSobelHorizSecondGetBufferSize_32f_C1R,(IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1479. IPPAPI(IppStatus, ippiFilterSobelVertSecondGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1480. IPPAPI(IppStatus, ippiFilterSobelCrossGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1481. IPPAPI(IppStatus, ippiFilterLaplacianGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1482. IPPAPI(IppStatus, ippiFilterLowpassGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  1483. /*F///////////////////////////////////////////////////////////////////////////////////////
  1484. // Name: ippiFilterScharrHorizBorder_8u16s_C1R, ippiFilterScharrHorizBorder_32f_C1R
  1485. // ippiFilterScharrVertBorder_8u16s_C1R, ippiFilterScharrVertBorder_32f_C1R
  1486. // ippiFilterSobelHorizBorder_8u16s_C1R, ippiFilterSobelHorizBorder_32f_C1R
  1487. // ippiFilterSobelVertBorder_8u16s_C1R, ippiFilterSobelVertBorder_32f_C1R
  1488. // ippiFilterSobelNegVertBorder_8u16s_C1R, ippiFilterSobelNegVertBorder_32f_C1R
  1489. // ippiFilterSobelHorizSecondBorder_8u16s_C1R, ippiFilterSobelHorizSecondBorder_32f_C1R
  1490. // ippiFilterSobelVertSecondBorder_8u16s_C1R, ippiFilterSobelVertSecondBorder_32f_C1R
  1491. // ippiFilterSobelCrossBorder_8u16s_C1R, ippiFilterSobelCrossBorder_32f_C1R
  1492. // ippiFilterLaplacianBorder_8u16s_C1R, ippiFilterLaplacianBorder_32f_C1R
  1493. // ippiFilterLowpassBorder_8u_C1R, ippiFilterLowpassBorder_32f_C1R,
  1494. // ippiFilterScharrHorizBorder_8u8s_C1R,
  1495. // ippiFilterScharrVertBorder_8u8s_C1R,
  1496. // ippiFilterSobelHorizBorder_8u8s_C1R,
  1497. // ippiFilterSobelVertBorder_8u8s_C1R,
  1498. // ippiFilterSobelNegVertBorder_8u8s_C1R,
  1499. // ippiFilterSobelHorizSecondBorder_8u8s_C1R,
  1500. // ippiFilterSobelVertSecondBorder_8u8s_C1R,
  1501. // ippiFilterSobelCrossBorder_8u8s_C1R,
  1502. // ippiFilterLaplacianBorder_8u8s_C1R
  1503. //
  1504. // Purpose: Perform convolution operation with fixed kernels 3x3 and 5x5
  1505. //
  1506. // Return:
  1507. // ippStsNoErr Ok
  1508. // ippStsNullPtrErr One of pointers is NULL
  1509. // ippStsSizeErr The width or height of images is less or equal zero
  1510. // ippStsStepErr The steps in images are too small
  1511. // ippStsNotEvenStepErr Step is not multiple of element.
  1512. // ippStsMaskSizeErr Wrong mask size
  1513. // ippStsBadArgErr Wrong border type or zero divisor
  1514. //
  1515. // Parameters:
  1516. // pSrc The pointer to the source image
  1517. // srcStep The step in the source image
  1518. // pDst The pointer to the destination image
  1519. // dstStep The step in the destination image
  1520. // roiSize The image ROI size
  1521. // mask The mask size
  1522. // borderType The type of the border
  1523. // borderValue The value for the constant border
  1524. // pBuffer The pointer to the working buffer
  1525. // divisor The value to divide output pixels by , (for integer functions)
  1526. //F*/
  1527. IPPAPI(IppStatus, ippiFilterScharrHorizBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1528. Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1529. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1530. IPPAPI(IppStatus, ippiFilterScharrVertBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1531. Ipp16s* pDst, int dstStep, IppiSize roiSize,
  1532. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1533. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1534. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1535. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1536. IPPAPI(IppStatus, ippiFilterSobelVertBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1537. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1538. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1539. IPPAPI(IppStatus, ippiFilterSobelNegVertBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1540. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1541. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1542. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1543. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1544. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1545. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1546. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1547. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1548. IPPAPI(IppStatus, ippiFilterSobelCrossBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1549. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1550. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1551. IPPAPI(IppStatus, ippiFilterLaplacianBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1552. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1553. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1554. IPPAPI(IppStatus, ippiFilterLowpassBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  1555. Ipp8u* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1556. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1557. IPPAPI(IppStatus, ippiFilterScharrHorizBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1558. Ipp8s* pDst, int dstStep, IppiSize roiSize,
  1559. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1560. Ipp8u* pBuffer))
  1561. IPPAPI(IppStatus, ippiFilterScharrVertBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1562. Ipp8s* pDst, int dstStep, IppiSize roiSize,
  1563. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1564. Ipp8u* pBuffer))
  1565. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1566. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1567. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1568. Ipp8u* pBuffer))
  1569. IPPAPI(IppStatus, ippiFilterSobelVertBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1570. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1571. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1572. Ipp8u* pBuffer))
  1573. IPPAPI(IppStatus, ippiFilterSobelNegVertBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1574. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1575. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1576. Ipp8u* pBuffer))
  1577. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1578. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1579. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1580. Ipp8u* pBuffer))
  1581. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1582. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1583. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1584. Ipp8u* pBuffer))
  1585. IPPAPI(IppStatus, ippiFilterSobelCrossBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1586. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1587. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1588. Ipp8u* pBuffer))
  1589. IPPAPI(IppStatus, ippiFilterLaplacianBorder_8u8s_C1R, (const Ipp8u* pSrc, int srcStep,
  1590. Ipp8s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1591. IppiBorderType borderType, Ipp8u borderValue, int divisor,
  1592. Ipp8u* pBuffer))
  1593. IPPAPI(IppStatus, ippiFilterScharrHorizBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1594. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1595. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1596. IPPAPI(IppStatus, ippiFilterScharrVertBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1597. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  1598. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1599. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1600. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1601. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1602. IPPAPI(IppStatus, ippiFilterSobelVertBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1603. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1604. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1605. IPPAPI(IppStatus, ippiFilterSobelNegVertBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1606. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1607. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1608. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1609. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1610. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1611. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1612. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1613. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1614. IPPAPI(IppStatus, ippiFilterSobelCrossBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1615. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1616. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1617. IPPAPI(IppStatus, ippiFilterLowpassBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1618. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1619. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1620. IPPAPI(IppStatus, ippiFilterLaplacianBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1621. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  1622. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1623. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  1624. // Name: ippiGenSobelKernel_16s, ippiGenSobelKernel_32f
  1625. //
  1626. // Purpose: Generate kernel for Sobel differential operator
  1627. //
  1628. // Return:
  1629. // ippStsNoErr Ok
  1630. // ippStsNullPtrErr One of pointers is NULL
  1631. // ippStsSizeErr The size of kernel is less or equal zero
  1632. // ippStsBadArgErr derivative order is less than 0
  1633. //
  1634. // Parameters:
  1635. // pDst The pointer to the destination kernel
  1636. // kernelSize The kernel size, odd
  1637. // dx The order of derivative (0<=dx<kernelSize)
  1638. // sign Reverse signs in sign < 0
  1639. */
  1640. IPPAPI (IppStatus, ippiGenSobelKernel_16s, (Ipp16s* pDst, int kernelSize, int dx, int sign))
  1641. IPPAPI (IppStatus, ippiGenSobelKernel_32f, (Ipp32f *pDst, int kernelSize, int dx, int sign))
  1642. /****************************************************************************************\
  1643. * Image Integrals *
  1644. \****************************************************************************************/
  1645. /*F/////////////////////////////////////////////////////////////////////////////////////
  1646. // Name: ippiIntegral_8u32s_C1R, ippiIntegral_8u32f_C1R,
  1647. // ippiSqrIntegral_8u32s64f_C1R, ippiSqrIntegral_8u32f64f_C1R,
  1648. // ippiTiltedIntegral_8u32s_C1R, ippiTiltedIntegral_8u32f_C1R
  1649. // ippiTiltedSqrIntegral_8u32s64f_C1R, ippiTiltedSqrIntegral_8u32f64f_C1R,
  1650. // ippiSqrIntegral_8u32s_C1R, ippiTiltedSqrIntegral_8u32s_C1R
  1651. //
  1652. // Purpose: calculates pixel sum on subimage
  1653. //
  1654. // Returns:
  1655. // ippStsNoErr Ok
  1656. // ippStsNullPtrErr One of pointers is NULL
  1657. // ippStsSizeErr The width or height of images is less or equal zero
  1658. // ippStsStepErr The steps in images are too small
  1659. // ippStsNotEvenStepErr Step is not multiple of element.
  1660. //
  1661. // Parameters:
  1662. // pSrc The pointer to source image
  1663. // srcStep The step in source image
  1664. // pDst The pointer to destination integral image
  1665. // dstStep The step in destination image
  1666. // pSq The pointer to destination square integral image
  1667. // sqStep The step in destination image
  1668. // roiSize The source and destination image ROI size.
  1669. // val The value to add to pDst image pixels.
  1670. // valSqr The value to add to pSq image pixels.
  1671. //
  1672. // Notes:
  1673. //F*/
  1674. IPPAPI(IppStatus, ippiIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep,
  1675. Ipp32s* pDst, int dstStep, IppiSize roiSize, Ipp32s val))
  1676. IPPAPI(IppStatus, ippiTiltedIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep,
  1677. Ipp32s* pDst, int dstStep, IppiSize roiSize, Ipp32s val))
  1678. IPPAPI(IppStatus, ippiSqrIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep,
  1679. Ipp32s* pDst, int dstStep, Ipp32s* pSqr, int sqrStep, IppiSize roi,
  1680. Ipp32s val, Ipp32s valSqr))
  1681. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep,
  1682. Ipp32s* pDst, int dstStep, Ipp32s* pSqr, int sqrStep, IppiSize roi,
  1683. Ipp32s val, Ipp32s valSqr))
  1684. IPPAPI(IppStatus, ippiSqrIntegral_8u32s64f_C1R, (const Ipp8u* pSrc, int srcStep,
  1685. Ipp32s* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize,
  1686. Ipp32s val, Ipp64f valSqr))
  1687. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32s64f_C1R, (const Ipp8u* pSrc, int srcStep,
  1688. Ipp32s* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize,
  1689. Ipp32s val, Ipp64f valSqr))
  1690. IPPAPI(IppStatus, ippiIntegral_8u32f_C1R, (const Ipp8u* pSrc, int srcStep,
  1691. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f val))
  1692. IPPAPI(IppStatus, ippiTiltedIntegral_8u32f_C1R, (const Ipp8u* pSrc, int srcStep,
  1693. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f val))
  1694. IPPAPI(IppStatus, ippiSqrIntegral_8u32f64f_C1R, (const Ipp8u* pSrc, int srcStep,
  1695. Ipp32f* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize,
  1696. Ipp32f val, Ipp64f valSqr))
  1697. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32f64f_C1R, (const Ipp8u* pSrc, int srcStep,
  1698. Ipp32f* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize,
  1699. Ipp32f val, Ipp64f valSqr))
  1700. /****************************************************************************************\
  1701. * Image Mean and Variance *
  1702. \****************************************************************************************/
  1703. /*F///////////////////////////////////////////////////////////////////////////////////////
  1704. // Name: ippiMean_8u_C1MR, ippiMean_8s_C1MR, ippiMean_16u_C1MR, ippiMean_32f_C1MR,
  1705. // ippiMean_8u_C3CMR, ippiMean_8s_C3CMR, ippiMean_16u_C3CMR, ippiMean_32f_C3CMR
  1706. //
  1707. // Purpose: Find mean value for selected region
  1708. //
  1709. // Return:
  1710. // ippStsNoErr Ok
  1711. // ippStsNullPtrErr One of pointers is NULL
  1712. // ippStsSizeErr The width or height of images is less or equal zero
  1713. // ippStsStepErr The steps in images are too small
  1714. // ippStsNotEvenStepErr Step is not multiple of element.
  1715. // ippStsCOIErr COI index is illegal (coi<1 || coi>3)
  1716. //
  1717. // Parameters:
  1718. // pSrc Pointer to image
  1719. // srcStep Image step
  1720. // pMask Pointer to mask image
  1721. // maskStep Step in the mask image
  1722. // roiSize Size of image ROI
  1723. // coi Index of color channel (1..3) (if color image)
  1724. // pMean Returned mean value
  1725. //
  1726. // Notes:
  1727. //F*/
  1728. IPPAPI( IppStatus, ippiMean_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  1729. const Ipp8u* pMask, int maskStep,
  1730. IppiSize roiSize, Ipp64f* pMean ))
  1731. IPPAPI( IppStatus, ippiMean_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  1732. const Ipp8u* pMask, int maskStep,
  1733. IppiSize roiSize, int coi, Ipp64f* pMean ))
  1734. IPPAPI( IppStatus, ippiMean_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  1735. const Ipp8u* pMask, int maskStep,
  1736. IppiSize roiSize, Ipp64f* pMean ))
  1737. IPPAPI( IppStatus, ippiMean_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  1738. const Ipp8u* pMask, int maskStep,
  1739. IppiSize roiSize, int coi, Ipp64f* pMean ))
  1740. IPPAPI( IppStatus, ippiMean_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  1741. const Ipp8u* pMask, int maskStep,
  1742. IppiSize roiSize, Ipp64f* pMean ))
  1743. IPPAPI( IppStatus, ippiMean_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  1744. const Ipp8u* pMask, int maskStep,
  1745. IppiSize roiSize, int coi, Ipp64f* pMean ))
  1746. IPPAPI( IppStatus, ippiMean_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  1747. const Ipp8u* pMask, int maskStep,
  1748. IppiSize roiSize, Ipp64f* pMean ))
  1749. IPPAPI( IppStatus, ippiMean_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  1750. const Ipp8u* pMask, int maskStep,
  1751. IppiSize roiSize, int coi, Ipp64f* pMean ))
  1752. /*F///////////////////////////////////////////////////////////////////////////////////////
  1753. // Name: ippiMean_StdDev_8u_C1R, ippiMean_StdDev_8s_C1R,
  1754. // ippiMean_StdDev_16u_C1R, ippiMean_StdDev_32f_C1R,
  1755. // ippiMean_StdDev_8u_C3CR, ippiMean_StdDev_8s_C3CR,
  1756. // ippiMean_StdDev_16u_C3CR, ippiMean_StdDev_32f_C3CR
  1757. //
  1758. // Purpose: Find mean and standard deviation values for selected region
  1759. //
  1760. // Return:
  1761. // ippStsNoErr Ok
  1762. // ippStsNullPtrErr One of pointers is NULL
  1763. // ippStsSizeErr The width or height of images is less or equal zero
  1764. // ippStsStepErr The steps in images are too small
  1765. // ippStsNotEvenStepErr Step is not multiple of element.
  1766. // ippStsCOIErr COI index is illegal (coi<1 || coi>3)
  1767. //
  1768. // Parameters:
  1769. // pSrc Pointer to image
  1770. // srcStep Image step
  1771. // roiSize Size of image ROI
  1772. // coi Index of color channel (1..3) (if color image)
  1773. // pMean Returned mean value
  1774. // pStdDev Returned standard deviation
  1775. //
  1776. // Notes:
  1777. //F*/
  1778. IPPAPI( IppStatus, ippiMean_StdDev_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  1779. IppiSize roiSize,
  1780. Ipp64f* pMean, Ipp64f* pStdDev ))
  1781. IPPAPI( IppStatus, ippiMean_StdDev_8u_C3CR, ( const Ipp8u* pSrc, int srcStep,
  1782. IppiSize roiSize, int coi,
  1783. Ipp64f* pMean, Ipp64f* pStdDev ))
  1784. IPPAPI( IppStatus, ippiMean_StdDev_8s_C1R, ( const Ipp8s* pSrc, int srcStep,
  1785. IppiSize roiSize,
  1786. Ipp64f* pMean, Ipp64f* pStdDev ))
  1787. IPPAPI( IppStatus, ippiMean_StdDev_8s_C3CR, ( const Ipp8s* pSrc, int srcStep,
  1788. IppiSize roiSize, int coi,
  1789. Ipp64f* pMean, Ipp64f* pStdDev ))
  1790. IPPAPI( IppStatus, ippiMean_StdDev_16u_C1R, ( const Ipp16u* pSrc, int srcStep,
  1791. IppiSize roiSize,
  1792. Ipp64f* pMean, Ipp64f* pStdDev ))
  1793. IPPAPI( IppStatus, ippiMean_StdDev_16u_C3CR, ( const Ipp16u* pSrc, int srcStep,
  1794. IppiSize roiSize, int coi,
  1795. Ipp64f* pMean, Ipp64f* pStdDev ))
  1796. IPPAPI( IppStatus, ippiMean_StdDev_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  1797. IppiSize roiSize,
  1798. Ipp64f* pMean, Ipp64f* pStdDev ))
  1799. IPPAPI( IppStatus, ippiMean_StdDev_32f_C3CR, ( const Ipp32f* pSrc, int srcStep,
  1800. IppiSize roiSize, int coi,
  1801. Ipp64f* pMean, Ipp64f* pStdDev ))
  1802. /*F///////////////////////////////////////////////////////////////////////////////////////
  1803. // Name: ippiMean_StdDev_8u_C1MR, ippiMean_StdDev_8s_C1MR,
  1804. // ippiMean_StdDev_16u_C1MR, ippiMean_StdDev_32f_C1MR,
  1805. // ippiMean_StdDev_8u_C3CMR, ippiMean_StdDev_8s_C3CMR,
  1806. // ippiMean_StdDev_16u_C3CMR, ippiMean_StdDev_32f_C3CMR
  1807. //
  1808. // Purpose: Find mean and standard deviation values for selected region
  1809. //
  1810. // Return:
  1811. // ippStsNoErr Ok
  1812. // ippStsNullPtrErr One of pointers is NULL
  1813. // ippStsSizeErr The width or height of images is less or equal zero
  1814. // ippStsStepErr The steps in images are too small
  1815. // ippStsNotEvenStepErr Step is not multiple of element.
  1816. //
  1817. // Parameters:
  1818. // pSrc Pointer to image
  1819. // srcStep Image step
  1820. // pMask Pointer to mask image
  1821. // maskStep Step in the mask image
  1822. // roiSize Size of image ROI
  1823. // coi Index of color channel (1..3) (if color image)
  1824. // pMean Returned mean value
  1825. // pStdDev Returned standard deviation
  1826. //
  1827. // Notes:
  1828. //F*/
  1829. IPPAPI( IppStatus, ippiMean_StdDev_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  1830. const Ipp8u* pMask, int maskStep,
  1831. IppiSize roiSize,
  1832. Ipp64f* pMean, Ipp64f* pStdDev ))
  1833. IPPAPI( IppStatus, ippiMean_StdDev_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  1834. const Ipp8u* pMask, int maskStep,
  1835. IppiSize roiSize, int coi,
  1836. Ipp64f* pMean, Ipp64f* pStdDev ))
  1837. IPPAPI( IppStatus, ippiMean_StdDev_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  1838. const Ipp8u* pMask, int maskStep,
  1839. IppiSize roiSize,
  1840. Ipp64f* pMean, Ipp64f* pStdDev ))
  1841. IPPAPI( IppStatus, ippiMean_StdDev_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  1842. const Ipp8u* pMask, int maskStep,
  1843. IppiSize roiSize, int coi,
  1844. Ipp64f* pMean, Ipp64f* pStdDev ))
  1845. IPPAPI( IppStatus, ippiMean_StdDev_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  1846. const Ipp8u* pMask, int maskStep,
  1847. IppiSize roiSize,
  1848. Ipp64f* pMean, Ipp64f* pStdDev ))
  1849. IPPAPI( IppStatus, ippiMean_StdDev_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  1850. const Ipp8u* pMask, int maskStep,
  1851. IppiSize roiSize, int coi,
  1852. Ipp64f* pMean, Ipp64f* pStdDev ))
  1853. IPPAPI( IppStatus, ippiMean_StdDev_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  1854. const Ipp8u* pMask, int maskStep,
  1855. IppiSize roiSize,
  1856. Ipp64f* pMean, Ipp64f* pStdDev ))
  1857. IPPAPI( IppStatus, ippiMean_StdDev_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  1858. const Ipp8u* pMask, int maskStep,
  1859. IppiSize roiSize, int coi,
  1860. Ipp64f* pMean, Ipp64f* pStdDev ))
  1861. /****************************************************************************************\
  1862. * Variance on Window *
  1863. \****************************************************************************************/
  1864. /*F/////////////////////////////////////////////////////////////////////////////////////
  1865. // Name: ippiRectStdDev_32s32f_C1R, ippiRectStdDev_32f_C1R
  1866. // ippiTiltedRectStdDev_32s32f_C1R, ippiTiltedRectStdDev_32f_C1R
  1867. // ippiRectStdDev_32s_C1RSfs, ippiTiltedRectStdDev_32s_C1RSfs
  1868. //
  1869. // Purpose: Calculates standard deviation on rectangular window
  1870. //
  1871. // Returns:
  1872. // ippStsNoErr Ok
  1873. // ippStsNullPtrErr One of pointers is NULL
  1874. // ippStsSizeErr The width or height of images is less or equal zero
  1875. // ippStsStepErr The steps in images are too small
  1876. // ippStsNotEvenStepErr Step is not multiple of element.
  1877. //
  1878. // Parameters:
  1879. // pSrc The pointer to source image of integrals
  1880. // srcStep The step in source image
  1881. // pSqr The pointer to destination square integral image
  1882. // sqrStep The step in destination image
  1883. // pDst The pointer to destination image
  1884. // dstStep The step in destination image
  1885. // roiSize The destination image ROI size.
  1886. // rect The rectangular window for standard deviation calculation.
  1887. // scaleFactor Output scale factor
  1888. //
  1889. // Notes:
  1890. //F*/
  1891. IPPAPI(IppStatus, ippiRectStdDev_32s_C1RSfs, (const Ipp32s* pSrc, int srcStep,
  1892. const Ipp32s* pSqr, int sqrStep, Ipp32s* pDst, int dstStep, IppiSize roi,
  1893. IppiRect rect, int scaleFactor))
  1894. IPPAPI(IppStatus, ippiRectStdDev_32s32f_C1R, (const Ipp32s* pSrc, int srcStep,
  1895. const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep,
  1896. IppiSize roiSize, IppiRect rect))
  1897. IPPAPI(IppStatus, ippiTiltedRectStdDev_32s32f_C1R, (const Ipp32s* pSrc, int srcStep,
  1898. const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep,
  1899. IppiSize roiSize, IppiRect rect))
  1900. IPPAPI(IppStatus, ippiTiltedRectStdDev_32s_C1RSfs, (const Ipp32s* pSrc, int srcStep,
  1901. const Ipp32s* pSqr, int sqrStep, Ipp32s* pDst, int dstStep, IppiSize roi,
  1902. IppiRect rect, int scaleFactor))
  1903. IPPAPI(IppStatus, ippiRectStdDev_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1904. const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep,
  1905. IppiSize roiSize, IppiRect rect))
  1906. IPPAPI(IppStatus, ippiTiltedRectStdDev_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1907. const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep,
  1908. IppiSize roiSize, IppiRect rect))
  1909. /****************************************************************************************\
  1910. * Image Minimum and Maximum *
  1911. \****************************************************************************************/
  1912. /*F///////////////////////////////////////////////////////////////////////////////////////
  1913. // Name: ippiMinMaxIndx_8u_C1R, ippiMinMaxIndx_8s_C1R,
  1914. // ippiMinMaxIndx_16u_C1R, ippiMinMaxIndx_32f_C1R,
  1915. // ippiMinMaxIndx_8u_C3CR, ippiMinMaxIndx_8s_C3CR,
  1916. // ippiMinMaxIndx_16u_C3CR, ippiMinMaxIndx_32f_C3CR,
  1917. //
  1918. // Purpose: Finds minimum and maximum values in the image and their coordinates
  1919. //
  1920. // Return:
  1921. // ippStsNoErr Ok
  1922. // ippStsNullPtrErr One of pointers is NULL
  1923. // ippStsSizeErr The width or height of images is less or equal zero
  1924. // ippStsStepErr The steps in images are too small
  1925. // ippStsNotEvenStepErr Step is not multiple of element.
  1926. //
  1927. // Parameters:
  1928. // pSrc Pointer to image
  1929. // srcStep Image step
  1930. // roiSize Size of image ROI
  1931. // coi Index of color channel (1..3) (if color image)
  1932. // pMinVal Pointer to minimum value
  1933. // pMaxVal Pointer to maximum value
  1934. // pMinIndex Minimum's coordinates
  1935. // pMaxIndex Maximum's coordinates
  1936. //
  1937. // Notes:
  1938. // Any of output parameters is optional
  1939. //F*/
  1940. IPPAPI(IppStatus, ippiMinMaxIndx_8u_C1R,( const Ipp8u* pSrc, int srcStep, IppiSize roiSize,
  1941. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1942. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1943. IPPAPI(IppStatus, ippiMinMaxIndx_8u_C3CR,( const Ipp8u* pSrc, int srcStep,
  1944. IppiSize roiSize, int coi,
  1945. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1946. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1947. IPPAPI(IppStatus, ippiMinMaxIndx_8s_C1R,( const Ipp8s* pSrc, int step, IppiSize roiSize,
  1948. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1949. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1950. IPPAPI(IppStatus, ippiMinMaxIndx_8s_C3CR,( const Ipp8s* pSrc, int step, IppiSize roiSize,
  1951. int coi, Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1952. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1953. IPPAPI(IppStatus, ippiMinMaxIndx_16u_C1R,( const Ipp16u* pSrc, int srcStep, IppiSize roiSize,
  1954. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1955. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1956. IPPAPI(IppStatus, ippiMinMaxIndx_16u_C3CR,( const Ipp16u* pSrc, int srcStep,
  1957. IppiSize roiSize, int coi,
  1958. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1959. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1960. IPPAPI(IppStatus, ippiMinMaxIndx_32f_C1R,( const Ipp32f* pSrc, int step, IppiSize roiSize,
  1961. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1962. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  1963. IPPAPI(IppStatus, ippiMinMaxIndx_32f_C3CR,( const Ipp32f* pSrc, int step, IppiSize roiSize,
  1964. int coi, Ipp32f* pMinVal, Ipp32f* pMaxVal,
  1965. IppiPoint* pMinIndex, IppiPoint* pMaxIndex))
  1966. /*F///////////////////////////////////////////////////////////////////////////////////////
  1967. // Name: ippiMinMaxIndx_8u_C1MR, ippiMinMaxIndx_8s_C1MR,
  1968. // ippiMinMaxIndx_16u_C1MR, ippiMinMaxIndx_32f_C1MR,
  1969. // ippiMinMaxIndx_8u_C3CMR, ippiMinMaxIndx_8s_C3CMR,
  1970. // ippiMinMaxIndx_16u_C3CMR, ippiMinMaxIndx_32f_C3CMR,
  1971. //
  1972. // Purpose: Finds minimum and maximum values in the image and their coordinates
  1973. //
  1974. // Return:
  1975. // ippStsNoErr Ok
  1976. // ippStsNullPtrErr One of pointers is NULL
  1977. // ippStsSizeErr The width or height of images is less or equal zero
  1978. // ippStsStepErr The steps in images are too small
  1979. // ippStsNotEvenStepErr Step is not multiple of element.
  1980. //
  1981. // Parameters:
  1982. // pSrc Pointer to image
  1983. // srcStep Image step
  1984. // pMask Pointer to mask image
  1985. // maskStep Step in the mask image
  1986. // roiSize Size of image ROI
  1987. // coi Index of color channel (1..3) (if color image)
  1988. // pMinVal Pointer to minimum value
  1989. // pMaxVal Pointer to maximum value
  1990. // pMinIndex Minimum's coordinates
  1991. // pMaxIndex Maximum's coordinates
  1992. //
  1993. // Notes:
  1994. // Any of output parameters is optional
  1995. //F*/
  1996. IPPAPI(IppStatus, ippiMinMaxIndx_8u_C1MR,( const Ipp8u* pSrc, int srcStep,
  1997. const Ipp8u* pMask, int maskStep,
  1998. IppiSize roiSize,
  1999. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2000. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2001. IPPAPI( IppStatus, ippiMinMaxIndx_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  2002. const Ipp8u* pMask, int maskStep,
  2003. IppiSize roiSize, int coi,
  2004. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2005. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2006. IPPAPI( IppStatus, ippiMinMaxIndx_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  2007. const Ipp8u* pMask, int maskStep,
  2008. IppiSize roiSize,
  2009. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2010. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2011. IPPAPI( IppStatus, ippiMinMaxIndx_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  2012. const Ipp8u* pMask, int maskStep,
  2013. IppiSize roiSize, int coi,
  2014. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2015. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2016. IPPAPI(IppStatus, ippiMinMaxIndx_16u_C1MR,( const Ipp16u* pSrc, int srcStep,
  2017. const Ipp8u* pMask, int maskStep,
  2018. IppiSize roiSize,
  2019. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2020. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2021. IPPAPI( IppStatus, ippiMinMaxIndx_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  2022. const Ipp8u* pMask, int maskStep,
  2023. IppiSize roiSize, int coi,
  2024. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2025. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2026. IPPAPI( IppStatus, ippiMinMaxIndx_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  2027. const Ipp8u* pMask, int maskStep,
  2028. IppiSize roiSize,
  2029. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2030. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2031. IPPAPI( IppStatus, ippiMinMaxIndx_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  2032. const Ipp8u* pMask, int maskStep,
  2033. IppiSize roiSize, int coi,
  2034. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  2035. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  2036. /****************************************************************************************\
  2037. * Image Norms *
  2038. \****************************************************************************************/
  2039. /*F///////////////////////////////////////////////////////////////////////////////////////
  2040. // Names: ippiNorm_Inf_8u_C1MR, ippiNorm_Inf_8s_C1MR,
  2041. // ippiNorm_Inf_16u_C1MR, ippiNorm_Inf_32f_C1MR,
  2042. // ippiNorm_Inf_8u_C3CMR, ippiNorm_Inf_8s_C3CMR,
  2043. // ippiNorm_Inf_16u_C3CMR, ippiNorm_Inf_32f_C3CMR,
  2044. // ippiNormDiff_Inf_8u_C1MR, ippiNormDiff_Inf_8s_C1MR,
  2045. // ippiNormDiff_Inf_16u_C1MR, ippiNormDiff_Inf_32f_C1MR,
  2046. // ippiNormDiff_Inf_8u_C3CMR, ippiNormDiff_Inf_8s_C3CMR,
  2047. // ippiNormDiff_Inf_16u_C3CMR, ippiNormDiff_Inf_32f_C3CMR,
  2048. // ippiNormRel_Inf_8u_C1MR, ippiNormRel_Inf_8s_C1MR,
  2049. // ippiNormRel_Inf_16u_C1MR, ippiNormRel_Inf_32f_C1MR,
  2050. // ippiNormRel_Inf_8u_C3CMR, ippiNormRel_Inf_8s_C3CMR,
  2051. // ippiNormRel_Inf_16u_C3CMR, ippiNormRel_Inf_32f_C3CMR,
  2052. //
  2053. // ippiNorm_L1_8u_C1MR, ippiNorm_L1_8s_C1MR,
  2054. // ippiNorm_L1_16u_C1MR, ippiNorm_L1_32f_C1MR,
  2055. // ippiNorm_L1_8u_C3CMR, ippiNorm_L1_8s_C3CMR,
  2056. // ippiNorm_L1_16u_C3CMR, ippiNorm_L1_32f_C3CMR,
  2057. // ippiNormDiff_L1_8u_C1MR, ippiNormDiff_L1_8s_C1MR,
  2058. // ippiNormDiff_L1_16u_C1MR, ippiNormDiff_L1_32f_C1MR,
  2059. // ippiNormDiff_L1_8u_C3CMR, ippiNormDiff_L1_8s_C3CMR,
  2060. // ippiNormDiff_L1_16u_C3CMR, ippiNormDiff_L1_32f_C3CMR,
  2061. // ippiNormRel_L1_8u_C1MR, ippiNormRel_L1_8s_C1MR,
  2062. // ippiNormRel_L1_16u_C1MR, ippiNormRel_L1_32f_C1MR,
  2063. // ippiNormRel_L1_8u_C3CMR, ippiNormRel_L1_8s_C3CMR,
  2064. // ippiNormRel_L1_16u_C3CMR, ippiNormRel_L1_32f_C3CMR,
  2065. //
  2066. // ippiNorm_L2_8u_C1MR, ippiNorm_L2_8s_C1MR,
  2067. // ippiNorm_L2_16u_C1MR, ippiNorm_L2_32f_C1MR,
  2068. // ippiNorm_L2_8u_C3CMR, ippiNorm_L2_8s_C3CMR,
  2069. // ippiNorm_L2_16u_C3CMR, ippiNorm_L2_32f_C3CMR,
  2070. // ippiNormDiff_L2_8u_C1MR, ippiNormDiff_L2_8s_C1MR,
  2071. // ippiNormDiff_L2_16u_C1MR, ippiNormDiff_L2_32f_C1MR,
  2072. // ippiNormDiff_L2_8u_C3CMR, ippiNormDiff_L2_8s_C3CMR,
  2073. // ippiNormDiff_L2_16u_C3CMR, ippiNormDiff_L2_32f_C3CMR,
  2074. // ippiNormRel_L2_8u_C1MR, ippiNormRel_L2_8s_C1MR,
  2075. // ippiNormRel_L2_16u_C1MR, ippiNormRel_L2_32f_C1MR,
  2076. // ippiNormRel_L2_8u_C3CMR, ippiNormRel_L2_8s_C3CMR,
  2077. // ippiNormRel_L2_16u_C3CMR, ippiNormRel_L2_32f_C3CMR
  2078. //
  2079. // Purpose: Calculates ordinary, differential or relative norms of one or two images
  2080. // in an arbitrary image region.
  2081. //
  2082. // Returns:
  2083. // ippStsNoErr Ok
  2084. // ippStsNullPtrErr One of pointers is NULL
  2085. // ippStsSizeErr The width or height of images is less or equal zero
  2086. // ippStsStepErr The steps in images are too small
  2087. // ippStsNotEvenStepErr Step is not multiple of element.
  2088. //
  2089. // Parameters:
  2090. // pSrc, pSrc1 Pointers to source and mask images
  2091. // pSrc2, pMask
  2092. // srcStep, src1Step Their steps
  2093. // src2Step, maskStep
  2094. // roiSize Their size or ROI size
  2095. // coi COI index (1..3) (if 3-channel images)
  2096. // pNorm The pointer to calculated norm
  2097. //
  2098. // Notes:
  2099. //F*/
  2100. /* ///////////////////////////////// 8uC1 flavor ////////////////////////////////////// */
  2101. IPPAPI( IppStatus, ippiNorm_Inf_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  2102. const Ipp8u* pMask,int maskStep,
  2103. IppiSize roiSize, Ipp64f* pNorm ) )
  2104. IPPAPI( IppStatus, ippiNorm_Inf_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  2105. const Ipp8u* pMask,int maskStep,
  2106. IppiSize roiSize, Ipp64f* pNorm ) )
  2107. IPPAPI( IppStatus, ippiNorm_Inf_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  2108. const Ipp8u* pMask,int maskStep,
  2109. IppiSize roiSize, Ipp64f* pNorm ) )
  2110. IPPAPI( IppStatus, ippiNorm_Inf_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  2111. const Ipp8u* pMask, int maskStep,
  2112. IppiSize roiSize, Ipp64f* pNorm ) )
  2113. IPPAPI( IppStatus, ippiNorm_Inf_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  2114. const Ipp8u* pMask,int maskStep,
  2115. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2116. IPPAPI( IppStatus, ippiNorm_Inf_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  2117. const Ipp8u* pMask,int maskStep,
  2118. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2119. IPPAPI( IppStatus, ippiNorm_Inf_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  2120. const Ipp8u* pMask,int maskStep,
  2121. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2122. IPPAPI( IppStatus, ippiNorm_Inf_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  2123. const Ipp8u* pMask, int maskStep,
  2124. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2125. IPPAPI( IppStatus, ippiNormDiff_Inf_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2126. const Ipp8u* pSrc2, int src2Step,
  2127. const Ipp8u* pMask, int maskStep,
  2128. IppiSize roiSize, Ipp64f* pNorm ) )
  2129. IPPAPI( IppStatus, ippiNormDiff_Inf_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2130. const Ipp8s* pSrc2, int src2Step,
  2131. const Ipp8u* pMask, int maskStep,
  2132. IppiSize roiSize, Ipp64f* pNorm ) )
  2133. IPPAPI( IppStatus, ippiNormDiff_Inf_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2134. const Ipp16u* pSrc2, int src2Step,
  2135. const Ipp8u* pMask, int maskStep,
  2136. IppiSize roiSize, Ipp64f* pNorm ) )
  2137. IPPAPI( IppStatus, ippiNormDiff_Inf_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2138. const Ipp32f* pSrc2, int src2Step,
  2139. const Ipp8u* pMask, int maskStep,
  2140. IppiSize roiSize, Ipp64f* pNorm ) )
  2141. IPPAPI( IppStatus, ippiNormDiff_Inf_8u_C3CMR, (const Ipp8u* pSrc1, int src1Step,
  2142. const Ipp8u* pSrc2, int src2Step,
  2143. const Ipp8u* pMask, int maskStep,
  2144. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2145. IPPAPI( IppStatus, ippiNormDiff_Inf_8s_C3CMR, (const Ipp8s* pSrc1, int src1Step,
  2146. const Ipp8s* pSrc2, int src2Step,
  2147. const Ipp8u* pMask, int maskStep,
  2148. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2149. IPPAPI( IppStatus, ippiNormDiff_Inf_16u_C3CMR, (const Ipp16u* pSrc1, int src1Step,
  2150. const Ipp16u* pSrc2, int src2Step,
  2151. const Ipp8u* pMask, int maskStep,
  2152. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2153. IPPAPI( IppStatus, ippiNormDiff_Inf_32f_C3CMR, (const Ipp32f* pSrc1, int src1Step,
  2154. const Ipp32f* pSrc2, int src2Step,
  2155. const Ipp8u* pMask, int maskStep,
  2156. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2157. IPPAPI( IppStatus, ippiNormRel_Inf_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2158. const Ipp8u* pSrc2, int src2Step,
  2159. const Ipp8u* pMask, int maskStep,
  2160. IppiSize roiSize, Ipp64f* pNorm ) )
  2161. IPPAPI( IppStatus, ippiNormRel_Inf_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2162. const Ipp8s* pSrc2, int src2Step,
  2163. const Ipp8u* pMask, int maskStep,
  2164. IppiSize roiSize, Ipp64f* pNorm ) )
  2165. IPPAPI( IppStatus, ippiNormRel_Inf_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2166. const Ipp16u* pSrc2, int src2Step,
  2167. const Ipp8u* pMask, int maskStep,
  2168. IppiSize roiSize, Ipp64f* pNorm ) )
  2169. IPPAPI( IppStatus, ippiNormRel_Inf_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2170. const Ipp32f* pSrc2, int src2Step,
  2171. const Ipp8u* pMask, int maskStep,
  2172. IppiSize roiSize, Ipp64f* pNorm ) )
  2173. IPPAPI( IppStatus, ippiNormRel_Inf_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  2174. const Ipp8u* pSrc2, int src2Step,
  2175. const Ipp8u* pMask, int maskStep,
  2176. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2177. IPPAPI( IppStatus, ippiNormRel_Inf_8s_C3CMR, ( const Ipp8s* pSrc1, int src1Step,
  2178. const Ipp8s* pSrc2, int src2Step,
  2179. const Ipp8u* pMask, int maskStep,
  2180. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2181. IPPAPI( IppStatus, ippiNormRel_Inf_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  2182. const Ipp16u* pSrc2, int src2Step,
  2183. const Ipp8u* pMask, int maskStep,
  2184. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2185. IPPAPI( IppStatus, ippiNormRel_Inf_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  2186. const Ipp32f* pSrc2, int src2Step,
  2187. const Ipp8u* pMask, int maskStep,
  2188. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2189. IPPAPI( IppStatus, ippiNorm_L1_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  2190. const Ipp8u* pMask,int maskStep,
  2191. IppiSize roiSize, Ipp64f* pNorm ) )
  2192. IPPAPI( IppStatus, ippiNorm_L1_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  2193. const Ipp8u* pMask,int maskStep,
  2194. IppiSize roiSize, Ipp64f* pNorm ) )
  2195. IPPAPI( IppStatus, ippiNorm_L1_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  2196. const Ipp8u* pMask,int maskStep,
  2197. IppiSize roiSize, Ipp64f* pNorm ) )
  2198. IPPAPI( IppStatus, ippiNorm_L1_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  2199. const Ipp8u* pMask, int maskStep,
  2200. IppiSize roiSize, Ipp64f* pNorm ) )
  2201. IPPAPI( IppStatus, ippiNorm_L1_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  2202. const Ipp8u* pMask,int maskStep,
  2203. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2204. IPPAPI( IppStatus, ippiNorm_L1_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  2205. const Ipp8u* pMask,int maskStep,
  2206. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2207. IPPAPI( IppStatus, ippiNorm_L1_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  2208. const Ipp8u* pMask,int maskStep,
  2209. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2210. IPPAPI( IppStatus, ippiNorm_L1_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  2211. const Ipp8u* pMask, int maskStep,
  2212. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2213. IPPAPI( IppStatus, ippiNormDiff_L1_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2214. const Ipp8u* pSrc2, int src2Step,
  2215. const Ipp8u* pMask, int maskStep,
  2216. IppiSize roiSize, Ipp64f* pNorm ) )
  2217. IPPAPI( IppStatus, ippiNormDiff_L1_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2218. const Ipp8s* pSrc2, int src2Step,
  2219. const Ipp8u* pMask, int maskStep,
  2220. IppiSize roiSize, Ipp64f* pNorm ) )
  2221. IPPAPI( IppStatus, ippiNormDiff_L1_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2222. const Ipp16u* pSrc2, int src2Step,
  2223. const Ipp8u* pMask, int maskStep,
  2224. IppiSize roiSize, Ipp64f* pNorm ) )
  2225. IPPAPI( IppStatus, ippiNormDiff_L1_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2226. const Ipp32f* pSrc2, int src2Step,
  2227. const Ipp8u* pMask, int maskStep,
  2228. IppiSize roiSize, Ipp64f* pNorm ) )
  2229. IPPAPI( IppStatus, ippiNormDiff_L1_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  2230. const Ipp8u* pSrc2, int src2Step,
  2231. const Ipp8u* pMask, int maskStep,
  2232. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2233. IPPAPI( IppStatus, ippiNormDiff_L1_8s_C3CMR, ( const Ipp8s* pSrc1, int src1Step,
  2234. const Ipp8s* pSrc2, int src2Step,
  2235. const Ipp8u* pMask, int maskStep,
  2236. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2237. IPPAPI( IppStatus, ippiNormDiff_L1_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  2238. const Ipp16u* pSrc2, int src2Step,
  2239. const Ipp8u* pMask, int maskStep,
  2240. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2241. IPPAPI( IppStatus, ippiNormDiff_L1_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  2242. const Ipp32f* pSrc2, int src2Step,
  2243. const Ipp8u* pMask, int maskStep,
  2244. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2245. IPPAPI( IppStatus, ippiNormRel_L1_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2246. const Ipp8u* pSrc2, int src2Step,
  2247. const Ipp8u* pMask, int maskStep,
  2248. IppiSize roiSize, Ipp64f* pNorm ) )
  2249. IPPAPI( IppStatus, ippiNormRel_L1_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2250. const Ipp8s* pSrc2, int src2Step,
  2251. const Ipp8u* pMask, int maskStep,
  2252. IppiSize roiSize, Ipp64f* pNorm ) )
  2253. IPPAPI( IppStatus, ippiNormRel_L1_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2254. const Ipp16u* pSrc2, int src2Step,
  2255. const Ipp8u* pMask, int maskStep,
  2256. IppiSize roiSize, Ipp64f* pNorm ) )
  2257. IPPAPI( IppStatus, ippiNormRel_L1_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2258. const Ipp32f* pSrc2, int src2Step,
  2259. const Ipp8u* pMask, int maskStep,
  2260. IppiSize roiSize, Ipp64f* pNorm ) )
  2261. IPPAPI( IppStatus, ippiNormRel_L1_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  2262. const Ipp8u* pSrc2, int src2Step,
  2263. const Ipp8u* pMask, int maskStep,
  2264. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2265. IPPAPI( IppStatus, ippiNormRel_L1_8s_C3CMR, ( const Ipp8s* pSrc1, int src1Step,
  2266. const Ipp8s* pSrc2, int src2Step,
  2267. const Ipp8u* pMask, int maskStep,
  2268. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2269. IPPAPI( IppStatus, ippiNormRel_L1_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  2270. const Ipp16u* pSrc2, int src2Step,
  2271. const Ipp8u* pMask, int maskStep,
  2272. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2273. IPPAPI( IppStatus, ippiNormRel_L1_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  2274. const Ipp32f* pSrc2, int src2Step,
  2275. const Ipp8u* pMask, int maskStep,
  2276. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2277. IPPAPI( IppStatus, ippiNorm_L2_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  2278. const Ipp8u* pMask,int maskStep,
  2279. IppiSize roiSize, Ipp64f* pNorm ) )
  2280. IPPAPI( IppStatus, ippiNorm_L2_8s_C1MR, ( const Ipp8s* pSrc, int srcStep,
  2281. const Ipp8u* pMask,int maskStep,
  2282. IppiSize roiSize, Ipp64f* pNorm ) )
  2283. IPPAPI( IppStatus, ippiNorm_L2_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  2284. const Ipp8u* pMask,int maskStep,
  2285. IppiSize roiSize, Ipp64f* pNorm ) )
  2286. IPPAPI( IppStatus, ippiNorm_L2_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  2287. const Ipp8u* pMask, int maskStep,
  2288. IppiSize roiSize, Ipp64f* pNorm ) )
  2289. IPPAPI( IppStatus, ippiNorm_L2_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  2290. const Ipp8u* pMask,int maskStep,
  2291. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2292. IPPAPI( IppStatus, ippiNorm_L2_8s_C3CMR, ( const Ipp8s* pSrc, int srcStep,
  2293. const Ipp8u* pMask,int maskStep,
  2294. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2295. IPPAPI( IppStatus, ippiNorm_L2_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  2296. const Ipp8u* pMask,int maskStep,
  2297. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2298. IPPAPI( IppStatus, ippiNorm_L2_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  2299. const Ipp8u* pMask, int maskStep,
  2300. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  2301. IPPAPI( IppStatus, ippiNormDiff_L2_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2302. const Ipp8u* pSrc2, int src2Step,
  2303. const Ipp8u* pMask, int maskStep,
  2304. IppiSize roiSize, Ipp64f* pNorm ) )
  2305. IPPAPI( IppStatus, ippiNormDiff_L2_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2306. const Ipp8s* pSrc2, int src2Step,
  2307. const Ipp8u* pMask, int maskStep,
  2308. IppiSize roiSize, Ipp64f* pNorm ) )
  2309. IPPAPI( IppStatus, ippiNormDiff_L2_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2310. const Ipp16u* pSrc2, int src2Step,
  2311. const Ipp8u* pMask, int maskStep,
  2312. IppiSize roiSize, Ipp64f* pNorm ) )
  2313. IPPAPI( IppStatus, ippiNormDiff_L2_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2314. const Ipp32f* pSrc2, int src2Step,
  2315. const Ipp8u* pMask, int maskStep,
  2316. IppiSize roiSize, Ipp64f* pNorm ) )
  2317. IPPAPI( IppStatus, ippiNormDiff_L2_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  2318. const Ipp8u* pSrc2, int src2Step,
  2319. const Ipp8u* pMask, int maskStep,
  2320. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2321. IPPAPI( IppStatus, ippiNormDiff_L2_8s_C3CMR, ( const Ipp8s* pSrc1, int src1Step,
  2322. const Ipp8s* pSrc2, int src2Step,
  2323. const Ipp8u* pMask, int maskStep,
  2324. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2325. IPPAPI( IppStatus, ippiNormDiff_L2_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  2326. const Ipp16u* pSrc2, int src2Step,
  2327. const Ipp8u* pMask, int maskStep,
  2328. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2329. IPPAPI( IppStatus, ippiNormDiff_L2_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  2330. const Ipp32f* pSrc2, int src2Step,
  2331. const Ipp8u* pMask, int maskStep,
  2332. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2333. IPPAPI( IppStatus, ippiNormRel_L2_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  2334. const Ipp8u* pSrc2, int src2Step,
  2335. const Ipp8u* pMask, int maskStep,
  2336. IppiSize roiSize, Ipp64f* pNorm ) )
  2337. IPPAPI( IppStatus, ippiNormRel_L2_8s_C1MR, ( const Ipp8s* pSrc1, int src1Step,
  2338. const Ipp8s* pSrc2, int src2Step,
  2339. const Ipp8u* pMask, int maskStep,
  2340. IppiSize roiSize, Ipp64f* pNorm ) )
  2341. IPPAPI( IppStatus, ippiNormRel_L2_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  2342. const Ipp16u* pSrc2, int src2Step,
  2343. const Ipp8u* pMask, int maskStep,
  2344. IppiSize roiSize, Ipp64f* pNorm ) )
  2345. IPPAPI( IppStatus, ippiNormRel_L2_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  2346. const Ipp32f* pSrc2, int src2Step,
  2347. const Ipp8u* pMask, int maskStep,
  2348. IppiSize roiSize, Ipp64f* pNorm ) )
  2349. IPPAPI( IppStatus, ippiNormRel_L2_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  2350. const Ipp8u* pSrc2, int src2Step,
  2351. const Ipp8u* pMask, int maskStep,
  2352. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2353. IPPAPI( IppStatus, ippiNormRel_L2_8s_C3CMR, ( const Ipp8s* pSrc1, int src1Step,
  2354. const Ipp8s* pSrc2, int src2Step,
  2355. const Ipp8u* pMask, int maskStep,
  2356. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2357. IPPAPI( IppStatus, ippiNormRel_L2_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  2358. const Ipp16u* pSrc2, int src2Step,
  2359. const Ipp8u* pMask, int maskStep,
  2360. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2361. IPPAPI( IppStatus, ippiNormRel_L2_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  2362. const Ipp32f* pSrc2, int src2Step,
  2363. const Ipp8u* pMask, int maskStep,
  2364. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  2365. /****************************************************************************************\
  2366. * Edge/Corner detection *
  2367. \****************************************************************************************/
  2368. /*F///////////////////////////////////////////////////////////////////////////////////////
  2369. // Name: ippiCannyGetSize
  2370. //
  2371. // Purpose: Calculates size of temporary buffer, required to run Canny function.
  2372. //
  2373. // Return:
  2374. // ippStsNoErr Ok
  2375. // ippStsNullPtrErr Pointer bufferSize is NULL
  2376. // ippStsSizeErr roiSize has a field with zero or negative value
  2377. //
  2378. // Parameters:
  2379. // roiSize Size of image ROI in pixel
  2380. // bufferSize Pointer to the variable that returns the size of the temporary buffer
  2381. //F*/
  2382. IPPAPI( IppStatus, ippiCannyGetSize, ( IppiSize roiSize, int* bufferSize ))
  2383. /*F///////////////////////////////////////////////////////////////////////////////////////
  2384. // Name: ippiCanny_16s8u_C1IR, ippiCanny_32f8u_C1IR
  2385. //
  2386. // Purpose: Creates binary image of source's image edges,
  2387. // using derivatives of the first order.
  2388. //
  2389. // Return:
  2390. // ippStsNoErr Ok
  2391. // ippStsNullPtrErr One of pointers is NULL
  2392. // ippStsSizeErr The width or height of images is less or equal zero
  2393. // ippStsStepErr The steps in images are too small
  2394. // ippStsNotEvenStepErr Step is not multiple of element.
  2395. // ippStsBadArgErr Bad thresholds
  2396. //
  2397. // Parameters:
  2398. // pSrcDx Pointers to the source image ( first derivatives with respect to X )
  2399. // srcDxStep Step in bytes through the source image pSrcDx
  2400. // pSrcDy Pointers to the source image ( first derivatives with respect to Y )
  2401. // srcDyStep Step in bytes through the source image pSrcDy
  2402. //
  2403. // roiSize Size of the source images ROI in pixels
  2404. // lowThresh Low threshold for edges detection
  2405. // highThresh Upper threshold for edges detection
  2406. // pBuffer Pointer to the pre-allocated temporary buffer, which size can be
  2407. // calculated using ippiCannyGetSize function
  2408. //F*/
  2409. IPPAPI(IppStatus, ippiCanny_16s8u_C1R, ( Ipp16s* pSrcDx, int srcDxStep,
  2410. Ipp16s* pSrcDy, int srcDyStep,
  2411. Ipp8u* pDstEdges, int dstEdgeStep,
  2412. IppiSize roiSize,
  2413. Ipp32f lowThresh,
  2414. Ipp32f highThresh,
  2415. Ipp8u* pBuffer ))
  2416. IPPAPI(IppStatus, ippiCanny_32f8u_C1R, ( Ipp32f* pSrcDx, int srcDxStep,
  2417. Ipp32f* pSrcDy, int srcDyStep,
  2418. Ipp8u* pDstEdges, int dstEdgeStep,
  2419. IppiSize roiSize,
  2420. Ipp32f lowThresh,
  2421. Ipp32f highThresh,
  2422. Ipp8u* pBuffer ))
  2423. /*F///////////////////////////////////////////////////////////////////////////////////////
  2424. // Name: ippiEigenValsVecsGetBufferSize_8u32f_C1R, ippiEigenValsVecsGetBufferSize_32f_C1R
  2425. //
  2426. // Purpose: Calculates size of temporary buffer, required to run one of EigenValsVecs***
  2427. // functions.
  2428. //
  2429. // Return:
  2430. // ippStsNoErr Ok
  2431. // ippStsNullPtrErr One of pointers is NULL
  2432. // ippStsSizeErr The width is less or equal zero or bad window size
  2433. //
  2434. // Parameters:
  2435. // roiSize roiSize size in pixels
  2436. // apertureSize Linear size of derivative filter aperture
  2437. // avgWindow Linear size of averaging window
  2438. // bufferSize Output parameter. Calculated buffer size.
  2439. //F*/
  2440. IPPAPI(IppStatus, ippiEigenValsVecsGetBufferSize_8u32f_C1R, ( IppiSize roiSize,int apertureSize,
  2441. int avgWindow, int* bufferSize ))
  2442. IPPAPI(IppStatus, ippiEigenValsVecsGetBufferSize_32f_C1R, ( IppiSize roiSize,int apertureSize,
  2443. int avgWindow, int* bufferSize ))
  2444. /*F///////////////////////////////////////////////////////////////////////////////////////
  2445. // Name: ippiEigenValsVecs_8u32f_C1R, ippiEigenValsVecs_32f_C1R
  2446. //
  2447. // Purpose: Calculate both eigen values and eigen vectors of 2x2 autocorrelation
  2448. // gradient matrix for every pixel. Can be used for sophisticated
  2449. // edge and corner detection
  2450. //
  2451. // Return:
  2452. // ippStsNoErr Ok
  2453. // ippStsNullPtrErr One of pointers is NULL
  2454. // ippStsSizeErr The width or height of images is less or equal zero
  2455. // or bad window size
  2456. // ippStsStepErr The steps in images are too small
  2457. // ippStsNotEvenStepErr Step is not multiple of element.
  2458. //
  2459. // Parameters:
  2460. // pSrc Source image
  2461. // srcStep Its step
  2462. // pEigenVV Image, which is 6 times wider that source image,
  2463. // filled with 6-tuples:
  2464. // (eig_val1, eig_val2, eig_vec1_x, eig_vec1_y,
  2465. // eig_vec2_x, eig_vec2_y)
  2466. // eigStep Output image step
  2467. // roiSize ROI size
  2468. // kernType Kernel type (Scharr 3x3 or Sobel 3x3, 5x5)
  2469. // apertureSize Linear size of derivative filter aperture
  2470. // avgWindow Linear size of averaging window
  2471. // pBuffer Preallocated temporary buffer, which size can be calculated
  2472. // using ippiEigenValsVecsGetSize function
  2473. //F*/
  2474. IPPAPI(IppStatus, ippiEigenValsVecs_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  2475. Ipp32f* pEigenVV, int eigStep,
  2476. IppiSize roiSize, IppiKernelType kernType,
  2477. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  2478. IPPAPI(IppStatus, ippiEigenValsVecs_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  2479. Ipp32f* pEigenVV, int eigStep,
  2480. IppiSize roiSize, IppiKernelType kernType,
  2481. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  2482. /*F///////////////////////////////////////////////////////////////////////////////////////
  2483. // Name: ippiMinEigenValGetBufferSize_8u32f_C1R, ippiMinEigenValGetBufferSize_32f_C1R
  2484. //
  2485. // Purpose: Calculates size of temporary buffer, required to run one of MinEigenVal***
  2486. // functions.
  2487. //
  2488. // Return:
  2489. // ippStsNoErr Ok
  2490. // ippStsNullPtrErr One of pointers is NULL
  2491. // ippStsSizeErr The width is less or equal zero or bad window size
  2492. //
  2493. // Parameters:
  2494. // roiSize roiSize size in pixels
  2495. // apertureSize Linear size of derivative filter aperture
  2496. // avgWindow Linear size of averaging window
  2497. // bufferSize Output parameter. Calculated buffer size.
  2498. //F*/
  2499. IPPAPI(IppStatus, ippiMinEigenValGetBufferSize_8u32f_C1R, ( IppiSize roiSize, int apertureSize,
  2500. int avgWindow, int* bufferSize ))
  2501. IPPAPI(IppStatus, ippiMinEigenValGetBufferSize_32f_C1R, ( IppiSize roiSize, int apertureSize,
  2502. int avgWindow, int* bufferSize ))
  2503. /*F///////////////////////////////////////////////////////////////////////////////////////
  2504. // Name: ippiMinEigenVal_8u32f_C1R, ippiMinEigenVal_32f_C1R
  2505. //
  2506. // Purpose: Calculate minimal eigen value of 2x2 autocorrelation gradient matrix
  2507. // for every pixel. Pixels with relatively large minimal eigen values
  2508. // are strong corners on the picture.
  2509. //
  2510. // Return:
  2511. // ippStsNoErr Ok
  2512. // ippStsNullPtrErr One of pointers is NULL
  2513. // ippStsSizeErr The width or height of images is less or equal zero
  2514. // or bad window size
  2515. // ippStsStepErr The steps in images are too small
  2516. // ippStsNotEvenStepErr Step is not multiple of element.
  2517. //
  2518. // Parameters:
  2519. // pSrc Source image
  2520. // srcStep Its step
  2521. // pMinEigenVal Image, filled with minimal eigen values for every pixel
  2522. // minValStep Its step
  2523. // roiSize ROI size
  2524. // kernType Kernel type (Scharr 3x3 or Sobel 3x3, 5x5)
  2525. // apertureSize Linear size of derivative filter aperture
  2526. // avgWindow Linear size of averaging window
  2527. // pBuffer Preallocated temporary buffer, which size can be calculated
  2528. // using ippiMinEigenValGetSize function
  2529. //F*/
  2530. IPPAPI(IppStatus, ippiMinEigenVal_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  2531. Ipp32f* pMinEigenVal, int minValStep,
  2532. IppiSize roiSize, IppiKernelType kernType,
  2533. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  2534. IPPAPI(IppStatus, ippiMinEigenVal_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  2535. Ipp32f* pMinEigenVal, int minValStep,
  2536. IppiSize roiSize, IppiKernelType kernType,
  2537. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  2538. /****************************************************************************************\
  2539. * Distance Transform *
  2540. \****************************************************************************************/
  2541. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  2542. // Name: ippiTrueDistanceTransformGetBufferSize_8u16u_C1RSfs,
  2543. // ippiTrueDistanceTransformGetBufferSize_8u32f_C1R
  2544. //
  2545. // Purpose: Get size of external buffer.
  2546. //
  2547. // Return:
  2548. // ippStsNoErr Ok
  2549. // ippStsNullPtrErr One of pointers is NULL
  2550. // ippStsSizeErr Indicates an error condition if roiSize has a field with zero
  2551. // or negative value.
  2552. //
  2553. // Parameters:
  2554. // roiSize The image ROI size
  2555. // pBufferSize The pointer to the buffer size
  2556. */
  2557. IPPAPI(IppStatus, ippiTrueDistanceTransformGetBufferSize_8u16u_C1RSfs, (IppiSize roiSize, int* pBufferSize))
  2558. IPPAPI(IppStatus, ippiTrueDistanceTransformGetBufferSize_8u32f_C1R, (IppiSize roiSize, int* pBufferSize))
  2559. /*F///////////////////////////////////////////////////////////////////////////////////////
  2560. // Name: ippiDistanceTransform_3x3_8u32f_C1R, ippiDistanceTransform_5x5_8u32f_C1R,
  2561. // ippiDistanceTransform_3x3_8u16u_C1R, ippiDistanceTransform_5x5_8u16u_C1R,
  2562. // ippiDistanceTransform_3x3_8u_C1R, ippiDistanceTransform_5x5_8u_C1R,
  2563. // ippiDistanceTransform_3x3_8u_C1IR, ippiDistanceTransform_5x5_8u_C1IR,
  2564. // ippiTrueDistanceTransform_8u16u_C1RSfs,
  2565. // ippiTrueDistanceTransform_8u32f_C1R
  2566. //
  2567. // Purpose: For every non-zero pixel in the source image, the functions calculate
  2568. // distance between that pixel and nearest zero pixel.
  2569. //
  2570. // Return:
  2571. // ippStsNoErr Ok
  2572. // ippStsNullPtrErr One of pointers is NULL
  2573. // ippStsSizeErr The width or height of images is less or equal zero
  2574. // ippStsStepErr The steps in images are too small
  2575. // ippStsNotEvenStepErr Step is not multiple of element.
  2576. // ippStsCoeffErr Zero mask coefficient
  2577. //
  2578. // Parameters:
  2579. // pSrc Source image
  2580. // pSrcDst Pointer to the input and output image
  2581. // srcStep Its step
  2582. // pDst Output image with distances
  2583. // dstStep Its step
  2584. // roiSize ROI size
  2585. // pMetrics Array that determines metrics used.
  2586. // scaleFactor Scale factor
  2587. // pBuffer The pointer to the working buffer
  2588. //
  2589. //F*/
  2590. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  2591. Ipp32f* pDst, int dstStep,
  2592. IppiSize roiSize, Ipp32f* pMetrics ))
  2593. IPPAPI(IppStatus, ippiDistanceTransform_5x5_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  2594. Ipp32f* pDst, int dstStep,
  2595. IppiSize roiSize, Ipp32f* pMetrics ))
  2596. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u16u_C1R, ( const Ipp8u* pSrc, int srcStep,
  2597. Ipp16u* pDst, int dstStep,
  2598. IppiSize roiSize, Ipp32s* pMetrics ))
  2599. IPPAPI(IppStatus, ippiDistanceTransform_5x5_8u16u_C1R, ( const Ipp8u* pSrc, int srcStep,
  2600. Ipp16u* pDst, int dstStep,
  2601. IppiSize roiSize, Ipp32s* pMetrics ))
  2602. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  2603. Ipp8u* pDst, int dstStep,
  2604. IppiSize roiSize, Ipp32s* pMetrics ))
  2605. IPPAPI(IppStatus, ippiDistanceTransform_5x5_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  2606. Ipp8u* pDst, int dstStep,
  2607. IppiSize roiSize, Ipp32s* pMetrics ))
  2608. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u_C1IR, ( Ipp8u* pSrcDst, int srcDstStep,
  2609. IppiSize roiSize, Ipp32s* pMetrics ))
  2610. IPPAPI(IppStatus, ippiDistanceTransform_5x5_8u_C1IR, ( Ipp8u* pSrcDst, int srcDstStep,
  2611. IppiSize roiSize, Ipp32s* pMetrics ))
  2612. IPPAPI(IppStatus, ippiTrueDistanceTransform_8u16u_C1RSfs, ( const Ipp8u* pSrc, int srcStep,
  2613. Ipp16u* pDst, int dstStep,
  2614. IppiSize roiSize, int scaleFactor,
  2615. Ipp8u* pBuffer ))
  2616. IPPAPI(IppStatus, ippiTrueDistanceTransform_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  2617. Ipp32f* pDst, int dstStep,
  2618. IppiSize roiSize, Ipp8u* pBuffer ))
  2619. /*F///////////////////////////////////////////////////////////////////////////////////////
  2620. // Name: ippiGetDistanceTransformMask_32f, ippiGetDistanceTransformMask_32s
  2621. // ippiGetDistanceTransformMask (deprecated name of ippiGetDistanceTransformMask_32f)
  2622. //
  2623. // Purpose: Calculates optimal mask for given type of metrics and given mask size
  2624. //
  2625. // Return:
  2626. // ippStsOk Succeed
  2627. // ippStsNullPtrErr One of pointers is NULL
  2628. // ippStsBadArgErr Bad kernel size or norm or maskType
  2629. //
  2630. // Parameters:
  2631. // kerSize Kernel size (3,5)
  2632. // norm Norm type (L1,L2,Inf)
  2633. // maskType Type of distance:
  2634. // 30 - 3x3 aperture for infinify norm,
  2635. // 31 - 3x3 aperture for L1 norm,
  2636. // 32 - 3x3 aperture for L2 norm,
  2637. // 50 - 5x5 aperture for infinify norm,
  2638. // 51 - 5x5 aperture for L1 norm,
  2639. // 52 - 5x5 aperture for L2 norm
  2640. // pMetrics Pointer to resultant metrics
  2641. //F*/
  2642. IPPAPI( IppStatus, ippiGetDistanceTransformMask_32f, ( int kerSize, IppiNorm norm, Ipp32f* pMetrics ))
  2643. IPPAPI( IppStatus, ippiGetDistanceTransformMask_32s, ( int kerSize, IppiNorm norm, Ipp32s* pMetrics ))
  2644. IPPAPI( IppStatus, ippiGetDistanceTransformMask, ( int maskType, Ipp32f* pMetrics ))
  2645. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  2646. // Name: ippiFastMarchingGetBufferSize_8u32f_C1R
  2647. //
  2648. // Purpose: Get size of external buffer.
  2649. //
  2650. // Return:
  2651. // ippStsNoErr Ok
  2652. // ippStsNullPtrErr One of pointers is NULL
  2653. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  2654. //
  2655. // Parameters:
  2656. // roiSize The image ROI size
  2657. // pBufferSize The pointer to the buffer size
  2658. */
  2659. IPPAPI(IppStatus, ippiFastMarchingGetBufferSize_8u32f_C1R, (IppiSize roiSize, int* pBufferSize))
  2660. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  2661. // Name: ippiFastMarching_8u32f_C1R
  2662. //
  2663. // Purpose: Calculate distance transform by fast marching method
  2664. //
  2665. // Return:
  2666. // ippStsNoErr Ok
  2667. // ippStsNullPtrErr One of pointers is NULL
  2668. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  2669. // ippStsStepErr The steps in images are too small
  2670. // ippStsNotEvenStepErr Step is not multiple of element.
  2671. //
  2672. // Parameters:
  2673. // pSrc Source image
  2674. // srcStep Its step
  2675. // pDst Output image with distances
  2676. // dstStep Its step
  2677. // roiSize The image ROI size
  2678. // radius The radius of external neighborhood
  2679. // pBuffer Pointer to working buffer
  2680. //
  2681. // Note: dst = min((src1+src1+sqrt(2-(src1-src2)**2))/2,min(src1,src2)+1)
  2682. // for four neighbour pairs
  2683. */
  2684. IPPAPI(IppStatus, ippiFastMarching_8u32f_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  2685. IppiSize roiSize, Ipp32f radius, Ipp8u* pBuffer))
  2686. /****************************************************************************************\
  2687. * Flood Fill *
  2688. \****************************************************************************************/
  2689. /*F///////////////////////////////////////////////////////////////////////////////////////
  2690. // Name: ippiFloodFillGetSize_4Con, ippiFloodFillGetSize_8Con
  2691. // ippiFloodFillGetSize_Grad4Con, ippiFloodFillGetSize_Grad8Con
  2692. //
  2693. // Purpose: The functions calculate size of temporary buffer, required to run
  2694. // one of the corresponding flood fill functions.
  2695. //
  2696. // Return:
  2697. // ippStsNoErr Ok
  2698. // ippStsNullPtrErr One of pointers is NULL
  2699. // ippStsSizeErr The width or height of images is less or equal zero
  2700. //
  2701. // Parameters:
  2702. // roiSize ROI size
  2703. // pBufSize Temporary buffer size
  2704. //F*/
  2705. IPPAPI( IppStatus, ippiFloodFillGetSize, ( IppiSize roiSize, int* pBufSize ))
  2706. IPPAPI( IppStatus, ippiFloodFillGetSize_Grad, ( IppiSize roiSize, int* pBufSize ))
  2707. /*F///////////////////////////////////////////////////////////////////////////////////////
  2708. // Names: ippiFloodFill_4Con_8u_C1IR, ippiFloodFill_4Con_32f_C1IR,
  2709. // ippiFloodFill_8Con_8u_C1IR, ippiFloodFill_8Con_32f_C1IR,
  2710. // ippiFloodFill_Grad4Con_8u_C1IR, ippiFloodFill_Grad4Con_32f_C1IR,
  2711. // ippiFloodFill_Grad8Con_8u_C1IR, ippiFloodFill_Grad8Con_32f_C1IR
  2712. // ippiFloodFill_Range4Con_8u_C1IR, ippiFloodFill_Range4Con_32f_C1IR,
  2713. // ippiFloodFill_Range8Con_8u_C1IR, ippiFloodFill_Range8Con_32f_C1IR
  2714. // ippiFloodFill_4Con_8u_C3IR, ippiFloodFill_4Con_32f_C3IR,
  2715. // ippiFloodFill_8Con_8u_C3IR, ippiFloodFill_8Con_32f_C3IR,
  2716. // ippiFloodFill_Grad4Con_8u_C3IR, ippiFloodFill_Grad4Con_32f_C3IR,
  2717. // ippiFloodFill_Grad8Con_8u_C3IR, ippiFloodFill_Grad8Con_32f_C3IR
  2718. // ippiFloodFill_Range4Con_8u_C3IR, ippiFloodFill_Range4Con_32f_C3IR,
  2719. // ippiFloodFill_Range8Con_8u_C3IR, ippiFloodFill_Range8Con_32f_C3IR
  2720. // ippiFloodFill_4Con_16u_C1IR,
  2721. // ippiFloodFill_8Con_16u_C1IR,
  2722. // ippiFloodFill_Grad4Con_16u_C1IR,
  2723. // ippiFloodFill_Grad8Con_16u_C1IR,
  2724. // ippiFloodFill_Range4Con_16u_C1IR,
  2725. // ippiFloodFill_Range8Con_16u_C1IR,
  2726. // ippiFloodFill_4Con_16u_C3IR,
  2727. // ippiFloodFill_8Con_16u_C3IR,
  2728. // ippiFloodFill_Grad4Con_16u_C3IR,
  2729. // ippiFloodFill_Grad8Con_16u_C3IR,
  2730. // ippiFloodFill_Range4Con_16u_C3IR,
  2731. // ippiFloodFill_Range8Con_16u_C3IR,
  2732. //
  2733. // Purpose: The functions fill the seed pixel enewValirons inside which all pixel
  2734. // values are equal to (first 4 funcs) or not far from each other (the others).
  2735. //
  2736. // Return:
  2737. // ippStsNoErr Ok.
  2738. // ippStsNullPtrErr One of pointers is NULL.
  2739. // ippStsSizeErr The width or height of images is less or equal zero.
  2740. // ippStsStepErr The steps in images are too small.
  2741. // ippStsNotEvenStepErr Step is not multiple of element.
  2742. // ippStsOutOfRangeErr Indicates an error condition if the seed point is out of ROI.
  2743. //
  2744. // Parameters:
  2745. // pImage Pointer to ROI of initial image (in the beginning)
  2746. // which is "repainted" during the function action,
  2747. // imageStep Full string length of initial image (in bytes),
  2748. // roi Size of image ROI,
  2749. // seed Coordinates of the seed point inside image ROI,
  2750. // newVal Value to fill with for one-channel data,
  2751. // pNewVal Pointer to the vector containing values to fill with
  2752. // for three-channel data,
  2753. // minDelta Minimum difference between neighbor pixels for one-channel data,
  2754. // maxDelta Maximum difference between neighbor pixels for one-channel data,
  2755. // pMinDelta Pointer to the minimum differences between neighbor pixels for
  2756. // three-channel images,
  2757. // pMaxDelta Pointer to the maximum differences between neighbor pixels for
  2758. // three-channel images,
  2759. // pRegion Pointer to repainted region properties structure,
  2760. // pBuffer Buffer needed for calculations (its size must be
  2761. // calculated by ippiFloodFillGetSize_Grad function).
  2762. //
  2763. // Notes: This function uses a rapid non-recursive algorithm.
  2764. //F*/
  2765. IPPAPI( IppStatus, ippiFloodFill_4Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2766. IppiSize roiSize, IppiPoint seed,
  2767. Ipp8u newVal, IppiConnectedComp* pRegion,
  2768. Ipp8u* pBuffer ))
  2769. IPPAPI( IppStatus, ippiFloodFill_8Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2770. IppiSize roiSize, IppiPoint seed,
  2771. Ipp8u newVal, IppiConnectedComp* pRegion,
  2772. Ipp8u* pBuffer ))
  2773. IPPAPI( IppStatus, ippiFloodFill_4Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2774. IppiSize roiSize, IppiPoint seed,
  2775. Ipp16u newVal, IppiConnectedComp* pRegion,
  2776. Ipp8u* pBuffer ))
  2777. IPPAPI( IppStatus, ippiFloodFill_8Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2778. IppiSize roiSize, IppiPoint seed,
  2779. Ipp16u newVal, IppiConnectedComp* pRegion,
  2780. Ipp8u* pBuffer ))
  2781. IPPAPI( IppStatus, ippiFloodFill_4Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2782. IppiSize roiSize, IppiPoint seed,
  2783. Ipp32f newVal, IppiConnectedComp* pRegion,
  2784. Ipp8u* pBuffer ))
  2785. IPPAPI( IppStatus, ippiFloodFill_8Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2786. IppiSize roiSize, IppiPoint seed,
  2787. Ipp32f newVal, IppiConnectedComp* pRegion,
  2788. Ipp8u* pBuffer ))
  2789. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2790. IppiSize roiSize, IppiPoint seed,
  2791. Ipp8u newVal, Ipp8u minDelta, Ipp8u maxDelta,
  2792. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2793. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2794. IppiSize roiSize, IppiPoint seed,
  2795. Ipp8u newVal, Ipp8u minDelta, Ipp8u maxDelta,
  2796. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2797. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2798. IppiSize roiSize, IppiPoint seed,
  2799. Ipp16u newVal, Ipp16u minDelta, Ipp16u maxDelta,
  2800. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2801. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2802. IppiSize roiSize, IppiPoint seed,
  2803. Ipp16u newVal, Ipp16u minDelta, Ipp16u maxDelta,
  2804. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2805. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2806. IppiSize roiSize, IppiPoint seed,
  2807. Ipp32f newVal, Ipp32f minDelta, Ipp32f maxDelta,
  2808. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2809. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2810. IppiSize roiSize, IppiPoint seed,
  2811. Ipp32f newVal, Ipp32f minDelta, Ipp32f maxDelta,
  2812. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2813. IPPAPI( IppStatus, ippiFloodFill_Range4Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2814. IppiSize roiSize, IppiPoint seed,
  2815. Ipp8u newVal, Ipp8u minDelta, Ipp8u maxDelta,
  2816. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2817. IPPAPI( IppStatus, ippiFloodFill_Range8Con_8u_C1IR, ( Ipp8u* pImage, int imageStep,
  2818. IppiSize roiSize, IppiPoint seed,
  2819. Ipp8u newVal, Ipp8u minDelta, Ipp8u maxDelta,
  2820. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2821. IPPAPI( IppStatus, ippiFloodFill_Range4Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2822. IppiSize roiSize, IppiPoint seed,
  2823. Ipp16u newVal, Ipp16u minDelta, Ipp16u maxDelta,
  2824. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2825. IPPAPI( IppStatus, ippiFloodFill_Range8Con_16u_C1IR, ( Ipp16u* pImage, int imageStep,
  2826. IppiSize roiSize, IppiPoint seed,
  2827. Ipp16u newVal, Ipp16u minDelta, Ipp16u maxDelta,
  2828. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2829. IPPAPI( IppStatus, ippiFloodFill_Range4Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2830. IppiSize roiSize, IppiPoint seed,
  2831. Ipp32f newVal, Ipp32f minDelta, Ipp32f maxDelta,
  2832. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2833. IPPAPI( IppStatus, ippiFloodFill_Range8Con_32f_C1IR, ( Ipp32f* pImage, int imageStep,
  2834. IppiSize roiSize, IppiPoint seed,
  2835. Ipp32f newVal, Ipp32f minDelta, Ipp32f maxDelta,
  2836. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2837. IPPAPI( IppStatus, ippiFloodFill_4Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2838. IppiSize roiSize, IppiPoint seed,
  2839. Ipp8u *pNewVal, IppiConnectedComp* pRegion,
  2840. Ipp8u* pBuffer ))
  2841. IPPAPI( IppStatus, ippiFloodFill_8Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2842. IppiSize roiSize, IppiPoint seed,
  2843. Ipp8u *pNewVal, IppiConnectedComp* pRegion,
  2844. Ipp8u* pBuffer ))
  2845. IPPAPI( IppStatus, ippiFloodFill_4Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2846. IppiSize roiSize, IppiPoint seed,
  2847. Ipp16u *pNewVal, IppiConnectedComp* pRegion,
  2848. Ipp8u* pBuffer ))
  2849. IPPAPI( IppStatus, ippiFloodFill_8Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2850. IppiSize roiSize, IppiPoint seed,
  2851. Ipp16u *pNewVal, IppiConnectedComp* pRegion,
  2852. Ipp8u* pBuffer ))
  2853. IPPAPI( IppStatus, ippiFloodFill_4Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2854. IppiSize roiSize, IppiPoint seed,
  2855. Ipp32f *pNewVal, IppiConnectedComp* pRegion,
  2856. Ipp8u* pBuffer ))
  2857. IPPAPI( IppStatus, ippiFloodFill_8Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2858. IppiSize roiSize, IppiPoint seed,
  2859. Ipp32f *pNewVal, IppiConnectedComp* pRegion,
  2860. Ipp8u* pBuffer ))
  2861. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2862. IppiSize roiSize, IppiPoint seed,
  2863. Ipp8u *pNewVal, Ipp8u *pMinDelta, Ipp8u *pMaxDelta,
  2864. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2865. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2866. IppiSize roiSize, IppiPoint seed,
  2867. Ipp8u *pNewVal, Ipp8u *pMinDelta, Ipp8u *pMaxDelta,
  2868. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2869. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2870. IppiSize roiSize, IppiPoint seed,
  2871. Ipp16u *pNewVal, Ipp16u *pMinDelta, Ipp16u *pMaxDelta,
  2872. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2873. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2874. IppiSize roiSize, IppiPoint seed,
  2875. Ipp16u *pNewVal, Ipp16u *pMinDelta, Ipp16u *pMaxDelta,
  2876. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2877. IPPAPI( IppStatus, ippiFloodFill_Grad4Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2878. IppiSize roiSize, IppiPoint seed,
  2879. Ipp32f *pNewVal, Ipp32f *pMinDelta, Ipp32f *pMaxDelta,
  2880. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2881. IPPAPI( IppStatus, ippiFloodFill_Grad8Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2882. IppiSize roiSize, IppiPoint seed,
  2883. Ipp32f *pNewVal, Ipp32f *pMinDelta, Ipp32f *pMaxDelta,
  2884. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2885. IPPAPI( IppStatus, ippiFloodFill_Range4Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2886. IppiSize roiSize, IppiPoint seed,
  2887. Ipp8u *pNewVal, Ipp8u *pMinDelta, Ipp8u *pMaxDelta,
  2888. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2889. IPPAPI( IppStatus, ippiFloodFill_Range8Con_8u_C3IR, ( Ipp8u* pImage, int imageStep,
  2890. IppiSize roiSize, IppiPoint seed,
  2891. Ipp8u *pNewVal, Ipp8u *pMinDelta, Ipp8u *pMaxDelta,
  2892. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2893. IPPAPI( IppStatus, ippiFloodFill_Range4Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2894. IppiSize roiSize, IppiPoint seed,
  2895. Ipp16u *pNewVal, Ipp16u *pMinDelta, Ipp16u *pMaxDelta,
  2896. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2897. IPPAPI( IppStatus, ippiFloodFill_Range8Con_16u_C3IR, ( Ipp16u* pImage, int imageStep,
  2898. IppiSize roiSize, IppiPoint seed,
  2899. Ipp16u *pNewVal, Ipp16u *pMinDelta, Ipp16u *pMaxDelta,
  2900. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2901. IPPAPI( IppStatus, ippiFloodFill_Range4Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2902. IppiSize roiSize, IppiPoint seed,
  2903. Ipp32f *pNewVal, Ipp32f *pMinDelta, Ipp32f *pMaxDelta,
  2904. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2905. IPPAPI( IppStatus, ippiFloodFill_Range8Con_32f_C3IR, ( Ipp32f* pImage, int imageStep,
  2906. IppiSize roiSize, IppiPoint seed,
  2907. Ipp32f *pNewVal, Ipp32f *pMinDelta, Ipp32f *pMaxDelta,
  2908. IppiConnectedComp* pRegion, Ipp8u* pBuffer ))
  2909. /****************************************************************************************\
  2910. * Motion Templates *
  2911. \****************************************************************************************/
  2912. /* ///////////////////////////////////////////////////////////////////////////////////////
  2913. // Name: ippiUpdateMotionHistory_8u32f_C1IR, ippiUpdateMotionHistory_16u32f_C1IR
  2914. // ippiUpdateMotionHistory_32f_C1IR
  2915. //
  2916. // Purpose: Sets motion history image (MHI) pixels to the current time stamp
  2917. // when the corrensonding pixels in the silhoette image are non zero.
  2918. // Else (silhouette pixels are zero) MHI pixels are
  2919. // cleared if their values are too small (less than timestamp - mhiDuration),
  2920. // i.e. they were updated far ago last time. Else MHI pixels remain unchanged.
  2921. //
  2922. // Return:
  2923. // ippStsNoErr Ok
  2924. // ippStsNullPtrErr One of pointers is NULL
  2925. // ippStsSizeErr The width or height of images is less or equal zero
  2926. // ippStsStepErr The steps in images are too small
  2927. // ippStsNotEvenStepErr Step is not multiple of element.
  2928. // ippStsOutOfRangeErr Maximal duration is negative
  2929. //
  2930. // Arguments:
  2931. // pSilhouette The pointer to silhouette image
  2932. // silhStep The step in silhouette image
  2933. // pMHI The pointer to motion history image
  2934. // mhiStep The step in mhi image
  2935. // roiSize ROI size
  2936. // timestamp Current time stamp (milliseconds)
  2937. // mhiDuration Maximal duration of motion track (milliseconds)
  2938. */
  2939. IPPAPI(IppStatus, ippiUpdateMotionHistory_8u32f_C1IR,
  2940. ( const Ipp8u* pSilhouette, int silhStep,
  2941. Ipp32f* pMHI, int mhiStep, IppiSize roiSize,
  2942. Ipp32f timestamp, Ipp32f mhiDuration ))
  2943. IPPAPI(IppStatus, ippiUpdateMotionHistory_16u32f_C1IR,
  2944. ( const Ipp16u* pSilhouette, int silhStep,
  2945. Ipp32f* pMHI, int mhiStep, IppiSize roiSize,
  2946. Ipp32f timestamp, Ipp32f mhiDuration ))
  2947. IPPAPI(IppStatus, ippiUpdateMotionHistory_32f_C1IR,
  2948. ( const Ipp32f* pSilhouette, int silhStep,
  2949. Ipp32f* pMHI, int mhiStep, IppiSize roiSize,
  2950. Ipp32f timestamp, Ipp32f mhiDuration ))
  2951. /****************************************************************************************\
  2952. * Optical Flow *
  2953. \****************************************************************************************/
  2954. /* ///////////////////////////////////////////////////////////////////////////////////////
  2955. // Name: ippiOpticalFlowPyrLKInitAlloc_8u_C1R, ippiOpticalFlowPyrLKInitAlloc_16u_C1R,
  2956. // ippiOpticalFlowPyrLKInitAlloc_32f_C1R
  2957. //
  2958. // Purpose: allocates memory and initializes a structure for pyramidal L-K algorithm
  2959. //
  2960. // Return:
  2961. // ippStsNoErr Indicates no error. Any other value indicates an error or a warning.
  2962. // ippStsNullPtrErr Indicates an error if ppState is NULL.
  2963. // ippStsSizeErr Indicates an error condition if roiSize has a field with zero
  2964. // or negative value or if winSize is equal to or less than 0.
  2965. // ippStsMemAllocErr Memory allocation error
  2966. //
  2967. // Arguments:
  2968. // pState Pointer to initialized structure
  2969. // roi Maximal image ROI
  2970. // winSize Size of search window (2*winSize+1)
  2971. // hint Option to select the algorithmic implementation of the function
  2972. */
  2973. IPPAPI(IppStatus, ippiOpticalFlowPyrLKInitAlloc_8u_C1R, (IppiOptFlowPyrLK_8u_C1R** ppState, IppiSize roiSize,
  2974. int winSize, IppHintAlgorithm hint))
  2975. IPPAPI(IppStatus, ippiOpticalFlowPyrLKInitAlloc_16u_C1R, (IppiOptFlowPyrLK_16u_C1R** ppState, IppiSize roiSize,
  2976. int winSize, IppHintAlgorithm hint))
  2977. IPPAPI(IppStatus, ippiOpticalFlowPyrLKInitAlloc_32f_C1R, (IppiOptFlowPyrLK_32f_C1R** ppState, IppiSize roiSize,
  2978. int winSize, IppHintAlgorithm hint))
  2979. /* ///////////////////////////////////////////////////////////////////////////////////////
  2980. // Name: ippiOpticalFlowPyrLKFree_8u_C1R, ippiOpticalFlowPyrLKFree_16u_C1R,
  2981. // ippiOpticalFlowPyrLKFree_32f_C1R
  2982. //
  2983. // Purpose: Free structure for pyramidal L-K algorithm
  2984. //
  2985. // Return:
  2986. // ippStsNoErr Ok
  2987. // ippStsNullPtrErr One of pointers is NULL
  2988. //
  2989. // Arguments:
  2990. // pState Pointer to initialized structure
  2991. */
  2992. IPPAPI(IppStatus, ippiOpticalFlowPyrLKFree_8u_C1R, (IppiOptFlowPyrLK_8u_C1R* pState))
  2993. IPPAPI(IppStatus, ippiOpticalFlowPyrLKFree_16u_C1R, (IppiOptFlowPyrLK_16u_C1R* pState))
  2994. IPPAPI(IppStatus, ippiOpticalFlowPyrLKFree_32f_C1R, (IppiOptFlowPyrLK_32f_C1R* pState))
  2995. /*F///////////////////////////////////////////////////////////////////////////////////////
  2996. // Name: ippiOpticalFlowPyrLK_8u_C1R, ippiOpticalFlowPyrLK_16u_C1R,
  2997. // ippiOpticalFlowPyrLK_32f_C1R
  2998. //
  2999. // Purpose:
  3000. // Pyramidal version of Lucas - Kanade method of optical flow calculation
  3001. //
  3002. // Returns:
  3003. // ippStsNoErr Indicates no error. Any other value indicates an error or a warning
  3004. // ippStsNullPtrErr Indicates an error if one of the specified pointer is NULL
  3005. // ippStsSizeErr Indicates an error condition if numFeat or winSize has zero or
  3006. // negative value.
  3007. // ippStsBadArgErr Indicates an error condition if maxLev or threshold has negative
  3008. // value, or maxIter has zero or negative value.
  3009. //
  3010. // Arguments:
  3011. // pPyr1 Pointer to the first image pyramid (time t)
  3012. // pPyr2 Pointer to the second image pyramid (time t+dt)
  3013. // pPrev Array of points, for which the flow needs to be found
  3014. // pNext Array of new positions of pPrev points
  3015. // pError Array of differences between pPrev and pNext points
  3016. // pStatus Array of result indicator (0 - not calculated)
  3017. // numFeat Number of points to calculate optical flow
  3018. // winSize Size of search window (2*winSize+1)
  3019. // maxLev Pyramid level to start the operation
  3020. // maxIter Maximum number of algorithm iterations for each pyramid level
  3021. // threshold Threshold value to stop new position search
  3022. // pState Pointer to structure
  3023. //
  3024. // Notes: For calculating spatial derivatives 3x3 Scharr operator is used.
  3025. // The values of pixels beyond the image are determined using replication mode.
  3026. //F*/
  3027. IPPAPI(IppStatus, ippiOpticalFlowPyrLK_8u_C1R, (IppiPyramid *pPyr1, IppiPyramid *pPyr2,
  3028. const IppiPoint_32f *pPrev, IppiPoint_32f *pNext, Ipp8s *pStatus, Ipp32f *pError,
  3029. int numFeat, int winSize, int maxLev, int maxIter, Ipp32f threshold,
  3030. IppiOptFlowPyrLK_8u_C1R *pState))
  3031. IPPAPI(IppStatus, ippiOpticalFlowPyrLK_16u_C1R, (IppiPyramid *pPyr1, IppiPyramid *pPyr2,
  3032. const IppiPoint_32f *pPrev, IppiPoint_32f *pNext, Ipp8s *pStatus, Ipp32f *pError,
  3033. int numFeat, int winSize, int maxLev, int maxIter, Ipp32f threshold,
  3034. IppiOptFlowPyrLK_16u_C1R *pState))
  3035. IPPAPI(IppStatus, ippiOpticalFlowPyrLK_32f_C1R, (IppiPyramid *pPyr1, IppiPyramid *pPyr2,
  3036. const IppiPoint_32f *pRrev, IppiPoint_32f *pNext, Ipp8s *pStatus, Ipp32f *pError,
  3037. int numFeat, int winSize, int maxLev, int maxIter, Ipp32f threshold,
  3038. IppiOptFlowPyrLK_32f_C1R *pState))
  3039. /****************************************************************************************\
  3040. * Gaussian Pyramids *
  3041. \****************************************************************************************/
  3042. /* ///////////////////////////////////////////////////////////////////////////////////////
  3043. // Name: ippiPyrUpGetBufSize_Gauss5x5, ippiPyrDownGetBufSize_Gauss5x5
  3044. //
  3045. // Purpose: Calculates cyclic buffer size for pyramids.
  3046. //
  3047. // Return:
  3048. // ippStsNoErr Ok
  3049. // ippStsNullPtrErr The pbufSize pointer is NULL
  3050. // ippStsSizeErr The value of roiWidth is zerro or negative
  3051. // ippStsDataTypeErr The dataType is not Ipp8u, Ipp8s or Ipp32f
  3052. // ippStsNumChannensErr The channels is not 1 or 3
  3053. //
  3054. // Arguments:
  3055. // roiWidth Width of image ROI in pixels
  3056. // dataType Data type of the source image
  3057. // channels Number of image channels
  3058. // pbufSize Pointer to the variable that return the size of the temporary buffer.
  3059. */
  3060. IPPAPI(IppStatus, ippiPyrUpGetBufSize_Gauss5x5, (int roiWidth, IppDataType dataType,
  3061. int channels, int* bufSize))
  3062. IPPAPI(IppStatus, ippiPyrDownGetBufSize_Gauss5x5, (int roiWidth, IppDataType dataType,
  3063. int channels, int* bufSize))
  3064. /* ///////////////////////////////////////////////////////////////////////////////////////
  3065. // Name: ippiPyrDown_Gauss5x5_8u_C1R, ippiPyrDown_Gauss5x5_8u_C3R,
  3066. // ippiPyrDown_Gauss5x5_8s_C1R, ippiPyrDown_Gauss5x5_8s_C3R,
  3067. // ippiPyrDown_Gauss5x5_32f_C1R, ippiPyrDown_Gauss5x5_32f_C3R,
  3068. //
  3069. // ippiPyrUp_Gauss5x5_8u_C1R, ippiPyrUp_Gauss5x5_8u_C3R,
  3070. // ippiPyrUp_Gauss5x5_8s_C1R, ippiPyrUp_Gauss5x5_8s_C3R,
  3071. // ippiPyrUp_Gauss5x5_32f_C1R, ippiPyrUp_Gauss5x5_32f_C3R,
  3072. //
  3073. // Purpose: Perform downsampling/upsampling of the image with 5x5 gaussian.
  3074. //
  3075. // Return:
  3076. // ippStsNoErr Ok
  3077. // ippStsNullPtrErr One of pointers is NULL
  3078. // ippStsSizeErr The width or height of images is less or equal zero.
  3079. // ippStsStepErr Step is too small to fit image.
  3080. // ippStsNotEvenStepErr Step is not multiple of element.
  3081. //
  3082. // Arguments:
  3083. // pSrc Pointer to source image
  3084. // srcStep Step in bytes through the source image
  3085. // pDst Pointer to destination image
  3086. // dstStep Step in bytes through the destination image
  3087. // roiSize Size of the source image ROI in pixel. Destination image width and
  3088. // height will be twice large (PyrUp)
  3089. // or twice smaller (PyrDown)
  3090. // pBuffer Pointer to the the temporary buffer of the size calculated by
  3091. // ippPyrUpGetSize_Gauss_5x5 or ippPyrDownGetSize_Gauss_5x5
  3092. */
  3093. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3094. Ipp8u* pDst, int dstStep,
  3095. IppiSize roiSize, Ipp8u* pBuffer ))
  3096. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3097. Ipp8u* pDst, int dstStep,
  3098. IppiSize roiSize, Ipp8u* pBuffer ))
  3099. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_8s_C1R, (const Ipp8s* pSrc, int srcStep,
  3100. Ipp8s* pDst, int dstStep,
  3101. IppiSize roiSize, Ipp8u* pBuffer ))
  3102. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_8s_C3R, (const Ipp8s* pSrc, int srcStep,
  3103. Ipp8s* pDst, int dstStep,
  3104. IppiSize roiSize, Ipp8u* pBuffer ))
  3105. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  3106. Ipp32f* pDst, int dstStep,
  3107. IppiSize roiSize, Ipp8u* pBuffer ))
  3108. IPPAPI(IppStatus, ippiPyrUp_Gauss5x5_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  3109. Ipp32f* pDst, int dstStep,
  3110. IppiSize roiSize, Ipp8u* pBuffer ))
  3111. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3112. Ipp8u* pDst, int dstStep,
  3113. IppiSize roiSize, Ipp8u* pBuffer ))
  3114. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3115. Ipp8u* pDst, int dstStep,
  3116. IppiSize roiSize, Ipp8u* pBuffer ))
  3117. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_8s_C1R, (const Ipp8s* pSrc, int srcStep,
  3118. Ipp8s* pDst, int dstStep,
  3119. IppiSize roiSize, Ipp8u* pBuffer ))
  3120. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_8s_C3R, (const Ipp8s* pSrc, int srcStep,
  3121. Ipp8s* pDst, int dstStep,
  3122. IppiSize roiSize, Ipp8u* pBuffer ))
  3123. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  3124. Ipp32f* pDst, int dstStep,
  3125. IppiSize roiSize, Ipp8u* pBuffer ))
  3126. IPPAPI(IppStatus, ippiPyrDown_Gauss5x5_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  3127. Ipp32f* pDst, int dstStep,
  3128. IppiSize roiSize, Ipp8u* pBuffer ))
  3129. /****************************************************************************************\
  3130. * Universal Pyramids *
  3131. \****************************************************************************************/
  3132. /* ///////////////////////////////////////////////////////////////////////////////////////
  3133. // Name: ippiPyramidInitAlloc, ippiPyramidFree
  3134. //
  3135. // Purpose: Initializes structure for pyramids, calculates ROI for layers,
  3136. // allocates images for layers.
  3137. //
  3138. // Return:
  3139. // ippStsNoErr Ok
  3140. // ippStsNullPtrErr One of pointers is NULL
  3141. // ippStsSizeErr The width or height of images is less or equal zero
  3142. // ippStsBadArgErr Bad rate or level
  3143. // ippStsMemAllocErr Memory allocation error
  3144. //
  3145. // Arguments:
  3146. // ppPyr Pointer to the pointer to the pyramid structure.
  3147. // pPyr Pointer to the pyramid structure.
  3148. // level Maximal number pyramid level.
  3149. // roiSize Lowest level image ROI size.
  3150. // rate Neighbour levels ratio (1<rate<=10)
  3151. */
  3152. IPPAPI(IppStatus, ippiPyramidInitAlloc,(IppiPyramid** ppPyr, int level, IppiSize roiSize, Ipp32f rate))
  3153. IPPAPI(IppStatus, ippiPyramidFree,(IppiPyramid* pPyr))
  3154. /* ///////////////////////////////////////////////////////////////////////////////////////
  3155. // Name: ippiPyramidLayerDownInitAlloc_8u_C1R, ippiPyramidLayerDownInitAlloc_8u_C3R
  3156. // ippiPyramidLayerDownInitAlloc_16u_C1R, ippiPyramidLayerDownInitAlloc_16u_C3R
  3157. // ippiPyramidLayerDownInitAlloc_32f_C1R, ippiPyramidLayerDownInitAlloc_32f_C3R
  3158. // ippiPyramidLayerUpInitAlloc_8u_C1R, ippiPyramidLayerUpInitAlloc_8u_C3R
  3159. // ippiPyramidLayerUpInitAlloc_16u_C1R, ippiPyramidLayerUpInitAlloc_16u_C3R
  3160. // ippiPyramidLayerUpInitAlloc_32f_C1R, ippiPyramidLayerUpInitAlloc_32f_C3R
  3161. //
  3162. // Purpose: Initializes structure for pyramid layer calculation
  3163. //
  3164. // Return:
  3165. // ippStsNoErr Ok
  3166. // ippStsNullPtrErr One of pointers is NULL
  3167. // ippStsSizeErr The width or height of images is less or equal zero
  3168. // ippStsBadArgErr Bad mode, rate or kernel size
  3169. // ippStsMemAllocErr Memory allocation error
  3170. //
  3171. // Arguments:
  3172. // ppState Pointer to the pointer to initialized structure
  3173. // srcRoi Source image ROI size.
  3174. // dstRoi Destination image ROI size.
  3175. // rate Neighbour levels ratio (1<rate<4)
  3176. // pKernel Separable symmetric kernel of odd length
  3177. // kerSize Kernel size
  3178. // mode IPPI_INTER_LINEAR - bilinear interpolation
  3179. */
  3180. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_8u_C1R, (IppiPyramidDownState_8u_C1R** ppState, IppiSize srcRoi,
  3181. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3182. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_16u_C1R,(IppiPyramidDownState_16u_C1R** ppState, IppiSize srcRoi,
  3183. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3184. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_32f_C1R,(IppiPyramidDownState_32f_C1R** ppState, IppiSize srcRoi,
  3185. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode))
  3186. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_8u_C3R, (IppiPyramidDownState_8u_C3R** ppState, IppiSize srcRoi,
  3187. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3188. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_16u_C3R,(IppiPyramidDownState_16u_C3R** ppState, IppiSize srcRoi,
  3189. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3190. IPPAPI(IppStatus, ippiPyramidLayerDownInitAlloc_32f_C3R,(IppiPyramidDownState_32f_C3R** ppState, IppiSize srcRoi,
  3191. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode))
  3192. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_8u_C1R, (IppiPyramidUpState_8u_C1R** ppState, IppiSize dstRoi,
  3193. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3194. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_16u_C1R,(IppiPyramidUpState_16u_C1R** ppState, IppiSize dstRoi,
  3195. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3196. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_32f_C1R,(IppiPyramidUpState_32f_C1R** ppState, IppiSize dstRoi,
  3197. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode))
  3198. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_8u_C3R, (IppiPyramidUpState_8u_C3R** ppState, IppiSize dstRoi,
  3199. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3200. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_16u_C3R,(IppiPyramidUpState_16u_C3R** ppState, IppiSize dstRoi,
  3201. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode))
  3202. IPPAPI(IppStatus, ippiPyramidLayerUpInitAlloc_32f_C3R,(IppiPyramidUpState_32f_C3R** ppState, IppiSize dstRoi,
  3203. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode))
  3204. /* ///////////////////////////////////////////////////////////////////////////////////////
  3205. // Name: ippiPyramidLayerDownFree_8u_C1R, ippiPyramidLayerDownFree_8u_C3R
  3206. // ippiPyramidLayerDownFree_16u_C1R, ippiPyramidLayerDownFree_16u_C3R
  3207. // ippiPyramidLayerDownFree_32f_C1R, ippiPyramidLayerDownFree_32f_C3R
  3208. // ippiPyramidLayerUpFree_8u_C1R, ippiPyramidLayerUpFree_8u_C3R
  3209. // ippiPyramidLayerUpFree_16u_C1R, ippiPyramidLayerUpFree_16u_C3R
  3210. // ippiPyramidLayerUpFree_32f_C1R, ippiPyramidLayerUpFree_32f_C3R
  3211. //
  3212. // Purpose: Initializes structure for pyramid layer calculation
  3213. //
  3214. // Return:
  3215. // ippStsNoErr Ok
  3216. // ippStsNullPtrErr One of pointers is NULL
  3217. //
  3218. // Arguments:
  3219. // pState Pointer to initialized structure
  3220. */
  3221. IPPAPI(IppStatus, ippiPyramidLayerDownFree_8u_C1R, (IppiPyramidDownState_8u_C1R* pState))
  3222. IPPAPI(IppStatus, ippiPyramidLayerDownFree_16u_C1R,(IppiPyramidDownState_16u_C1R* pState))
  3223. IPPAPI(IppStatus, ippiPyramidLayerDownFree_32f_C1R,(IppiPyramidDownState_32f_C1R* pState))
  3224. IPPAPI(IppStatus, ippiPyramidLayerDownFree_8u_C3R, (IppiPyramidDownState_8u_C3R* pState))
  3225. IPPAPI(IppStatus, ippiPyramidLayerDownFree_16u_C3R,(IppiPyramidDownState_16u_C3R* pState))
  3226. IPPAPI(IppStatus, ippiPyramidLayerDownFree_32f_C3R,(IppiPyramidDownState_32f_C3R* pState))
  3227. IPPAPI(IppStatus, ippiPyramidLayerUpFree_8u_C1R, (IppiPyramidUpState_8u_C1R* pState))
  3228. IPPAPI(IppStatus, ippiPyramidLayerUpFree_16u_C1R,(IppiPyramidUpState_16u_C1R* pState))
  3229. IPPAPI(IppStatus, ippiPyramidLayerUpFree_32f_C1R,(IppiPyramidUpState_32f_C1R* pState))
  3230. IPPAPI(IppStatus, ippiPyramidLayerUpFree_8u_C3R, (IppiPyramidUpState_8u_C3R* pState))
  3231. IPPAPI(IppStatus, ippiPyramidLayerUpFree_16u_C3R,(IppiPyramidUpState_16u_C3R* pState))
  3232. IPPAPI(IppStatus, ippiPyramidLayerUpFree_32f_C3R,(IppiPyramidUpState_32f_C3R* pState))
  3233. /* ///////////////////////////////////////////////////////////////////////////////////////
  3234. // Name: ippiGetPyramidDownROI, ippiGetPyramidUpROI
  3235. //
  3236. // Purpose: Calculate possible size of destination ROI.
  3237. //
  3238. // Return:
  3239. // ippStsNoErr Ok
  3240. // ippStsNullPtrErr One of pointers is NULL
  3241. // ippStsSizeErr Wrong src roi
  3242. // ippStsBadArgErr Wrong rate
  3243. //
  3244. // Arguments:
  3245. // srcRoi Source image ROI size.
  3246. // pDstRoi Pointer to destination image ROI size (down).
  3247. // pDstRoiMin Pointer to minimal destination image ROI size (up).
  3248. // pDstRoiMax Pointer to maximal destination image ROI size (up).
  3249. // rate Neighbour levels ratio (1<rate<=10)
  3250. //
  3251. // Notes: For up case destination size belongs to interval
  3252. // max((int)((float)((src-1)*rate)),src+1)<=dst<=
  3253. // max((int)((float)(src)*rate)),src+1)
  3254. */
  3255. IPPAPI(IppStatus, ippiGetPyramidDownROI,(IppiSize srcRoi, IppiSize *pDstRoi, Ipp32f rate))
  3256. IPPAPI(IppStatus, ippiGetPyramidUpROI,(IppiSize srcRoi, IppiSize *pDstRoiMin, IppiSize *pDstRoiMax, Ipp32f rate))
  3257. /* ///////////////////////////////////////////////////////////////////////////////////////
  3258. // Name: ippiPyramidLayerDown_8u_C1R, ippiPyramidLayerDown_16u_C1R, ippiPyramidLayerDown_32f_C1R
  3259. // ippiPyramidLayerDown_8u_C3R, ippiPyramidLayerDown_16u_C3R, ippiPyramidLayerDown_32f_C3R
  3260. // ippiPyramidLayerUp_8u_C1R, ippiPyramidLayerUp_16u_C1R, ippiPyramidLayerUp_32f_C1R
  3261. // ippiPyramidLayerUp_8u_C3R, ippiPyramidLayerUp_16u_C3R, ippiPyramidLayerUp_32f_C3R
  3262. //
  3263. // Purpose: Perform downsampling/upsampling of the image with 5x5 gaussian.
  3264. //
  3265. // Return:
  3266. // ippStsNoErr Ok
  3267. // ippStsNullPtrErr One of the specified pointers is NULL
  3268. // ippStsSizeErr The srcRoiSize or dstRoiSize has a fild with zero or negativ value
  3269. // ippStsStepErr The steps in images are too small
  3270. // ippStsBadArgErr pState->rate has wrong value
  3271. // ippStsNotEvenStepErr One of the step values is not divisibly by 4 for floating-point
  3272. // images, or by 2 for short-integer images.
  3273. // Arguments:
  3274. // pSrc Pointer to the source image
  3275. // srcStep Step in byte through the source image
  3276. // srcRoiSize Size of the source image ROI in pixel.
  3277. // dstRoiSize Size of the destination image ROI in pixel.
  3278. // pDst Pointer to destination image
  3279. // dstStep Step in byte through the destination image
  3280. // pState Pointer to the pyramid layer structure
  3281. */
  3282. IPPAPI(IppStatus, ippiPyramidLayerDown_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3283. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_8u_C1R* pState))
  3284. IPPAPI(IppStatus, ippiPyramidLayerDown_8u_C3R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3285. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_8u_C3R* pState))
  3286. IPPAPI(IppStatus, ippiPyramidLayerDown_16u_C1R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3287. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_16u_C1R* pState))
  3288. IPPAPI(IppStatus, ippiPyramidLayerDown_16u_C3R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3289. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_16u_C3R* pState))
  3290. IPPAPI(IppStatus, ippiPyramidLayerDown_32f_C1R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3291. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_32f_C1R* pState))
  3292. IPPAPI(IppStatus, ippiPyramidLayerDown_32f_C3R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3293. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_32f_C3R* pState))
  3294. IPPAPI(IppStatus, ippiPyramidLayerUp_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3295. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_8u_C1R* pState))
  3296. IPPAPI(IppStatus, ippiPyramidLayerUp_8u_C3R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3297. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_8u_C3R* pState))
  3298. IPPAPI(IppStatus, ippiPyramidLayerUp_16u_C1R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3299. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_16u_C1R* pState))
  3300. IPPAPI(IppStatus, ippiPyramidLayerUp_16u_C3R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3301. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_16u_C3R* pState))
  3302. IPPAPI(IppStatus, ippiPyramidLayerUp_32f_C1R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3303. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_32f_C1R* pState))
  3304. IPPAPI(IppStatus, ippiPyramidLayerUp_32f_C3R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3305. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_32f_C3R* pState))
  3306. /****************************************************************************************\
  3307. * Haar Classifier *
  3308. \****************************************************************************************/
  3309. /* ///////////////////////////////////////////////////////////////////////////////////////
  3310. // Name: ippiHaarClassifierInitAlloc_32f, ippiTiltedHaarClassifierInitAlloc_32f
  3311. // ippiHaarClassifierInitAlloc_32s, ippiTiltedHaarClassifierInitAlloc_32s
  3312. //
  3313. // Purpose: Allocates and initializes memory for the stage of the Haar classifier
  3314. //
  3315. // Return:
  3316. // ippStsNoErr Ok
  3317. // ippStsNullPtrErr One of pointers is NULL
  3318. // ippStsSizeErr The number of classifiers or features is less or equal zero
  3319. // ippStsbadArgErr The bad feature rectangular
  3320. // ippStsMemAllocErr Memory allocation error
  3321. //
  3322. // Arguments:
  3323. // pState The pointer to the pointer to the Haar classifier structure.
  3324. // pFeature The pointer to the array of features.
  3325. // pWeight The pointer to the array of feature weights.
  3326. // pThreshold The pointer to the array of classifier thresholds [length].
  3327. // pVal1, pVal2 Pointers to arrays of classifier results [length].
  3328. // pNum The pointer to the array of classifier lengths [length].
  3329. // length The number of classifiers in the stage.
  3330. //
  3331. // Notes: For integer version feature weights pWeight are in Q0, classifier thresholds
  3332. // pThreshold are in QT (see ApplyHaarClassifier), pVal1 and pVal2 are scale as
  3333. // stage thresholds threshold of ApplyHaarClassifier function
  3334. */
  3335. IPPAPI(IppStatus, ippiHaarClassifierInitAlloc_32f, (IppiHaarClassifier_32f **pState,
  3336. const IppiRect* pFeature, const Ipp32f* pWeight, const Ipp32f* pThreshold,
  3337. const Ipp32f* pVal1, const Ipp32f* pVal2, const int* pNum, int length))
  3338. IPPAPI(IppStatus, ippiTiltedHaarClassifierInitAlloc_32f, (IppiHaarClassifier_32f **pState,
  3339. const IppiRect* pFeature, const Ipp32f* pWeight, const Ipp32f* pThreshold,
  3340. const Ipp32f* pVal1, const Ipp32f* pVal2, const int* pNum, int length))
  3341. IPPAPI(IppStatus, ippiHaarClassifierInitAlloc_32s, (IppiHaarClassifier_32s **pState,
  3342. const IppiRect* pFeature, const Ipp32s* pWeight, const Ipp32s* pThreshold,
  3343. const Ipp32s* pVal1, const Ipp32s* pVal2, const int* pNum, int length))
  3344. IPPAPI(IppStatus, ippiTiltedHaarClassifierInitAlloc_32s, (IppiHaarClassifier_32s **pState,
  3345. const IppiRect* pFeature, const Ipp32s* pWeight, const Ipp32s* pThreshold,
  3346. const Ipp32s* pVal1, const Ipp32s* pVal2, const int* pNum, int length))
  3347. /* ///////////////////////////////////////////////////////////////////////////////////////
  3348. // Name: ippiHaarClassifierFree_32f, ippiHaarClassifierFree_32s
  3349. //
  3350. // Purpose: Free structure for Haar classifier
  3351. //
  3352. // Return:
  3353. // ippStsNoErr Ok
  3354. // ippStsNullPtrErr One of pointers is NULL
  3355. //
  3356. // Arguments:
  3357. // pState Pointer to the structure to be freed
  3358. */
  3359. IPPAPI(IppStatus, ippiHaarClassifierFree_32f,(IppiHaarClassifier_32f *pState))
  3360. IPPAPI(IppStatus, ippiHaarClassifierFree_32s,(IppiHaarClassifier_32s *pState))
  3361. /* ///////////////////////////////////////////////////////////////////////////////////////
  3362. // Name: ippiTiltHaarFeatures_32f, ippiTiltHaarFeatures_32s
  3363. //
  3364. // Purpose: Tilts marked feature on -45 degree
  3365. //
  3366. // Return:
  3367. // ippStsNoErr Ok
  3368. // ippStsNullPtrErr One of pointers is NULL
  3369. //
  3370. // Arguments:
  3371. // pMask The mask of feature to tilt.
  3372. // flag 1 - left bottom -45 degree
  3373. // 0 - left top +45 degree
  3374. // pState The pointer to the Haar classifier structure.
  3375. //
  3376. // Notes: The mask length is equal to the number of classifiers in the classifier
  3377. // If pMask[i] != 0 i-th feature is tilted
  3378. // Classifiers with tilted features require two input integral images and
  3379. // can be used by rippiApplyMixedHaarClassifier functions
  3380. */
  3381. IPPAPI(IppStatus, ippiTiltHaarFeatures_32f, (const Ipp8u *pMask, int flag, IppiHaarClassifier_32f *pState))
  3382. IPPAPI(IppStatus, ippiTiltHaarFeatures_32s, (const Ipp8u *pMask, int flag, IppiHaarClassifier_32s *pState))
  3383. /* ///////////////////////////////////////////////////////////////////////////////////////
  3384. // Name: ippiGetHaarClassifierSize_32f, ippiGetHaarClassifierSize_32s
  3385. //
  3386. // Purpose: Returns the size of the Haar classifier.
  3387. //
  3388. // Return:
  3389. // ippStsNoErr Ok
  3390. // ippStsNullPtrErr One of pointers is NULL
  3391. //
  3392. // Arguments:
  3393. // pState Pointer to the Haar classifier structure.
  3394. // pSize Pointer to the returned value of Haar classifier size.
  3395. */
  3396. IPPAPI(IppStatus, ippiGetHaarClassifierSize_32f, (IppiHaarClassifier_32f* pState, IppiSize* pSize))
  3397. IPPAPI(IppStatus, ippiGetHaarClassifierSize_32s, (IppiHaarClassifier_32s* pState, IppiSize* pSize))
  3398. /* ///////////////////////////////////////////////////////////////////////////////////////
  3399. // Name: ippiApplyHaarClassifier_32f_C1R, ippiApplyMixedHaarClassifier_32f_C1R,
  3400. // ippiApplyHaarClassifier_32s32f_C1R, ippiApplyMixedHaarClassifier_32s32f_C1R,
  3401. // ippiApplyHaarClassifier_32s_C1RSfs, ippiApplyMixedHaarClassifier_32s_C1RSfs
  3402. //
  3403. // Purpose: Applies the stage of Haar classifiers to the image
  3404. //
  3405. // Return:
  3406. // ippStsNoErr Ok
  3407. // ippStsNullPtrErr One of pointers is NULL
  3408. // ippStsSizeErr The number of classifiers or features is less or equal zero
  3409. // ippStsSizeErr The width or height of images is less or equal zero
  3410. // ippStsStepErr The steps in images are too small
  3411. // ippStsNotEvenStepErr Step is not multiple of element.
  3412. //
  3413. // Arguments:
  3414. // pSrc The pointer to the source image of integrals.
  3415. // srcStep The step in bytes through the source image.
  3416. // pNorm The pointer to the source image of norm factors.
  3417. // normStep The step in bytes through the image of norm factors.
  3418. // pMask The pointer to the source and destination image of classification decisions.
  3419. // maskStep The step in bytes through the image of classification decisions.
  3420. // pPositive The pointer to the number of positive decisions.
  3421. // roiSize The size of source and destination images ROI in pixels.
  3422. // threshold The stage threshold value.
  3423. // pState The pointer to the Haar classifier structure.
  3424. // scaleFactor Scale factor for classifier threshold*norm, <= 0
  3425. */
  3426. IPPAPI(IppStatus, ippiApplyHaarClassifier_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  3427. const Ipp32f* pNorm, int normStep, Ipp8u* pMask, int maskStep,
  3428. IppiSize roiSize, int *pPositive, Ipp32f threshold,
  3429. IppiHaarClassifier_32f *pState))
  3430. IPPAPI(IppStatus, ippiApplyHaarClassifier_32s32f_C1R, (const Ipp32s* pSrc, int srcStep,
  3431. const Ipp32f* pNorm, int normStep, Ipp8u* pMask, int maskStep,
  3432. IppiSize roiSize, int *pPositive, Ipp32f threshold,
  3433. IppiHaarClassifier_32f *pState))
  3434. IPPAPI(IppStatus, ippiApplyHaarClassifier_32s_C1RSfs, (const Ipp32s* pSrc, int srcStep,
  3435. const Ipp32s* pNorm, int normStep, Ipp8u* pMask, int maskStep,
  3436. IppiSize roiSize, int *pPositive, Ipp32s threshold,
  3437. IppiHaarClassifier_32s *pState, int scaleFactor))
  3438. IPPAPI(IppStatus, ippiApplyMixedHaarClassifier_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  3439. const Ipp32f* pTilt, int tiltStep, const Ipp32f* pNorm, int normStep,
  3440. Ipp8u* pMask, int maskStep, IppiSize roiSize, int *pPositive, Ipp32f threshold,
  3441. IppiHaarClassifier_32f *pState))
  3442. IPPAPI(IppStatus, ippiApplyMixedHaarClassifier_32s32f_C1R, (const Ipp32s* pSrc, int srcStep,
  3443. const Ipp32s* pTilt, int tiltStep, const Ipp32f* pNorm, int normStep,
  3444. Ipp8u* pMask, int maskStep, IppiSize roiSize, int *pPositive, Ipp32f threshold,
  3445. IppiHaarClassifier_32f *pState))
  3446. IPPAPI(IppStatus, ippiApplyMixedHaarClassifier_32s_C1RSfs, (const Ipp32s* pSrc, int srcStep,
  3447. const Ipp32s* pTilt, int tiltStep, const Ipp32s* pNorm, int normStep,
  3448. Ipp8u* pMask, int maskStep, IppiSize roiSize, int *pPositive, Ipp32s threshold,
  3449. IppiHaarClassifier_32s *pState, int scaleFactor))
  3450. /****************************************************************************************\
  3451. * Correction of Camera Distortions *
  3452. \****************************************************************************************/
  3453. /*F///////////////////////////////////////////////////////////////////////////////////////
  3454. // Name: ippiUndistortGetSize
  3455. //
  3456. // Purpose: calculate the buffer size for Undistort functions
  3457. //
  3458. // Return:
  3459. // ippStsNoErr Ok
  3460. // ippStsNullPtrErr One of pointers is NULL
  3461. // ippStsSizeErr The width or height of images is less or equal zero
  3462. //
  3463. // Parameters:
  3464. // roiSize Maximal image size
  3465. // pBufsize Pointer to work buffer size
  3466. //
  3467. // Notes:
  3468. //F*/
  3469. IPPAPI(IppStatus, ippiUndistortGetSize, (IppiSize roiSize, int *pBufsize))
  3470. /*F///////////////////////////////////////////////////////////////////////////////////////
  3471. // Name: ippiCreateMapCameraUndistort_32f_C1R
  3472. //
  3473. // Purpose: initialize x and y maps for undistortion by ippiRemap function
  3474. //
  3475. // Return:
  3476. // ippStsNoErr Ok
  3477. // ippStsNullPtrErr pxMap or pyMap is NULL
  3478. // ippStsSizeErr The width or height of images is less or equal zero
  3479. // ippStsStepErr The steps in images are too small
  3480. // ippStsNotEvenStepErr Step is not multiple of element.
  3481. // ippStsBadArgErr Bad fx or fy
  3482. //
  3483. // Parameters:
  3484. // pxMap Pointer to x map (result, free by ippiFree)
  3485. // xStep Pointer to x map row step (result)
  3486. // pyMap Pointer to x map (result, free by ippiFree)
  3487. // yStep Pointer to x map row step (result)
  3488. // roiSize Maximal image size
  3489. // fx, fy Focal lengths
  3490. // cx, cy Coordinates of principal point
  3491. // k1, k2 Coeffs of radial distortion
  3492. // p1, p2 Coeffs of tangential distortion
  3493. // pBuffer Pointer to work buffer
  3494. //
  3495. // Notes:
  3496. // fx, fy != 0
  3497. //F*/
  3498. IPPAPI(IppStatus, ippiCreateMapCameraUndistort_32f_C1R, (Ipp32f *pxMap, int xStep,
  3499. Ipp32f *pyMap, int yStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy, Ipp32f cx, Ipp32f cy,
  3500. Ipp32f k1, Ipp32f k2, Ipp32f p1, Ipp32f p2, Ipp8u *pBuffer))
  3501. /*F///////////////////////////////////////////////////////////////////////////////////////
  3502. // Name: ippiUndistortRadial_8u_C1R, ippiUndistortRadial_8u_C3R,
  3503. // ippiUndistortRadial_16u_C1R, ippiUndistortRadial_16u_C3R
  3504. // ippiUndistortRadial_32f_C1R, ippiUndistortRadial_32f_C3R
  3505. //
  3506. // Purpose: correct camera distortion
  3507. //
  3508. // Return:
  3509. // ippStsNoErr Ok
  3510. // ippStsNullPtrErr pSrc or pDst is NULL
  3511. // ippStsSizeErr The width or height of images is less or equal zero
  3512. // ippStsStepErr The steps in images are too small
  3513. // ippStsNotEvenStepErr Step is not multiple of element.
  3514. // ippStsBadArgErr Bad fx or fy
  3515. //
  3516. // Parameters:
  3517. // pSrc Source image
  3518. // srcStep Step in source image
  3519. // pDst Pointer to destination image
  3520. // dstStep Step in destination image
  3521. // roiSize Source and destination image ROI size.
  3522. // fx, fy Focal lengths
  3523. // cx, cy Coordinates of principal point
  3524. // k1, k2 Coeffs of radial distortion
  3525. // pBuffer Pointer to work buffer
  3526. //
  3527. // Notes:
  3528. //F*/
  3529. IPPAPI(IppStatus, ippiUndistortRadial_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3530. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3531. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3532. IPPAPI(IppStatus, ippiUndistortRadial_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  3533. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3534. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3535. IPPAPI(IppStatus, ippiUndistortRadial_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  3536. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3537. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3538. IPPAPI(IppStatus, ippiUndistortRadial_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3539. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3540. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3541. IPPAPI(IppStatus, ippiUndistortRadial_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  3542. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3543. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3544. IPPAPI(IppStatus, ippiUndistortRadial_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  3545. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f fx, Ipp32f fy,
  3546. Ipp32f cx, Ipp32f cy, Ipp32f k1, Ipp32f k2, Ipp8u *pBuffer))
  3547. /*F/////////////////////////////////////////////////////////////////////////////////////////////////
  3548. // Name: ippiGradientColorToGray_8u_C3C1R,
  3549. // ippiGradientColorToGray_16u_C3C1R,
  3550. // ippiGradientColorToGray_32f_C3C1R
  3551. //
  3552. // Purpose: Calculate gray gradient from 3-channel gradient image.
  3553. //
  3554. // Return:
  3555. // ippStsNoErr Ok
  3556. // ippStsNullPtrErr One of pointers is NULL
  3557. // ippStsSizeErr The width or height of images is less or equal zero
  3558. // ippStsStepErr The steps in images are too small
  3559. //
  3560. // Parameters:
  3561. // pSrc The source image
  3562. // srcStep Its step
  3563. // pDst The destination image
  3564. // dstStep Its step
  3565. // roiSize ROI size
  3566. // norm The norm type
  3567. // rippiNormInf = max(|a|,|b|,|c|)
  3568. // rippiNormL1 = (|a|+|b|+|c|)/3
  3569. // rippiNormL2 = sqrt((a*a+b*b+c*c)/3)
  3570. //
  3571. // Note: For integer flavors, the result is scaled to the full range of the
  3572. // destination data type
  3573. //F*/
  3574. IPPAPI(IppStatus, ippiGradientColorToGray_8u_C3C1R, (const Ipp8u* pSrc, int srcStep,
  3575. Ipp8u* pDst, int dstStep, IppiSize roiSize, IppiNorm norm))
  3576. IPPAPI(IppStatus, ippiGradientColorToGray_16u_C3C1R, (const Ipp16u* pSrc, int srcStep,
  3577. Ipp16u* pDst, int dstStep, IppiSize roiSize, IppiNorm norm))
  3578. IPPAPI(IppStatus, ippiGradientColorToGray_32f_C3C1R, (const Ipp32f* pSrc, int srcStep,
  3579. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiNorm norm))
  3580. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3581. // Name: ippiInpaintInitAlloc_8u_C1R, ippiInpaintInitAlloc_8u_C3R
  3582. //
  3583. // Purpose: allocates memory and initializes a structure for direct inpainting algorithm
  3584. //
  3585. // Return:
  3586. // ippStsNoErr Ok
  3587. // ippStsNullPtrErr One of pointers is NULL
  3588. // ippStsSizeErr The width of the image are less or equal zero
  3589. // ippStsStepErr The steps in images are too small
  3590. // ippStsNotEvenStepErr Step is not multiple of element
  3591. // ippStsBadArgErr Wrong radius or flags
  3592. //
  3593. // Parameters:
  3594. // ppState Pointer to pointer to inpainting structure
  3595. // pDist Distance image
  3596. // distStep Its step
  3597. // pMask Distance image
  3598. // maskStep Its step
  3599. // roiSize The image ROI size
  3600. // radius Neighborhood radius (dist<=radius pixels are processed)
  3601. // flags Inpainting flags
  3602. // IPP_INPAINT_TELEA Telea algorithm is used
  3603. // IPP_INPAINT_NS Navier-Stokes equation is used
  3604. */
  3605. IPPAPI(IppStatus, ippiInpaintInitAlloc_8u_C1R, (IppiInpaintState_8u_C1R** ppState, const Ipp32f* pDist,
  3606. int distStep, const Ipp8u* pMask, int maskStep,
  3607. IppiSize roiSize, Ipp32f radius, IppiInpaintFlag flags))
  3608. IPPAPI(IppStatus, ippiInpaintInitAlloc_8u_C3R, (IppiInpaintState_8u_C3R** ppState, const Ipp32f* pDist,
  3609. int distStep, const Ipp8u* pMask, int maskStep,
  3610. IppiSize roiSize, Ipp32f radius, IppiInpaintFlag flags))
  3611. /* ///////////////////////////////////////////////////////////////////////////////////////
  3612. // Name: ippiInpaintFree_8u_C1R, ippiInpaintFree_8u_C3R
  3613. //
  3614. // Purpose: Free structure for inpainting algorithm
  3615. //
  3616. // Return:
  3617. // ippStsNoErr Ok
  3618. // ippStsNullPtrErr One of pointers is NULL
  3619. //
  3620. // Arguments:
  3621. // pState Pointer to structure to free
  3622. */
  3623. IPPAPI(IppStatus, ippiInpaintFree_8u_C1R, (IppiInpaintState_8u_C1R* pState))
  3624. IPPAPI(IppStatus, ippiInpaintFree_8u_C3R, (IppiInpaintState_8u_C3R* pState))
  3625. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3626. // Name: ippiInpaint_8u_C1R, ippiInpaint_8u_C3R
  3627. //
  3628. // Purpose: restores damaged image area by direct inpainting
  3629. //
  3630. // Return:
  3631. // ippStsNoErr Ok
  3632. // ippStsNullPtrErr One of pointers is NULL
  3633. // ippStsSizeErr The width of the image are less or equal zero or different from initalloc
  3634. // ippStsStepErr The steps in images are too small
  3635. //
  3636. // Parameters:
  3637. // pSrc Source image
  3638. // srcStep Its step
  3639. // pDst Destination image
  3640. // dstStep Its step
  3641. // roiSize The image ROI size
  3642. // pState Pointer to inpainting structure
  3643. */
  3644. IPPAPI(IppStatus, ippiInpaint_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  3645. IppiSize roiSize, IppiInpaintState_8u_C1R* pState))
  3646. IPPAPI(IppStatus, ippiInpaint_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  3647. IppiSize roiSize, IppiInpaintState_8u_C1R* pState))
  3648. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3649. // Name: ippiSegmentGradientGetBufferSize_8u_C1R
  3650. // ippiSegmentGradientGetBufferSize_8u_C3R
  3651. //
  3652. // Purpose: Get size of external buffer.
  3653. //
  3654. // Return:
  3655. // ippStsNoErr Ok
  3656. // ippStsNullPtrErr One of pointers is NULL
  3657. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3658. //
  3659. // Parameters:
  3660. // roiSize The image ROI size
  3661. // pBufSize The pointer to the buffer size
  3662. */
  3663. IPPAPI(IppStatus, ippiSegmentGradientGetBufferSize_8u_C1R, (IppiSize roiSize, int* pBufSize))
  3664. IPPAPI(IppStatus, ippiSegmentGradientGetBufferSize_8u_C3R, (IppiSize roiSize, int* pBufSize))
  3665. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3666. // Name: ippiSegmentGradient_8u_C1R, ippiSegmentGradient_8u_C3R
  3667. //
  3668. // Purpose: Draw bounds between image segments
  3669. //
  3670. // Return:
  3671. // ippStsNoErr Ok
  3672. // ippStsNullPtrErr One of pointers is NULL
  3673. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3674. // ippStsStepErr The steps in images are too small
  3675. //
  3676. // Parameters:
  3677. // pSrc Source image
  3678. // srcStep Its step
  3679. // pMarker Source and destination marker image
  3680. // markerStep Its step
  3681. // roiSize Image ROI size
  3682. // norm Type of norm to form the mask for maximum search:
  3683. // rippiNormInf Infinity norm (8-connectivity, 3x3 rectangular mask).
  3684. // rippiNormL1 L1 norm (4-connectivity, 3x3 cross mask).
  3685. // flag Flags
  3686. // IPP_SEGMENT_BORDER_4 Draw L1 segment borders.
  3687. // IPP_SEGMENT_BORDER_8 Draw Linf segment borders.
  3688. // pBuffer Pointer to working buffer
  3689. */
  3690. IPPAPI(IppStatus, ippiSegmentGradient_8u_C3IR, (const Ipp8u* pSrc, int srcStep, Ipp8u* pMarker,
  3691. int markerStep, IppiSize roiSize, IppiNorm norm, int flags, Ipp8u* pBuffer))
  3692. IPPAPI(IppStatus, ippiSegmentGradient_8u_C1IR, (const Ipp8u* pSrc, int srcStep, Ipp8u* pMarker,
  3693. int markerStep, IppiSize roiSize, IppiNorm norm, int flags, Ipp8u* pBuffer))
  3694. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3695. // Name: ippiSegmentWatershedGetBufferSize_8u_C1R, ippiSegmentWatershedGetBufferSize_8u16u_C1R
  3696. //
  3697. // Purpose: Get size of external buffer.
  3698. //
  3699. // Return:
  3700. // ippStsNoErr Ok
  3701. // ippStsNullPtrErr One of pointers is NULL
  3702. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3703. //
  3704. // Parameters:
  3705. // roiSize The image ROI size
  3706. // pBufferSize The pointer to the buffer size
  3707. */
  3708. IPPAPI(IppStatus, ippiSegmentWatershedGetBufferSize_8u_C1R, (IppiSize roiSize, int *pBufSize))
  3709. IPPAPI(IppStatus, ippiSegmentWatershedGetBufferSize_8u16u_C1R, (IppiSize roiSize, int *pBufSize))
  3710. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3711. // Name: ippiSegmentWatershed_8u_C1IR, ippiSegmentWatershed_8u16u_C1IR
  3712. //
  3713. // Purpose: Draw bounds between image segments
  3714. //
  3715. // Return:
  3716. // ippStsNoErr Ok
  3717. // ippStsNullPtrErr One of pointers is NULL
  3718. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3719. // ippStsStepErr The steps in images are too small
  3720. //
  3721. // Parameters:
  3722. // pSrc Source image
  3723. // srcStep Its step
  3724. // pMarker Source and destination marker image
  3725. // markerStep Its step
  3726. // roiSize Image ROI size
  3727. // norm Type of norm to form the mask for maximum search:
  3728. // rippiNormInf Infinity norm (8-connectivity, 3x3 rectangular mask).
  3729. // rippiNormL1 L1 norm (4-connectivity, 3x3 cross mask).
  3730. // rippiNormL2 approximation of L2 norm (8-connectivity, 3x3 mask 11,15).
  3731. // rippiNormFM Fast marching distance (4-connectivity).
  3732. // flag Flags
  3733. // IPP_SEGMENT_QUEUE Via priority queue.
  3734. // IPP_SEGMENT_DISTANCE Via distance transform.
  3735. // IPP_SEGMENT_BORDER_4 Draw L1 segment borders.
  3736. // IPP_SEGMENT_BORDER_8 Draw Linf segment borders.
  3737. // pBuffer Pointer to working buffer
  3738. */
  3739. IPPAPI(IppStatus, ippiSegmentWatershed_8u_C1IR, (const Ipp8u* pSrc, int srcStep, Ipp8u* pMarker, int markerStep, IppiSize roiSize,
  3740. IppiNorm norm, int flag, Ipp8u* pBuffer))
  3741. IPPAPI(IppStatus, ippiSegmentWatershed_8u16u_C1IR, (const Ipp8u* pSrc, int srcStep, Ipp16u* pMarker, int markerStep, IppiSize roiSize,
  3742. IppiNorm norm, int flag, Ipp8u* pBuffer))
  3743. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3744. // Name: ippiBoundSegments_8u_C1IR, ippiBoundSegments_16u_C1IR
  3745. //
  3746. // Purpose: Draw bounds between image segments
  3747. //
  3748. // Return:
  3749. // ippStsNoErr Ok
  3750. // ippStsNullPtrErr One of pointers is NULL
  3751. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3752. // ippStsStepErr The steps in images are too small
  3753. //
  3754. // Parameters:
  3755. // pMarker Source and destination marker image
  3756. // markerStep Its step
  3757. // roiSize Image ROI size
  3758. // norm Type of norm to form the mask for maximum search:
  3759. // ippiNormInf Infinity norm (8-connectivity, 3x3 rectangular mask).
  3760. // ippiNormL1 L1 norm (4-connectivity, 3x3 cross mask).
  3761. */
  3762. IPPAPI(IppStatus, ippiBoundSegments_8u_C1IR, (Ipp8u* pMarker, int markerStep, IppiSize roiSize,
  3763. Ipp8u val, IppiNorm norm))
  3764. IPPAPI(IppStatus, ippiBoundSegments_16u_C1IR, (Ipp16u* pMarker, int markerStep, IppiSize roiSize,
  3765. Ipp16u val, IppiNorm norm))
  3766. /*F///////////////////////////////////////////////////////////////////////////////////////
  3767. // Name: ippiLabelMarkersGetBufferSize_8u_C1R, ippiLabelMarkersGetBufferSize_16u_C1R
  3768. //
  3769. // Purpose: The functions calculate size of temporary buffer, required to run
  3770. // marker labeling function
  3771. //
  3772. // Return:
  3773. // ippStsNoErr Ok
  3774. // ippStsNullPtrErr One of pointers is NULL
  3775. // ippStsSizeErr The width or height of images is less or equal zero
  3776. //
  3777. // Parameters:
  3778. // roiSize ROI size
  3779. // pBufSize Temporary buffer size
  3780. //F*/
  3781. IPPAPI(IppStatus, ippiLabelMarkersGetBufferSize_8u_C1R, (IppiSize roiSize, int* pBufSize))
  3782. IPPAPI(IppStatus, ippiLabelMarkersGetBufferSize_16u_C1R, (IppiSize roiSize, int* pBufSize))
  3783. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  3784. // Name: ippiLabelMarkers_8u_C1IR, ippiLabelMarkers_16u_C1IR
  3785. //
  3786. // Purpose: Labels connected non-zero components with different label values
  3787. //
  3788. // Return:
  3789. // ippStsNoErr Ok
  3790. // ippStsNullPtrErr One of pointers is NULL
  3791. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  3792. // ippStsStepErr The steps in images are too small
  3793. //
  3794. // Parameters:
  3795. // pMarker Source and destination marker image
  3796. // markerStep Its step
  3797. // roiSize Image ROI size
  3798. // minLabel Minimal label value > 0
  3799. // maxLabel Maximal label value < 255
  3800. // norm Type of norm to form the mask for maximum search:
  3801. // ippiNormL1 L1 norm (4-connectivity, 3x3 cross mask).
  3802. // ippiNormInf Infinity norm (8-connectivity, 3x3 rectangular mask).
  3803. // pNumber Pointer to number of markers
  3804. // pBuffer Pointer to working buffer
  3805. */
  3806. IPPAPI(IppStatus, ippiLabelMarkers_8u_C1IR, (Ipp8u* pMarker, int markerStep, IppiSize roiSize,
  3807. int minLabel, int maxLabel, IppiNorm norm, int *pNumber, Ipp8u* pBuffer))
  3808. IPPAPI(IppStatus, ippiLabelMarkers_16u_C1IR, (Ipp16u* pMarker, int markerStep, IppiSize roiSize,
  3809. int minLabel, int maxLabel, IppiNorm norm, int *pNumber, Ipp8u* pBuffer))
  3810. /* ///////////////////////////////////////////////////////////////////////////////////////
  3811. // Name: ippibFastArctan
  3812. //
  3813. // Purpose: Given "X" and "Y" images, calculates "angle" image
  3814. // (i.e. atan(y/x)). Resultant angles are in degrees.
  3815. //
  3816. // Return:
  3817. // ippStsNoErr Ok
  3818. // ippStsNullPtrErr One of pointers is NULL
  3819. // ippStsSizeErr The length is less or equal zero
  3820. //
  3821. // Arguments:
  3822. // pSrcY Pointer to source "Y" image
  3823. // pSrcX Pointer to source "X" image
  3824. // pDst Pointer to "angle" image
  3825. // length Vector length
  3826. //
  3827. // Note:
  3828. // For current version angle precision is ~0.1 degree
  3829. */
  3830. IPPAPI(IppStatus, ippibFastArctan_32f, ( const Ipp32f* pSrcY, const Ipp32f* pSrcX,
  3831. Ipp32f* pDst, int length ))
  3832. /* ///////////////////////////////////////////////////////////////////////////////////////
  3833. // Name: ippiForegroundHistogramInitAlloc
  3834. //
  3835. // Purpose: Allocates and initializes a state structure for
  3836. // foreground/background segmentation using histograms
  3837. //
  3838. // Return:
  3839. // ippStsNoErr Ok
  3840. // ippStsNullPtrErr One of pointers is NULL
  3841. // ippStsSizeErr The width of the image is less or equal zero
  3842. // ippStsStepErr The steps in images are too small
  3843. // ippStsBadArgErr Wrong value of pModel field
  3844. //
  3845. // Arguments:
  3846. // pSrc Source image
  3847. // srcStep Step in source image
  3848. // roiSize Source image ROI size.
  3849. // pModel Pointer to the structure of the histogram statistical model.
  3850. // pState Pointer to the pointer to the segmentation state structure.
  3851. */
  3852. IPPAPI(IppStatus, ippiForegroundHistogramInitAlloc_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  3853. IppiSize roiSize, IppFGHistogramModel* pModel, IppFGHistogramState_8u_C1R** pState))
  3854. IPPAPI(IppStatus, ippiForegroundHistogramInitAlloc_8u_C3R, ( const Ipp8u* pSrc, int srcStep,
  3855. IppiSize roiSize, IppFGHistogramModel* pModel, IppFGHistogramState_8u_C3R** pState))
  3856. /* ///////////////////////////////////////////////////////////////////////////////////////
  3857. // Name: ippiForegroundHistogramFree
  3858. //
  3859. // Purpose: Frees memory allocated for the foreground/background segmentation structure
  3860. //
  3861. // Return:
  3862. // ippStsNoErr Ok
  3863. // ippStsNullPtrErr One of pointers is NULL
  3864. //
  3865. // Arguments:
  3866. // pState Pointer to the structure to be freed
  3867. */
  3868. IPPAPI(IppStatus, ippiForegroundHistogramFree_8u_C1R, (IppFGHistogramState_8u_C1R* pState))
  3869. IPPAPI(IppStatus, ippiForegroundHistogramFree_8u_C3R, (IppFGHistogramState_8u_C3R* pState))
  3870. /* ///////////////////////////////////////////////////////////////////////////////////////
  3871. // Name: ippiForegroundHistogram
  3872. //
  3873. // Purpose: Calculates foreground mask using histograms
  3874. //
  3875. // Return:
  3876. // ippStsNoErr Ok
  3877. // ippStsNullPtrErr One of pointers is NULL
  3878. // ippStsSizeErr The width of the image is less or equal zero
  3879. // ippStsStepErr The steps in images are too small
  3880. //
  3881. // Arguments:
  3882. // pSrc Source image
  3883. // srcStep Step in source image
  3884. // pMask Pointer to mask
  3885. // maskStep Step in the mask image
  3886. // roiSize Source image ROI size.
  3887. // pState Pointer to the pointer to the segmentation state structure.
  3888. */
  3889. IPPAPI(IppStatus, ippiForegroundHistogram_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3890. Ipp8u* pMask, int maskStep, IppiSize roiSize, IppFGHistogramState_8u_C1R* pState))
  3891. IPPAPI(IppStatus, ippiForegroundHistogram_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3892. Ipp8u* pMask, int maskStep, IppiSize roiSize, IppFGHistogramState_8u_C3R* pState))
  3893. /* ///////////////////////////////////////////////////////////////////////////////////////
  3894. // Name: ippiForegroundHistogramUpdate
  3895. //
  3896. // Purpose: Updates histogram statistical model for foreground segmentation
  3897. //
  3898. // Return:
  3899. // ippStsNoErr Ok
  3900. // ippStsNullPtrErr One of pointers is NULL
  3901. // ippStsSizeErr The width of the image is less or equal zero
  3902. // ippStsStepErr The steps in images are too small
  3903. //
  3904. // Arguments:
  3905. // pSrc Source image
  3906. // srcStep Step in source image
  3907. // pMask Pointer to mask
  3908. // maskStep Step in the mask image
  3909. // pRef Pointer to reference image
  3910. // refStep Step in the reference image
  3911. // roiSize Source image ROI size.
  3912. // pState Pointer to the pointer to the segmentation state structure.
  3913. */
  3914. IPPAPI(IppStatus, ippiForegroundHistogramUpdate_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3915. Ipp8u* pMask, int maskStep, Ipp8u* pRef, int refStep, IppiSize roiSize,
  3916. IppFGHistogramState_8u_C1R* pState))
  3917. IPPAPI(IppStatus, ippiForegroundHistogramUpdate_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3918. Ipp8u* pMask, int maskStep, Ipp8u* pRef, int refStep, IppiSize roiSize,
  3919. IppFGHistogramState_8u_C3R* pState))
  3920. /* ///////////////////////////////////////////////////////////////////////////////////////
  3921. // Name: ippiForegroundGaussianInitAlloc
  3922. //
  3923. // Purpose: Allocates and initializes a state structure for
  3924. // foreground/background segmentation using Gaussian mixtures
  3925. //
  3926. // Return:
  3927. // ippStsNoErr Ok
  3928. // ippStsNullPtrErr One of pointers is NULL
  3929. // ippStsSizeErr The width of the image is less or equal zero
  3930. // ippStsStepErr The steps in images are too small
  3931. //
  3932. // Arguments:
  3933. // pSrc Source image
  3934. // srcStep Step in source image
  3935. // roiSize Source image ROI size.
  3936. // pModel Pointer to the structure of the gaussian model.
  3937. // pState Pointer to the pointer to the segmentation state structure.
  3938. */
  3939. IPPAPI(IppStatus, ippiForegroundGaussianInitAlloc_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  3940. IppiSize roiSize, IppFGGaussianModel* pModel, IppFGGaussianState_8u_C1R** pState))
  3941. IPPAPI(IppStatus, ippiForegroundGaussianInitAlloc_8u_C3R, ( const Ipp8u* pSrc, int srcStep,
  3942. IppiSize roiSize, IppFGGaussianModel* pModel, IppFGGaussianState_8u_C3R** pState))
  3943. /* ///////////////////////////////////////////////////////////////////////////////////////
  3944. // Name: ippiForegroundGaussianFree
  3945. //
  3946. // Purpose: Frees memory allocated for the foreground/background segmentation structure
  3947. //
  3948. // Return:
  3949. // ippStsNoErr Ok
  3950. // ippStsNullPtrErr One of pointers is NULL
  3951. //
  3952. // Arguments:
  3953. // pState Pointer to the structure to be freed
  3954. */
  3955. IPPAPI(IppStatus, ippiForegroundGaussianFree_8u_C1R, (IppFGGaussianState_8u_C1R* pState))
  3956. IPPAPI(IppStatus, ippiForegroundGaussianFree_8u_C3R, (IppFGGaussianState_8u_C3R* pState))
  3957. /* ///////////////////////////////////////////////////////////////////////////////////////
  3958. // Name: ippiForegroundGaussian
  3959. //
  3960. // Purpose: Calculates foreground mask using Gaussians
  3961. //
  3962. // Return:
  3963. // ippStsNoErr Ok
  3964. // ippStsNullPtrErr One of pointers is NULL
  3965. // ippStsSizeErr The width of the image is less or equal zero
  3966. // ippStsStepErr The steps in images are too small
  3967. //
  3968. // Arguments:
  3969. // pSrc Source image
  3970. // srcStep Step in source image
  3971. // pRef Pointer to reference image
  3972. // refStep Step in the reference image
  3973. // pDst Pointer to destination image
  3974. // dstStep Step in the destination image
  3975. // roiSize Source image ROI size.
  3976. // pState Pointer to the pointer to the segmentation state structure.
  3977. */
  3978. IPPAPI(IppStatus, ippiForegroundGaussian_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  3979. Ipp8u* pRef, int refStep, Ipp8u* pDst, int dstStep,
  3980. IppiSize roiSize, IppFGGaussianState_8u_C1R* pState))
  3981. IPPAPI(IppStatus, ippiForegroundGaussian_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  3982. Ipp8u* pRef, int refStep, Ipp8u* pDst, int dstStep,
  3983. IppiSize roiSize, IppFGGaussianState_8u_C3R* pState))
  3984. /* ///////////////////////////////////////////////////////////////////////////////////////
  3985. // Name: ippiFilterGaussGetBufferSize
  3986. //
  3987. // Purpose: Computes the size of the working buffer for the Gaussian filter
  3988. //
  3989. // Return:
  3990. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  3991. // ippStsNullPtrErr One of the pointers is NULL.
  3992. // ippStsSizeErr roiSize has a field with zero or negative value .
  3993. // ippStsBadArgErr KernelSize is odd or is less than 3.
  3994. //
  3995. // Arguments:
  3996. // roiSize Maximal size of the image ROI in pixels.
  3997. // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3).
  3998. // pBufferSize Pointer to the computed size of the buffer:
  3999. */
  4000. IPPAPI(IppStatus, ippiFilterGaussGetBufferSize_32f_C1R,(IppiSize roiSize, int KernelSize,
  4001. int* pBufferSize))
  4002. /* ///////////////////////////////////////////////////////////////////////////////////////
  4003. // Name: ippiFilterGaussBorder
  4004. //
  4005. // Purpose: Applies Gaussian filter with borders
  4006. //
  4007. // Return:
  4008. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  4009. // ippStsNullPtrErr One of the specified pointers is NULL.
  4010. // ippStsSizeErr roiSize has a field with zero or negative value.
  4011. // ippStsStepErr srcStep is less than roiSize.width * <pixelSize>,
  4012. // or dstStep is less than roiSize.width * <pixelSize>.
  4013. // ippStsNotEvenStepErr One of the step values is not divisible by 4 for floating-point images.
  4014. // ippStsBadArgErr kernelSize is less than 3 or sigma is less or equal than 0.
  4015. //
  4016. // Arguments:
  4017. // pSrc Pointer to the source image ROI.
  4018. // srcStep Distance in bytes between starts of consecutive lines in the source image.
  4019. // pDst Pointer to the destination image ROI.
  4020. // dstStep Distance in bytes between starts of consecutive lines in the destination image.
  4021. // roiSize Size of the source and destination image ROI.
  4022. // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3).
  4023. // sigma Standard deviation of the Gaussian kernel.
  4024. // pBuffer Pointer to the working buffer.
  4025. */
  4026. IPPAPI(IppStatus, ippiFilterGaussBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,Ipp32f* pDst, int dstStep,
  4027. IppiSize roiSize,int KernelSize,Ipp32f sigma,
  4028. IppiBorderType borderType, Ipp32f borderValue,
  4029. Ipp8u* pBuffer))
  4030. /* ///////////////////////////////////////////////////////////////////////////////////////
  4031. // Name: ippiFindPeaks3x3GetBufferSize
  4032. //
  4033. // Purpose: Computes the size of the working buffer for the peak search
  4034. //
  4035. // Return:
  4036. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  4037. // ippStsNullPtrErr Indicates an error condition if the pointer pBufferSize is NULL.
  4038. // ippStsSizeErr Indicates an error condition if maskSize has a field with zero
  4039. // or negative value, or if roiWidth is less than 1.
  4040. //
  4041. // Arguments:
  4042. // roiWidth Maximal image width (in pixels).
  4043. // pBufferSize Pointer to the computed size of the buffer.
  4044. */
  4045. IPPAPI(IppStatus, ippiFindPeaks3x3GetBufferSize_32f_C1R,(int roiWidth, int* pBufferSize))
  4046. IPPAPI(IppStatus, ippiFindPeaks3x3GetBufferSize_32s_C1R,(int roiWidth, int* pBufferSize))
  4047. /* ///////////////////////////////////////////////////////////////////////////////////////
  4048. // Name: ippiFindPeaks3x3
  4049. //
  4050. // Purpose: Finds coordinates of peaks (maximums or minimums) with absolute value
  4051. // exceeding threshold value
  4052. //
  4053. // Return:
  4054. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  4055. // ippStsNullPtrErr One of the specified pointers is NULL.
  4056. // ippStsSizeErr Indicates an error condition if roiSize has a field
  4057. // with zero or negative value or if maxPeakCount is less
  4058. // than or equal to zero, or if Border is less than 1 or
  4059. // greater than 0.5* roiSize.width or. greater than 0.5* roiSize.hight
  4060. // ippStsStepErr Indicates an error condition if srcStep is less than roiSize.width * <pixelSize>
  4061. // ippStsNotEvenStepErr Indicates an error condition if one of the step values is
  4062. // not divisible by 4 for floating-point or 32-bit integer images.
  4063. // ippStsBadArgErr Indicates an error condition if norm value is wrong.
  4064. //
  4065. // Arguments:
  4066. // pSrc Pointer to the source image ROI.
  4067. // srcStep Distance in bytes between starts of consecutive lines in the source image.
  4068. // roiSize Size of the image ROI in pixels.
  4069. // threshold Threshold value.
  4070. // pPeak Pointer to the maximum coordinates [maxPeakCount].
  4071. // maxPeakCount Maximal number of peaks.
  4072. // pPeakCount Number of detected peaks.
  4073. // norm Type of norm to form the mask for maximum search:
  4074. // ippiNormInf Infinity norm (8-connectivity, 3x3 rectangular mask).
  4075. // ippiNormL1 L1 norm (4-connectivity, 3x3 cross mask).
  4076. // Border Border value, only pixel with distance from the edge of the image
  4077. // greater than Border are processed.
  4078. // pBuffer Pointer to the working buffer.
  4079. */
  4080. IPPAPI(IppStatus, ippiFindPeaks3x3_32f_C1R,(const Ipp32f* pSrc, int srcStep, IppiSize roiSize,
  4081. Ipp32f threshold, IppiPoint* pPeak, int maxPeakCount,
  4082. int* pPeakCount, IppiNorm norm, int Border, Ipp8u* pBuffer))
  4083. IPPAPI(IppStatus, ippiFindPeaks3x3_32s_C1R,(const Ipp32s* pSrc, int srcStep, IppiSize roiSize,
  4084. Ipp32s threshold, IppiPoint* pPeak, int maxPeakCount,
  4085. int* pPeakCount, IppiNorm norm, int Border, Ipp8u* pBuffer))
  4086. /* ///////////////////////////////////////////////////////////////////////////////////////
  4087. // Name: ippiHoughLineGetSize_8u_C1R()
  4088. //
  4089. //
  4090. // Purpose: Calculate the size of temporary buffer for ippiHoughLine_8u32f_C1R function.
  4091. //
  4092. // Arguments:
  4093. // roiSize The size of source ROI.
  4094. // delta Discretization step, delta.rho - distance resolution in pixels, delta.theta - angle resolution in radians
  4095. // maxLineCount The size of detected line buffer
  4096. // pBufSize Pointer to the computed size of the temporary buffer
  4097. //
  4098. // Return:
  4099. // ippStsNoErr Ok
  4100. // ippStsNullPtrErr pBufSize is NULL
  4101. // ippStsSizeErr The roiSize or delta has a field with zero or negative value
  4102. // ippStsOverflow The size of buffer too big. Overflow.
  4103. //
  4104. */
  4105. IPPAPI(IppStatus, ippiHoughLineGetSize_8u_C1R, (IppiSize roiSize, IppPointPolar delta, int maxLineCount, int* pBufSize))
  4106. /* ///////////////////////////////////////////////////////////////////////////////////////
  4107. // Name: ippiHoughLine_8u32f_C1R()
  4108. //
  4109. //
  4110. // Purpose: Perform Hough transform algorithm
  4111. //
  4112. //
  4113. // Arguments:
  4114. // pSrc Pointer to the source image ROI
  4115. // srcStep Distance in bytes between starts of consecutive lines in the source image
  4116. // roiSize The size of source ROI.
  4117. // delta Discretization step, delta.rho - distance resolution in pixels, delta.theta - angle resolution in radians
  4118. // threshold Threshold for a line is detected (if accumulator value > threshold)
  4119. // pLine Pointer to output array of detected lines
  4120. // maxLineCount Size of output array pLine in elements
  4121. // pLineCount Number of detected lines. If founded more than maxLineCount lines than function returns "ippStsDstSizeLessExpected" status
  4122. // pBuffer Pointer to the pre-allocated temporary buffer
  4123. //
  4124. // Return:
  4125. // ippStsNoErr Ok
  4126. // ippStsNullPtrErr pSrc or pLine or pLineCount or pBuffer is NULL
  4127. // ippStsStepErr srcStep is not valid
  4128. // ippStsSizeErr roiSize has a field with zero or negative value or maxLineCount is zero or negative
  4129. // ippStsBadArgErr threshold or is less than or equal to zero or delta.rho less 0 or more ROI width+height or delta.theta less 0 or more PI
  4130. // ippStsDstSizeLessExpected Ok, but lines detected more than maxLineCount
  4131. //
  4132. */
  4133. IPPAPI(IppStatus, ippiHoughLine_8u32f_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, IppPointPolar delta, int threshold,
  4134. IppPointPolar* pLine, int maxLineCount, int* pLineCount, Ipp8u* pBuffer))
  4135. /*
  4136. // Name: ippiHoughLine_Region_8u32f_C1R
  4137. //
  4138. //
  4139. // Purpose: Perform Hough transform algorithm in defined region
  4140. //
  4141. //
  4142. // Arguments:
  4143. // pSrc Pointer to the source image ROI
  4144. // srcStep Distance in bytes between starts of consecutive lines in the source image
  4145. // roiSize The size of source ROI.
  4146. // pLine Pointer to output array of detected lines
  4147. // dstRoi Bottom left and top right corners of searched lines. All founded lines must be
  4148. // in this area. (line[n].rho>=dstRoi[0].rho && line[n].theta>=dstRoi[0].theta &&
  4149. // line[n].rho<=dstRoi[1].rho && line[n].theta<=dstRoi[1].theta)
  4150. // maxLineCount Size of output array pLine in elements
  4151. // pLineCount Number of detected lines. If founded more than maxLineCount lines than function returns "ippStsDstSizeLessExpected" status
  4152. // delta Discretization step, delta.rho - distance resolution in pixels, delta.theta - angle resolution in radians
  4153. // threshold Threshold for a line is detected (if accumulator value > threshold)
  4154. // pBuffer Pointer to the pre-allocated temporary buffer
  4155. //
  4156. // Return:
  4157. // ippStsNoErr Ok
  4158. // ippStsNullPtrErr pSrc or pLine or pLineCount or pBuffer is NULL
  4159. // ippStsStepErr srcStep is not valid
  4160. // ippStsSizeErr roiSize has a field with zero or negative value or maxLineCount is zero or negative
  4161. // ippStsBadArgErr threshold or is less than or equal to zero or delta.rho less 0 or more ROI width+height or
  4162. // delta.theta less 0 or more PI or dstRoi[0].rho more dstRoi[1].rho or dstRoi[0].theta more dstRoi[1].theta
  4163. // ippStsDstSizeLessExpected Ok, but lines detected more than maxLineCount
  4164. //
  4165. */
  4166. IPPAPI(IppStatus, ippiHoughLine_Region_8u32f_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize,
  4167. IppPointPolar* pLine, IppPointPolar dstRoi[2], int maxLineCount, int* pLineCount, IppPointPolar delta, int threshold, Ipp8u* pBuffer))
  4168. #if !defined( _OWN_BLDPCS )
  4169. typedef struct _IppiSRHNSpec_PSF3x3 IppiSRHNSpec_PSF3x3;
  4170. typedef struct _IppiSRHNSpec_PSF2x2 IppiSRHNSpec_PSF2x2;
  4171. #endif
  4172. /* ///////////////////////////////////////////////////////////////////////////
  4173. // Name: ippiSRHNInitAlloc_PSF3x3,
  4174. // ippiSRHNInitAlloc_PSF2x2
  4175. //
  4176. // Purpose: Allocate and initialize the internal PSF structures.
  4177. //
  4178. // Return:
  4179. // ippStsNoErr Ok
  4180. // ippStsNullPtrErr Some of the pointers are NULL
  4181. // ippStsSizeErr The table size is incorrect
  4182. // Arguments:
  4183. // ppPSF Double pointer to the created PSF structure
  4184. // pcTab Input table with coefficients
  4185. // tabSize The number of elements in cTab
  4186. */
  4187. IPPAPI(IppStatus, ippiSRHNInitAlloc_PSF3x3, (IppiSRHNSpec_PSF3x3** ppPSF,
  4188. const Ipp32f pcTab[][9], int tabSize))
  4189. IPPAPI(IppStatus, ippiSRHNInitAlloc_PSF2x2, (IppiSRHNSpec_PSF2x2** ppPSF,
  4190. const Ipp32f pcTab[][4], int tabSize))
  4191. /* ///////////////////////////////////////////////////////////////////////////
  4192. // Name: ippiSRHNFree_PSF3x3,
  4193. // ippiSRHNFree_PSF2x2
  4194. //
  4195. // Purpose: Deallocate PSF structures
  4196. //
  4197. // Return:
  4198. // ippStsNoErr Ok
  4199. // ippStsNullPtrErr The PSF pointer is NULL
  4200. // Arguments:
  4201. // pPSF Pointer to the PSF structure
  4202. */
  4203. IPPAPI(IppStatus, ippiSRHNFree_PSF3x3, (IppiSRHNSpec_PSF3x3* pPSF))
  4204. IPPAPI(IppStatus, ippiSRHNFree_PSF2x2, (IppiSRHNSpec_PSF2x2* pPSF))
  4205. /* ///////////////////////////////////////////////////////////////////////////
  4206. // Name: ippiSRHNCalcResidual_PSF3x3_8u32f_C1R,
  4207. // ippiSRHNCalcResidual_PSF2x2_8u32f_C1R,
  4208. // ippiSRHNCalcResidual_PSF3x3_16u32f_C1R,
  4209. // ippiSRHNCalcResidual_PSF2x2_16u32f_C1R,
  4210. //
  4211. // Purpose: Compute residuals for likelihood part of target function
  4212. // or its gradient.
  4213. //
  4214. // Return:
  4215. // ippStsNoErr Ok
  4216. // ippStsNullPtrErr Some of the pointers are NULL's
  4217. // ippStsSizeErr The length is negative
  4218. // ippStsStepErr hiResStep is too small or
  4219. // is not divisible by sizeof(pHiRes[0])
  4220. //
  4221. // Arguments:
  4222. // pHiRes Pointer to high-resolution image
  4223. // pHiResStep High-resolution image step
  4224. // pLowRes Array of pixel values from low-resolution images
  4225. // pOfs Array of offsets of 3x3 areas
  4226. // inside high-resolution image
  4227. // pCoeff Array of indices in cTab
  4228. // pResidual The output array
  4229. // len Length of lowRes, ofs, coeff and residual arrays
  4230. // pPSF Previously created PSF table for 3x3 or 2x2 case
  4231. */
  4232. IPPAPI(IppStatus, ippiSRHNCalcResidual_PSF3x3_8u32f_C1R, (
  4233. const Ipp32f* pHiRes, int hiResStep, const Ipp8u* pLowRes,
  4234. const Ipp32s* pOfs, const Ipp16u* pCoeff, Ipp32f* pResidual,
  4235. int len, const IppiSRHNSpec_PSF3x3* pPSF))
  4236. IPPAPI(IppStatus, ippiSRHNCalcResidual_PSF2x2_8u32f_C1R, (
  4237. const Ipp32f* pHiRes, int hiResStep, const Ipp8u* pLowRes,
  4238. const Ipp32s* pOfs, const Ipp16u* pCoeff, Ipp32f* pResidual,
  4239. int len, const IppiSRHNSpec_PSF2x2* pPSF))
  4240. IPPAPI(IppStatus, ippiSRHNCalcResidual_PSF3x3_16u32f_C1R, (
  4241. const Ipp32f* pHiRes, int hiResStep, const Ipp16u* pLowRes,
  4242. const Ipp32s* pOfs, const Ipp16u* pCoeff, Ipp32f* pResidual,
  4243. int len, const IppiSRHNSpec_PSF3x3* pPSF))
  4244. IPPAPI(IppStatus, ippiSRHNCalcResidual_PSF2x2_16u32f_C1R, (
  4245. const Ipp32f* pHiRes, int hiResStep, const Ipp16u* pLowRes,
  4246. const Ipp32s* pOfs, const Ipp16u* pCoeff, Ipp32f* pResidual,
  4247. int len, const IppiSRHNSpec_PSF2x2* pPSF))
  4248. /* ///////////////////////////////////////////////////////////////////////////
  4249. // Name: ippiSRHNUpdateGradient_PSF3x3_32f_C1R,
  4250. // ippiSRHNUpdateGradient_PSF2x2_32f_C1R
  4251. //
  4252. // Purpose: Update likelihood part of the gradient
  4253. //
  4254. // Return:
  4255. // ippStsNoErr Ok
  4256. // ippStsNullPtrErr Some of the pointers are NULL's
  4257. // ippStsSizeErr Length is negative
  4258. // ippStsStepErr gradStep is too small or is not divisible by
  4259. // sizeof(pGrad[0])
  4260. //
  4261. // Arguments:
  4262. // pGrad Pointer to gradient
  4263. // gradStep The gradient step
  4264. // pOfs Array of offsets of 3x3 or 2x2 areas
  4265. // inside high-resolution image
  4266. // pCoeff Array of indices in cTab
  4267. // pRob Array of computed robust function derivatives
  4268. // pWeight Array of indices in wTab
  4269. // len Length of ofs, coeff, errVal and weight arrays
  4270. // pwTab A table of confidence weights
  4271. // pPSF PSF structure
  4272. */
  4273. IPPAPI(IppStatus, ippiSRHNUpdateGradient_PSF3x3_32f_C1R, (
  4274. Ipp32f* pGrad, int gradStep, const Ipp32s* pOfs, const Ipp16u* pCoeff,
  4275. const Ipp32f* pRob, const Ipp8u* pWeight, int len, const Ipp32f* pwTab,
  4276. const IppiSRHNSpec_PSF3x3* pPSF))
  4277. IPPAPI(IppStatus, ippiSRHNUpdateGradient_PSF2x2_32f_C1R, (
  4278. Ipp32f* pGrad, int gradStep, const Ipp32s* pOfs, const Ipp16u* pCoeff,
  4279. const Ipp32f* pRob, const Ipp8u* pWeight, int len, const Ipp32f* pwTab,
  4280. const IppiSRHNSpec_PSF2x2* pPSF))
  4281. #if defined __cplusplus
  4282. }
  4283. #endif
  4284. #if defined (_IPP_STDCALL_CDECL)
  4285. #undef _IPP_STDCALL_CDECL
  4286. #define __stdcall __cdecl
  4287. #endif
  4288. #endif /* __IPPCV_H__ */
  4289. /* ////////////////////////// End of file "ippCV.h" ////////////////////////// */