Qualcomm FastCV Library
1.7.1
|
00001 #ifndef FASTCV_H 00002 #define FASTCV_H 00003 00109 //============================================================================== 00110 // Defines 00111 //============================================================================== 00112 00113 #ifdef __GNUC__ 00114 00115 #define FASTCV_ALIGN32( VAR ) (VAR) __attribute__ ((aligned(4))) 00116 00117 #define FASTCV_ALIGN64( VAR ) (VAR) __attribute__ ((aligned(8))) 00118 00119 #define FASTCV_ALIGN128( VAR ) (VAR) __attribute__ ((aligned(16))) 00120 #ifdef BUILDING_SO 00121 00122 #define FASTCV_API __attribute__ ((visibility ("default"))) 00123 #else 00124 00125 #define FASTCV_API 00126 #endif 00127 #else 00128 00129 #define FASTCV_ALIGN32( VAR ) __declspec(align(4)) (VAR) 00130 00131 #define FASTCV_ALIGN64( VAR ) __declspec(align(8)) (VAR) 00132 00133 #define FASTCV_ALIGN128( VAR ) __declspec(align(16)) (VAR) 00134 #ifdef BUILDING_DLL 00135 00136 #define FASTCV_API __declspec(dllexport) 00137 #else 00138 00139 #define FASTCV_API 00140 #endif 00141 #endif 00142 00143 //============================================================================== 00144 // Included modules 00145 //============================================================================== 00146 00147 #include <stddef.h> 00148 #include <stdint.h> 00149 typedef float float32_t; 00150 typedef double float64_t; 00151 00152 //============================================================================== 00153 // Declarations 00154 //============================================================================== 00155 00156 00157 //------------------------------------------------------------------------------ 00161 //------------------------------------------------------------------------------ 00162 typedef enum 00163 { 00166 FASTCV_OP_LOW_POWER = 0, 00167 00169 FASTCV_OP_PERFORMANCE = 1, 00170 00172 FASTCV_OP_CPU_OFFLOAD = 2, 00173 00175 FASTCV_OP_CPU_PERFORMANCE = 3, 00176 00178 FASTCV_OP_RESERVED = 0x80000000 00179 00180 } fcvOperationMode; 00181 00182 //------------------------------------------------------------------------------ 00185 //------------------------------------------------------------------------------ 00186 typedef enum 00187 { 00189 FASTCV_FLIP_HORIZ = 1, 00190 00192 FASTCV_FLIP_VERT = 2, 00193 00195 FASTCV_FLIP_BOTH = 3 00196 00197 } fcvFlipDir; 00198 00199 //------------------------------------------------------------------------------ 00202 //------------------------------------------------------------------------------ 00203 typedef enum 00204 { 00206 FASTCV_ROTATE_90 = 1, 00207 00209 FASTCV_ROTATE_180 = 2, 00210 00212 FASTCV_ROTATE_270 = 3 00213 00214 } fcvRotateDegree; 00215 00216 //------------------------------------------------------------------------------ 00219 //------------------------------------------------------------------------------ 00220 00221 typedef enum 00222 { 00224 FASTCV_INTERPOLATION_TYPE_NEAREST_NEIGHBOR = 0, 00225 00227 FASTCV_INTERPOLATION_TYPE_BILINEAR, 00228 00230 FASTCV_INTERPOLATION_TYPE_AREA 00231 00232 } fcvInterpolationType; 00233 00234 //------------------------------------------------------------------------------ 00237 //------------------------------------------------------------------------------ 00238 00239 typedef enum 00240 { 00245 FASTCV_CONVERT_POLICY_WRAP = 0, 00246 00250 FASTCV_CONVERT_POLICY_SATURATE 00251 00252 } fcvConvertPolicy; 00253 00254 //------------------------------------------------------------------------------ 00257 //------------------------------------------------------------------------------ 00258 00259 typedef enum 00260 { 00262 FASTCV_BORDER_UNDEFINED = 0, 00263 00265 FASTCV_BORDER_CONSTANT, 00266 00268 FASTCV_BORDER_REPLICATE 00269 00270 } fcvBorderType; 00271 00272 //------------------------------------------------------------------------------ 00275 //------------------------------------------------------------------------------ 00276 00277 typedef enum 00278 { 00280 FASTCV_NORM_L1, 00281 00283 FASTCV_NORM_L2 00284 00285 } fcvNormType; 00286 00287 //------------------------------------------------------------------------------ 00290 //------------------------------------------------------------------------------ 00291 00292 typedef enum 00293 { 00295 FASTCV_CHANNEL_0, 00296 00298 FASTCV_CHANNEL_1, 00299 00301 FASTCV_CHANNEL_2, 00302 00304 FASTCV_CHANNEL_3, 00305 00307 FASTCV_CHANNEL_R, 00308 00310 FASTCV_CHANNEL_G, 00311 00313 FASTCV_CHANNEL_B, 00314 00316 FASTCV_CHANNEL_A, 00317 00319 FASTCV_CHANNEL_Y, 00320 00322 FASTCV_CHANNEL_U, 00323 00325 FASTCV_CHANNEL_V 00326 00327 } fcvChannelType; 00328 00329 //------------------------------------------------------------------------------ 00332 //------------------------------------------------------------------------------ 00333 00334 typedef enum 00335 { 00337 FASTCV_RGB, 00338 00340 FASTCV_RGBX, 00341 00345 FASTCV_NV12, 00346 00350 FASTCV_NV21, 00351 00355 FASTCV_UYVY, 00356 00360 FASTCV_YUYV, 00361 00364 FASTCV_IYUV, 00365 00368 FASTCV_YUV4 00369 00370 } fcvImageFormat; 00371 00372 00373 //------------------------------------------------------------------------------ 00376 //------------------------------------------------------------------------------ 00377 typedef enum 00378 { 00380 FASTCV_SUCCESS = 0, 00381 00383 FASTCV_EFAIL, 00384 00386 FASTCV_EUNALIGNPARAM, 00387 00389 FASTCV_EBADPARAM, 00390 00392 FASTCV_EINVALSTATE, 00393 00395 FASTCV_ENORES, 00396 00398 FASTCV_EUNSUPPORTED, 00399 00401 FASTCV_EHWQDSP, 00402 00404 FASTCV_EHWGPU 00405 00406 } fcvStatus; 00407 00408 00409 //------------------------------------------------------------------------------ 00412 //------------------------------------------------------------------------------ 00413 typedef enum 00414 { 00415 FASTCV_SVM_LINEAR, 00416 FASTCV_SVM_POLY, 00417 FASTCV_SVM_RBF, 00418 FASTCV_SVM_SIGMOID 00419 } fcvSVMKernelType; 00420 00421 00422 //------------------------------------------------------------------------------ 00425 //------------------------------------------------------------------------------ 00426 typedef enum 00427 { 00428 FASTCV_PYRAMID_SCALE_HALF, 00429 FASTCV_PYRAMID_SCALE_ORB 00430 } fcvPyramidScale; 00431 00432 00433 //------------------------------------------------------------------------------ 00436 //------------------------------------------------------------------------------ 00437 typedef enum 00438 { 00440 FASTCV_TERM_CRITERIA_ITERATIONS, 00441 00443 FASTCV_TERM_CRITERIA_EPSILON, 00444 00446 FASTCV_TERM_CRITERIA_BOTH, 00447 } fcvTerminationCriteria; 00448 00449 //------------------------------------------------------------------------------ 00452 //------------------------------------------------------------------------------ 00453 typedef enum 00454 { 00456 FASTCV_HOG_NORM_REGULAR = 0, 00457 00459 FASTCV_HOG_NORM_RENORMALIZATION = 1, 00460 00462 FASTCV_HOG_NORM_FHOG = 2, 00463 00464 } fcvHOGNormMethod; 00465 00466 00467 //------------------------------------------------------------------------------ 00470 //------------------------------------------------------------------------------ 00471 typedef enum 00472 { 00475 FASTCV_UNBIASED_VARIANCE_ESTIMATOR = 0, 00476 00479 FASTCV_BIASED_VARIANCE_ESTIMATOR = 1, 00480 00481 } fcvVarianceEstimator; 00482 00483 //------------------------------------------------------------------------------ 00486 //------------------------------------------------------------------------------ 00487 typedef struct 00488 { 00491 const float32_t* from; 00492 /*~ FIELD fcvCorrespondences.from 00493 VARRAY LENGTH ( fcvCorrespondences.numCorrespondences * \ 00494 (fcvCorrespondences.fromStride ? fcvCorrespondences.fromStride : 3) ) */ 00495 00498 const float32_t* to; 00499 /*~ FIELD fcvCorrespondences.to 00500 VARRAY LENGTH ( fcvCorrespondences.numCorrespondences * \ 00501 (fcvCorrespondences.toStride ? fcvCorrespondences.toStride : 2) ) */ 00502 00507 uint32_t fromStride; 00508 00513 uint32_t toStride; 00514 00516 uint32_t numCorrespondences; 00517 00521 const uint16_t* indices; 00522 /*~ FIELD fcvCorrespondences.indices VARRAY LENGTH (fcvCorrespondences.numIndices) */ 00523 00525 uint32_t numIndices; 00526 } fcvCorrespondences; 00527 00528 00529 // ----------------------------------------------------------------------------- 00532 //------------------------------------------------------------------------------ 00533 00534 typedef struct 00535 { 00536 const void* ptr; 00537 unsigned int width; 00538 unsigned int height; 00539 } fcvPyramidLevel ; 00540 00541 // ----------------------------------------------------------------------------- 00544 //------------------------------------------------------------------------------ 00545 00546 typedef struct 00547 { 00548 const void* ptr; 00549 unsigned int width; 00550 unsigned int height; 00551 unsigned int stride; 00552 } fcvPyramidLevel_v2 ; 00553 00554 // ----------------------------------------------------------------------------- 00561 // ---------------------------------------------------------------------------- 00562 typedef struct fcvKDTreeNodef32 00563 { 00565 float32_t divVal; 00566 00570 int32_t divFeat; 00571 00574 int32_t childLeft; 00575 00578 int32_t childRight; 00579 00580 } fcvKDTreeNodef32; 00581 00582 // ----------------------------------------------------------------------------- 00587 // ----------------------------------------------------------------------------- 00588 typedef struct fcvKDTreeBranchf32 00589 { 00591 float32_t minDistSq; 00592 00594 int32_t topNode; 00595 00596 } fcvKDTreeBranchf32; 00597 00598 // ----------------------------------------------------------------------------- 00601 // ----------------------------------------------------------------------------- 00602 typedef struct fcvKDTreeDatas8f32 00603 { 00604 // info about the dataset for which KDTrees are constructed 00606 const int8_t *dataset; 00607 00609 const float32_t* invLen; 00610 00612 int32_t numVectors; 00613 00614 // info about trees 00616 int32_t* trees; 00617 00619 fcvKDTreeNodef32* nodes; 00620 00622 int32_t numNodes; 00623 00625 int32_t maxNumNodes; 00626 00627 // info used during lookups 00629 fcvKDTreeBranchf32* heap; 00630 00632 int32_t numBranches; 00633 00635 int32_t maxNumBranches; 00636 00640 int32_t* vind; 00641 00643 int32_t checkID; 00644 00646 int32_t numNNs; 00647 00648 } fcvKDTreeDatas8f32; 00649 00650 00651 // ----------------------------------------------------------------------------- 00659 // ---------------------------------------------------------------------------- 00660 typedef struct fcvKDTreeNodes32 00661 { 00663 int32_t divVal; 00664 00668 int32_t divFeat; 00669 00672 int32_t childLeft; 00673 00676 int32_t childRight; 00677 00678 } fcvKDTreeNodes32; 00679 00680 // ----------------------------------------------------------------------------- 00686 // ----------------------------------------------------------------------------- 00687 typedef struct fcvKDTreeBranchs32 00688 { 00690 int32_t minDistSq; 00691 00693 int32_t topNode; 00694 00695 } fcvKDTreeBranchs32; 00696 00697 // ----------------------------------------------------------------------------- 00701 // ----------------------------------------------------------------------------- 00702 typedef struct fcvKDTreeDatas8s32 00703 { 00704 // info about the dataset for which KDTrees are constructed 00706 const int8_t *dataset; 00707 00709 const int32_t* invLen; 00710 00712 int32_t numVectors; 00713 00714 // info about trees 00716 int32_t* trees; 00717 00719 int32_t numTrees; 00720 00722 fcvKDTreeNodes32* nodes; 00723 00725 int32_t numNodes; 00726 00728 int32_t maxNumNodes; 00729 00730 // info used during lookups 00732 fcvKDTreeBranchs32* heap; 00733 00735 int32_t numBranches; 00736 00738 int32_t maxNumBranches; 00739 00743 int32_t* vind; 00744 00746 int32_t checkID; 00747 00749 int32_t numNNs; 00750 00751 } fcvKDTreeDatas8s32; 00752 00753 //------------------------------------------------------------------------------ 00756 //------------------------------------------------------------------------------ 00757 typedef struct 00758 { 00760 int32_t x; 00762 int32_t y; 00764 uint32_t width; 00766 uint32_t height; 00767 } fcvRectangleInt; 00768 00769 //------------------------------------------------------------------------------ 00772 //------------------------------------------------------------------------------ 00773 typedef struct 00774 { 00776 int32_t max_iter; 00778 float32_t epsilon; 00779 }fcvTermCriteria; 00780 00781 //------------------------------------------------------------------------------ 00784 //------------------------------------------------------------------------------ 00785 typedef struct 00786 { 00787 // Center of the box 00789 int32_t x; 00791 int32_t y; 00792 // The box size 00793 int32_t columns; 00794 int32_t rows; 00795 // The orientation of the principal axis 00796 int32_t orientation; 00797 }fcvBox2D; 00798 00799 //------------------------------------------------------------------------------ 00802 //------------------------------------------------------------------------------ 00803 typedef struct { 00804 // spatial moments 00805 float32_t m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; 00806 // central moments 00807 float32_t mu20, mu11, mu02, mu30, mu21, mu12, mu03; 00808 // m00 != 0 ? 1/sqrt(m00) : 0 00809 float32_t inv_sqrt_m00; 00810 } fcvMoments; 00811 00812 //------------------------------------------------------------------------------ 00815 //------------------------------------------------------------------------------ 00816 typedef struct fcvBGCodeWord 00817 { 00819 struct fcvBGCodeWord* next; 00820 00822 int32_t tLastUpdate; 00823 00825 int32_t stale; 00827 uint8_t min0, min1, min2; 00828 00830 uint8_t max0, max1, max2; 00831 00833 uint8_t learnLow0, learnLow1, learnLow2; 00834 00836 uint8_t learnHigh0, learnHigh1, learnHigh2; 00837 } fcvBGCodeWord; 00838 00839 //------------------------------------------------------------------------------ 00842 //------------------------------------------------------------------------------ 00843 typedef struct fcvCircle 00844 { 00845 int32_t x; 00846 int32_t y; 00847 int32_t radius; 00848 } fcvCircle; 00849 00850 00851 typedef struct fcvPoint2D 00852 { 00853 float x; 00854 float y; 00855 } fcvPoint2D; 00856 00857 typedef struct fcvLine 00858 { 00859 fcvPoint2D start; 00860 fcvPoint2D end; 00861 } fcvLine; 00862 00863 00864 //------------------------------------------------------------------------------ 00867 //------------------------------------------------------------------------------ 00868 typedef struct fcvLineSegment { 00869 fcvPoint2D start, end; 00870 float32_t normal[2]; 00871 uint32_t nPoints; 00872 int32_t pointsStartIndex; 00873 uint32_t sumMag; 00874 } fcvLineSegment; 00875 00876 00877 //------------------------------------------------------------------------------ 00886 //------------------------------------------------------------------------------ 00887 typedef struct fcvDepthFusionBlockConfig { 00888 uint32_t flags; 00889 float32_t ramp; 00890 float32_t p0[3], 00891 dX[3], 00892 dY[3], 00893 dZ[3]; 00894 uint32_t volumeIndex; 00895 } fcvDepthFusionBlockConfig; 00896 00897 //============================================================================== 00898 // UTILITY FUNCTIONS 00899 //============================================================================== 00900 00901 #ifdef __cplusplus 00902 extern "C" 00903 { 00904 #endif 00905 00906 //------------------------------------------------------------------------------ 00917 //------------------------------------------------------------------------------ 00918 00919 FASTCV_API void 00920 fcvGetVersion( char* version, 00921 unsigned int versionLength ); 00922 00923 00924 //--------------------------------------------------------------------------- 00938 //--------------------------------------------------------------------------- 00939 00940 FASTCV_API int 00941 fcvSetOperationMode( fcvOperationMode mode ); 00942 00943 00944 //--------------------------------------------------------------------------- 00949 //--------------------------------------------------------------------------- 00950 00951 FASTCV_API void 00952 fcvCleanUp( void ); 00953 00954 00955 // ----------------------------------------------------------------------------- 00991 //---------------------------------------------------------------------------- 00992 00993 FASTCV_API int 00994 fcvPyramidAllocate( fcvPyramidLevel* pyr, 00995 unsigned int baseWidth, 00996 unsigned int baseHeight, 00997 unsigned int bytesPerPixel, 00998 unsigned int numLevels, 00999 int allocateBase ); 01000 01001 01002 // ----------------------------------------------------------------------------- 01048 //---------------------------------------------------------------------------- 01049 01050 FASTCV_API int 01051 fcvPyramidAllocate_v2( fcvPyramidLevel_v2* pyr, 01052 uint32_t baseWidth, 01053 uint32_t baseHeight, 01054 uint32_t baseStride, 01055 uint32_t bytesPerPixel, 01056 uint32_t numLevels, 01057 int32_t allocateBase ); 01058 01059 01060 // ----------------------------------------------------------------------------- 01122 //---------------------------------------------------------------------------- 01123 01124 FASTCV_API fcvStatus 01125 fcvPyramidAllocate_v3(fcvPyramidLevel_v2* __restrict pyr, 01126 uint32_t baseWidth, 01127 uint32_t baseHeight, 01128 uint32_t baseStride, 01129 uint32_t bytesPerPixel, 01130 uint32_t alignment, 01131 uint32_t numLevels, 01132 fcvPyramidScale scale, 01133 int32_t allocateBase); 01134 01135 01136 // ----------------------------------------------------------------------------- 01162 //---------------------------------------------------------------------------- 01163 01164 FASTCV_API void 01165 fcvPyramidDelete( fcvPyramidLevel* pyr, 01166 unsigned int numLevels, 01167 unsigned int startLevel ); 01168 01169 // ----------------------------------------------------------------------------- 01198 //---------------------------------------------------------------------------- 01199 01200 FASTCV_API void 01201 fcvPyramidDelete_v2( fcvPyramidLevel_v2* pyr, 01202 uint32_t numLevels, 01203 uint32_t startLevel ); 01204 01205 01206 //------------------------------------------------------------------------------ 01222 //------------------------------------------------------------------------------ 01223 01224 FASTCV_API void* 01225 fcvMemAlloc( unsigned int nBytes, 01226 unsigned int byteAlignment ); 01227 01228 01229 //------------------------------------------------------------------------------ 01237 //------------------------------------------------------------------------------ 01238 01239 FASTCV_API void 01240 fcvMemFree( void* ptr ); 01241 01242 01243 // ----------------------------------------------------------------------------- 01262 // ----------------------------------------------------------------------------- 01263 FASTCV_API void 01264 fcvMemInit(void); 01265 01266 // ----------------------------------------------------------------------------- 01288 // ----------------------------------------------------------------------------- 01289 FASTCV_API void 01290 fcvMemInitPreAlloc( uint32_t preAllocBytes ); 01291 01292 // ----------------------------------------------------------------------------- 01301 // ----------------------------------------------------------------------------- 01302 FASTCV_API void 01303 fcvMemDeInit(void); 01304 01305 //End - Utility functions 01306 01307 01308 //============================================================================== 01309 // FUNCTIONS 01310 //============================================================================== 01311 01312 01313 //------------------------------------------------------------------------------ 01349 //------------------------------------------------------------------------------ 01350 01351 FASTCV_API void 01352 fcvFilterMedian3x3u8( const uint8_t* __restrict srcImg, 01353 unsigned int srcWidth, 01354 unsigned int srcHeight, 01355 uint8_t* __restrict dstImg ); 01356 01357 01358 //------------------------------------------------------------------------------ 01406 //------------------------------------------------------------------------------ 01407 01408 FASTCV_API void 01409 fcvFilterMedian3x3u8_v2( const uint8_t* __restrict srcImg, 01410 unsigned int srcWidth, 01411 unsigned int srcHeight, 01412 unsigned int srcStride, 01413 uint8_t* __restrict dstImg, 01414 unsigned int dstStride ); 01415 01416 01417 //------------------------------------------------------------------------------ 01458 //------------------------------------------------------------------------------ 01459 01460 FASTCV_API void 01461 fcvFilterGaussian3x3u8( const uint8_t* __restrict src, 01462 unsigned int srcWidth, 01463 unsigned int srcHeight, 01464 uint8_t* __restrict dst, 01465 int blurBorder ); 01466 01467 01468 //------------------------------------------------------------------------------ 01521 //------------------------------------------------------------------------------ 01522 01523 FASTCV_API void 01524 fcvFilterGaussian3x3u8_v2( const uint8_t* __restrict src, 01525 unsigned int srcWidth, 01526 unsigned int srcHeight, 01527 unsigned int srcStride, 01528 uint8_t* __restrict dst, 01529 unsigned int dstStride, 01530 int blurBorder ); 01531 01532 01533 //------------------------------------------------------------------------------ 01576 //------------------------------------------------------------------------------ 01577 01578 FASTCV_API void 01579 fcvFilterGaussian5x5u8( const uint8_t* __restrict src, 01580 unsigned int srcWidth, 01581 unsigned int srcHeight, 01582 uint8_t* __restrict dst, 01583 int blurBorder ); 01584 01585 //------------------------------------------------------------------------------ 01641 //------------------------------------------------------------------------------ 01642 01643 FASTCV_API void 01644 fcvFilterGaussian5x5u8_v2( const uint8_t* __restrict src, 01645 unsigned int srcWidth, 01646 unsigned int srcHeight, 01647 unsigned int srcStride, 01648 uint8_t* __restrict dst, 01649 unsigned int dstStride, 01650 int blurBorder ); 01651 01652 01653 //------------------------------------------------------------------------------ 01702 //------------------------------------------------------------------------------ 01703 01704 FASTCV_API void 01705 fcvFilterGaussian11x11u8( const uint8_t* __restrict src, 01706 unsigned int srcWidth, 01707 unsigned int srcHeight, 01708 uint8_t* __restrict dst, 01709 int blurBorder ); 01710 01711 01712 01713 //------------------------------------------------------------------------------ 01775 //------------------------------------------------------------------------------ 01776 01777 FASTCV_API void 01778 fcvFilterGaussian11x11u8_v2( const uint8_t* __restrict src, 01779 unsigned int srcWidth, 01780 unsigned int srcHeight, 01781 unsigned int srcStride, 01782 uint8_t* __restrict dst, 01783 unsigned int dstStride, 01784 int blurBorder ); 01785 01786 01787 //------------------------------------------------------------------------------ 01823 //------------------------------------------------------------------------------ 01824 01825 FASTCV_API void 01826 fcvColorYUV420toRGB8888u8( const uint8_t* __restrict src, 01827 unsigned int srcWidth, 01828 unsigned int srcHeight, 01829 uint32_t* __restrict dst ); 01830 01831 01832 //------------------------------------------------------------------------------ 01881 //------------------------------------------------------------------------------ 01882 01883 FASTCV_API void 01884 fcvColorYCrCb420PseudoPlanarToRGB8888u8( const uint8_t* __restrict src, 01885 unsigned int srcWidth, 01886 unsigned int srcHeight, 01887 unsigned int srcYStride, 01888 unsigned int srcCStride, 01889 uint32_t* __restrict dst, 01890 unsigned int dstStride ); 01891 01892 01893 //------------------------------------------------------------------------------ 01929 //------------------------------------------------------------------------------ 01930 01931 FASTCV_API void 01932 fcvColorYUV420toRGB565u8( const uint8_t* __restrict src, 01933 unsigned int srcWidth, 01934 unsigned int srcHeight, 01935 uint32_t* __restrict dst ); 01936 01937 01938 //------------------------------------------------------------------------------ 01967 //------------------------------------------------------------------------------ 01968 01969 FASTCV_API void 01970 fcvColorYCrCbH1V1toRGB888u8( const uint8_t* __restrict src, 01971 unsigned int srcWidth, 01972 unsigned int srcHeight, 01973 uint8_t* __restrict dst ); 01974 01975 01976 //------------------------------------------------------------------------------ 02005 //------------------------------------------------------------------------------ 02006 02007 FASTCV_API void 02008 fcvColorYCrCbH2V2toRGB888u8( const uint8_t* __restrict ysrc, 02009 unsigned int srcWidth, 02010 unsigned int srcHeight, 02011 uint8_t* __restrict dst ); 02012 02013 02014 02015 //------------------------------------------------------------------------------ 02044 //------------------------------------------------------------------------------ 02045 02046 FASTCV_API void 02047 fcvColorYCrCbH2V1toRGB888u8( const uint8_t* __restrict src, 02048 unsigned int srcWidth, 02049 unsigned int srcHeight, 02050 uint8_t* __restrict dst ); 02051 02052 02053 //------------------------------------------------------------------------------ 02083 //------------------------------------------------------------------------------ 02084 02085 FASTCV_API void 02086 fcvColorYCrCbH1V2toRGB888u8( const uint8_t* __restrict ysrc, 02087 02088 unsigned int srcWidth, 02089 unsigned int srcHeight, 02090 uint8_t* __restrict dst ); 02091 02092 02093 02094 //------------------------------------------------------------------------------ 02128 //------------------------------------------------------------------------------ 02129 02130 FASTCV_API void 02131 fcvColorRGB888toYCrCbu8( const uint8_t* __restrict src, 02132 unsigned int srcWidth, 02133 unsigned int srcHeight, 02134 uint8_t* __restrict dst ); 02135 02136 02137 //------------------------------------------------------------------------------ 02183 //------------------------------------------------------------------------------ 02184 02185 FASTCV_API void 02186 fcvColorRGB888toYCrCbu8_v2( const uint8_t* __restrict src, 02187 unsigned int srcWidth, 02188 unsigned int srcHeight, 02189 unsigned int srcStride, 02190 uint8_t* __restrict dst, 02191 unsigned int dstStride ); 02192 02193 02194 //------------------------------------------------------------------------------ 02212 //------------------------------------------------------------------------------ 02213 02214 FASTCV_API int 02215 fcvDescriptor17x17u8To36s8( const uint8_t* __restrict patch, 02216 int8_t* __restrict descriptorChar, 02217 int32_t* __restrict descriptorNormSq ); 02218 02219 02220 //--------------------------------------------------------------------------- 02237 //--------------------------------------------------------------------------- 02238 02239 FASTCV_API int32_t 02240 fcvDotProducts8( const int8_t* __restrict a, 02241 const int8_t* __restrict b, 02242 unsigned int abSize ); 02243 02244 02245 //------------------------------------------------------------------------------ 02262 //------------------------------------------------------------------------------ 02263 02264 FASTCV_API uint32_t 02265 fcvDotProductu8( const uint8_t* __restrict a, 02266 const uint8_t* __restrict b, 02267 unsigned int abSize ); 02268 02269 02270 //--------------------------------------------------------------------------- 02284 //--------------------------------------------------------------------------- 02285 02286 FASTCV_API int32_t 02287 fcvDotProduct36x1s8( const int8_t* __restrict a, 02288 const int8_t* __restrict b ); 02289 02290 02291 //--------------------------------------------------------------------------- 02319 //--------------------------------------------------------------------------- 02320 02321 FASTCV_API void 02322 fcvDotProduct36x4s8( const int8_t* __restrict a, 02323 const int8_t* __restrict b, 02324 const int8_t* __restrict c, 02325 const int8_t* __restrict d, 02326 const int8_t* __restrict e, 02327 int32_t* __restrict dotProducts ); 02328 02329 02330 //------------------------------------------------------------------------------ 02367 //------------------------------------------------------------------------------ 02368 02369 FASTCV_API void 02370 fcvDotProductNorm36x4s8( const int8_t* __restrict a, 02371 float invLengthA, 02372 const int8_t* __restrict b0, 02373 const int8_t* __restrict b1, 02374 const int8_t* __restrict b2, 02375 const int8_t* __restrict b3, 02376 float* __restrict invLengthsB, 02377 float* __restrict dotProducts ); 02378 02379 02380 //------------------------------------------------------------------------------ 02394 //------------------------------------------------------------------------------ 02395 02396 FASTCV_API uint32_t 02397 fcvDotProduct36x1u8( const uint8_t* __restrict a, 02398 const uint8_t* __restrict b ); 02399 02400 02401 //------------------------------------------------------------------------------ 02429 //------------------------------------------------------------------------------ 02430 02431 FASTCV_API void 02432 fcvDotProduct36x4u8( const uint8_t* __restrict a, 02433 const uint8_t* __restrict b, 02434 const uint8_t* __restrict c, 02435 const uint8_t* __restrict d, 02436 const uint8_t* __restrict e, 02437 uint32_t* __restrict dotProducts ); 02438 02439 02440 //------------------------------------------------------------------------------ 02477 //------------------------------------------------------------------------------ 02478 02479 FASTCV_API void 02480 fcvDotProductNorm36x4u8( const uint8_t* __restrict a, 02481 float invLengthA, 02482 const uint8_t* __restrict b0, 02483 const uint8_t* __restrict b1, 02484 const uint8_t* __restrict b2, 02485 const uint8_t* __restrict b3, 02486 float* __restrict invLengthsB, 02487 float* __restrict dotProducts ); 02488 02489 02490 //--------------------------------------------------------------------------- 02506 //--------------------------------------------------------------------------- 02507 02508 FASTCV_API int32_t 02509 fcvDotProduct64x1s8( const int8_t* __restrict a, 02510 const int8_t* __restrict b ); 02511 02512 02513 //--------------------------------------------------------------------------- 02546 //--------------------------------------------------------------------------- 02547 02548 FASTCV_API void 02549 fcvDotProduct64x4s8( const int8_t* __restrict a, 02550 const int8_t* __restrict b, 02551 const int8_t* __restrict c, 02552 const int8_t* __restrict d, 02553 const int8_t* __restrict e, 02554 int32_t* __restrict dotProducts ); 02555 02556 02557 //------------------------------------------------------------------------------ 02594 //------------------------------------------------------------------------------ 02595 02596 FASTCV_API void 02597 fcvDotProductNorm64x4s8( const int8_t* __restrict a, 02598 float invLengthA, 02599 const int8_t* __restrict b0, 02600 const int8_t* __restrict b1, 02601 const int8_t* __restrict b2, 02602 const int8_t* __restrict b3, 02603 float* __restrict invLengthsB, 02604 float* __restrict dotProducts ); 02605 02606 02607 //------------------------------------------------------------------------------ 02621 //------------------------------------------------------------------------------ 02622 02623 FASTCV_API uint32_t 02624 fcvDotProduct64x1u8( const uint8_t* __restrict a, 02625 const uint8_t* __restrict b ); 02626 02627 02628 //------------------------------------------------------------------------------ 02656 //------------------------------------------------------------------------------ 02657 02658 FASTCV_API void 02659 fcvDotProduct64x4u8( const uint8_t* __restrict a, 02660 const uint8_t* __restrict b, 02661 const uint8_t* __restrict c, 02662 const uint8_t* __restrict d, 02663 const uint8_t* __restrict e, 02664 uint32_t* __restrict dotProducts ); 02665 02666 02667 //------------------------------------------------------------------------------ 02704 //------------------------------------------------------------------------------ 02705 02706 FASTCV_API void 02707 fcvDotProductNorm64x4u8( const uint8_t* __restrict a, 02708 float invLengthA, 02709 const uint8_t* __restrict b0, 02710 const uint8_t* __restrict b1, 02711 const uint8_t* __restrict b2, 02712 const uint8_t* __restrict b3, 02713 float* __restrict invLengthsB, 02714 float* __restrict dotProducts ); 02715 02716 02717 //--------------------------------------------------------------------------- 02733 //--------------------------------------------------------------------------- 02734 02735 FASTCV_API int32_t 02736 fcvDotProduct128x1s8( const int8_t* __restrict a, 02737 const int8_t* __restrict b ); 02738 02739 02740 //--------------------------------------------------------------------------- 02773 //--------------------------------------------------------------------------- 02774 02775 FASTCV_API void 02776 fcvDotProduct128x4s8( const int8_t* __restrict a, 02777 const int8_t* __restrict b, 02778 const int8_t* __restrict c, 02779 const int8_t* __restrict d, 02780 const int8_t* __restrict e, 02781 int32_t* __restrict dotProducts ); 02782 02783 02784 //------------------------------------------------------------------------------ 02826 //------------------------------------------------------------------------------ 02827 02828 FASTCV_API void 02829 fcvDotProductNorm128x4s8( const int8_t* __restrict a, 02830 float invLengthA, 02831 const int8_t* __restrict b0, 02832 const int8_t* __restrict b1, 02833 const int8_t* __restrict b2, 02834 const int8_t* __restrict b3, 02835 float* __restrict invLengthsB, 02836 float* __restrict dotProducts ); 02837 02838 02839 //------------------------------------------------------------------------------ 02855 //------------------------------------------------------------------------------ 02856 02857 FASTCV_API uint32_t 02858 fcvDotProduct128x1u8( const uint8_t* __restrict a, 02859 const uint8_t* __restrict b ); 02860 02861 02862 //------------------------------------------------------------------------------ 02895 //------------------------------------------------------------------------------ 02896 02897 FASTCV_API void 02898 fcvDotProduct128x4u8( const uint8_t* __restrict a, 02899 const uint8_t* __restrict b, 02900 const uint8_t* __restrict c, 02901 const uint8_t* __restrict d, 02902 const uint8_t* __restrict e, 02903 uint32_t* __restrict dotProducts ); 02904 02905 02906 //------------------------------------------------------------------------------ 02947 //------------------------------------------------------------------------------ 02948 02949 FASTCV_API void 02950 fcvDotProductNorm128x4u8( const uint8_t* __restrict a, 02951 float invLengthA, 02952 const uint8_t* __restrict b0, 02953 const uint8_t* __restrict b1, 02954 const uint8_t* __restrict b2, 02955 const uint8_t* __restrict b3, 02956 float* __restrict invLengthsB, 02957 float* __restrict dotProducts ); 02958 02959 02960 //------------------------------------------------------------------------------ 02992 //------------------------------------------------------------------------------ 02993 02994 FASTCV_API void 02995 fcvDotProduct8x8u8( const uint8_t* __restrict patchPixels, 02996 const uint8_t* __restrict imagePixels, 02997 unsigned short imgW, 02998 unsigned short imgH, 02999 int nX, 03000 int nY, 03001 unsigned int nNum, 03002 int32_t* __restrict dotProducts ); 03003 03004 03005 //------------------------------------------------------------------------------ 03033 //--------------------------------------------------------------------------- 03034 03035 FASTCV_API void 03036 fcvDotProduct11x12u8( const uint8_t* __restrict patchPixels, 03037 const uint8_t* __restrict imagePixels, 03038 unsigned short imgW, 03039 unsigned short imgH, 03040 int iX, 03041 int iY, 03042 int32_t* __restrict dotProducts ); 03043 03044 03045 //------------------------------------------------------------------------------ 03083 //------------------------------------------------------------------------------ 03084 03085 FASTCV_API void 03086 fcvFilterSobel3x3u8( const uint8_t* __restrict src, 03087 unsigned int srcWidth, 03088 unsigned int srcHeight, 03089 uint8_t* __restrict dst ); 03090 03091 03092 //------------------------------------------------------------------------------ 03143 //------------------------------------------------------------------------------ 03144 03145 FASTCV_API void 03146 fcvFilterSobel3x3u8_v2( const uint8_t* __restrict src, 03147 unsigned int srcWidth, 03148 unsigned int srcHeight, 03149 unsigned int srcStride, 03150 uint8_t* __restrict dst, 03151 unsigned int dstStride ); 03152 03153 //------------------------------------------------------------------------------ 03204 //------------------------------------------------------------------------------ 03205 03206 FASTCV_API void 03207 fcvFilterCanny3x3u8( const uint8_t* __restrict src, 03208 unsigned int srcWidth, 03209 unsigned int srcHeight, 03210 uint8_t* __restrict dst, 03211 int lowThresh, 03212 int highThresh ); 03213 03214 //------------------------------------------------------------------------------ 03280 //------------------------------------------------------------------------------ 03281 03282 FASTCV_API void 03283 fcvFilterCanny3x3u8_v2( const uint8_t* __restrict src, 03284 unsigned int srcWidth, 03285 unsigned int srcHeight, 03286 unsigned int srcStride, 03287 uint8_t* __restrict dst, 03288 unsigned int dstStride, 03289 int lowThresh, 03290 int highThresh ); 03291 03292 //------------------------------------------------------------------------------ 03372 //------------------------------------------------------------------------------ 03373 FASTCV_API void 03374 fcvFilterCanny3x3u8_v3( const uint8_t* __restrict src, 03375 unsigned int srcWidth, 03376 unsigned int srcHeight, 03377 unsigned int srcStride, 03378 uint8_t* __restrict dst, 03379 unsigned int dstStride, 03380 int16_t* __restrict gx, 03381 int16_t* __restrict gy, 03382 unsigned int gradStride, 03383 int lowThresh, 03384 int highThresh ); 03385 03386 03387 //------------------------------------------------------------------------------ 03425 //------------------------------------------------------------------------------ 03426 03427 FASTCV_API void 03428 fcvImageDiffu8( const uint8_t* __restrict src1, 03429 const uint8_t* __restrict src2, 03430 unsigned int srcWidth, 03431 unsigned int srcHeight, 03432 uint8_t* __restrict dst ); 03433 03434 //------------------------------------------------------------------------------ 03487 //------------------------------------------------------------------------------ 03488 03489 FASTCV_API void 03490 fcvImageDiffu8_v2( const uint8_t* __restrict src1, 03491 const uint8_t* __restrict src2, 03492 unsigned int srcWidth, 03493 unsigned int srcHeight, 03494 unsigned int srcStride, 03495 uint8_t* __restrict dst, 03496 unsigned int dstStride ); 03497 03498 03499 //-------------------------------------------------------------------------- 03536 FASTCV_API void 03537 fcvImageDiffs16( const int16_t* __restrict src1, 03538 const int16_t* __restrict src2, 03539 unsigned int srcWidth, 03540 unsigned int srcHeight, 03541 unsigned int srcStride, 03542 int16_t* __restrict dst, 03543 unsigned int dstStride ); 03544 03545 //------------------------------------------------------------------------------ 03584 //------------------------------------------------------------------------------ 03585 FASTCV_API void 03586 fcvImageDifff32( const float* __restrict src1, 03587 const float* __restrict src2, 03588 unsigned int srcWidth, 03589 unsigned int srcHeight, 03590 unsigned int srcStride, 03591 float* __restrict dst, 03592 unsigned int dstStride ); 03593 03594 03595 //------------------------------------------------------------------------------ 03630 //------------------------------------------------------------------------------ 03631 FASTCV_API void 03632 fcvImageDiffu8f32( const uint8_t* __restrict src1, 03633 const uint8_t* __restrict src2, 03634 unsigned int srcWidth, 03635 unsigned int srcHeight, 03636 unsigned int srcStride, 03637 float* __restrict dst, 03638 unsigned int dstStride ); 03639 03640 03641 //------------------------------------------------------------------------------ 03676 //------------------------------------------------------------------------------ 03677 FASTCV_API void 03678 fcvImageDiffu8s8( const uint8_t* __restrict src1, 03679 const uint8_t* __restrict src2, 03680 unsigned int srcWidth, 03681 unsigned int srcHeight, 03682 unsigned int srcStride, 03683 int8_t* __restrict dst, 03684 unsigned int dstStride ); 03685 03686 //--------------------------------------------------------------------------- 03721 //------------------------------------------------------------------------------ 03722 03723 FASTCV_API void 03724 fcvImageGradientInterleaveds16( const uint8_t* __restrict src, 03725 unsigned int srcWidth, 03726 unsigned int srcHeight, 03727 unsigned int srcStride, 03728 int16_t* __restrict gradients 03729 ); 03730 03731 //--------------------------------------------------------------------------- 03774 //------------------------------------------------------------------------------ 03775 03776 FASTCV_API void 03777 fcvImageGradientInterleaveds16_v2( const uint8_t* __restrict src, 03778 unsigned int srcWidth, 03779 unsigned int srcHeight, 03780 unsigned int srcStride, 03781 int16_t* __restrict gradients, 03782 unsigned int gradStride ); 03783 03784 //--------------------------------------------------------------------------- 03835 //------------------------------------------------------------------------------ 03836 FASTCV_API int 03837 fcvMserInit(const unsigned int width, 03838 const unsigned int height, 03839 unsigned int delta, 03840 unsigned int minArea, 03841 unsigned int maxArea, 03842 float maxVariation, 03843 float minDiversity, 03844 void ** mserHandle ); 03845 03846 //--------------------------------------------------------------------------- 03854 //------------------------------------------------------------------------------ 03855 FASTCV_API void 03856 fcvMserRelease(void *mserHandle); 03857 03920 //------------------------------------------------------------------------------ 03921 FASTCV_API void 03922 fcvMseru8( void *mserHandle, 03923 const uint8_t* __restrict srcPtr, 03924 unsigned int srcWidth, 03925 unsigned int srcHeight, 03926 unsigned int srcStride, 03927 unsigned int maxContours, 03928 unsigned int * __restrict numContours, 03929 unsigned int * __restrict numPointsInContour, 03930 unsigned int pointsArraySize, 03931 unsigned int * __restrict pointsArray); 03932 04019 //------------------------------------------------------------------------------ 04020 FASTCV_API void 04021 fcvMserExtu8( void *mserHandle, 04022 const uint8_t* __restrict srcPtr, 04023 unsigned int srcWidth, 04024 unsigned int srcHeight, 04025 unsigned int srcStride, 04026 unsigned int maxContours, 04027 unsigned int * __restrict numContours, 04028 unsigned int * __restrict numPointsInContour, 04029 unsigned int * __restrict pointsArray, 04030 unsigned int pointsArraySize, 04031 unsigned int * __restrict contourVariation, 04032 int * __restrict contourPolarity, 04033 unsigned int * __restrict contourNodeId, 04034 unsigned int * __restrict contourNodeCounter); 04035 04107 //------------------------------------------------------------------------------ 04108 FASTCV_API int 04109 fcvMseru8_v2( void *mserHandle, 04110 const uint8_t* __restrict srcPtr, 04111 uint32_t srcWidth, 04112 uint32_t srcHeight, 04113 uint32_t srcStride, 04114 uint32_t maxContours, 04115 uint32_t* __restrict numContours, 04116 uint16_t* __restrict recArray, 04117 uint32_t* __restrict numPointsInContour, 04118 uint32_t pointsArraySize, 04119 uint16_t* __restrict pointsArray); 04120 04214 //------------------------------------------------------------------------------ 04215 FASTCV_API int 04216 fcvMserExtu8_v2( void *mserHandle, 04217 const uint8_t* __restrict srcPtr, 04218 uint32_t srcWidth, 04219 uint32_t srcHeight, 04220 uint32_t srcStride, 04221 uint32_t maxContours, 04222 uint32_t* __restrict numContours, 04223 uint16_t* __restrict recArray, 04224 uint32_t* __restrict numPointsInContour, 04225 uint32_t pointsArraySize, 04226 uint16_t* __restrict pointsArray, 04227 uint32_t* __restrict contourVariation, 04228 int8_t* __restrict contourPolarity, 04229 uint32_t* __restrict contourNodeId, 04230 uint32_t* __restrict contourNodeCounter); 04231 04343 //------------------------------------------------------------------------------ 04344 FASTCV_API int 04345 fcvMserExtu8_v3( void *mserHandle, 04346 const uint8_t* __restrict srcPtr, 04347 uint32_t srcWidth, 04348 uint32_t srcHeight, 04349 uint32_t srcStride, 04350 uint32_t maxContours, 04351 uint32_t* __restrict numContours, 04352 uint16_t* __restrict recArray, 04353 uint32_t* __restrict staPointsInPath, 04354 uint32_t* __restrict numPointsInContour, 04355 uint32_t pathArraySize, 04356 uint16_t* __restrict pathArray, 04357 uint32_t* __restrict contourVariation, 04358 int8_t* __restrict contourPolarity, 04359 uint32_t* __restrict contourNodeId, 04360 uint32_t* __restrict contourNodeCounter); 04361 04362 //--------------------------------------------------------------------------- 04416 //------------------------------------------------------------------------------ 04417 FASTCV_API int 04418 fcvMserNN8Init(const uint32_t width, 04419 const uint32_t height, 04420 uint32_t delta, 04421 uint32_t minArea , 04422 uint32_t maxArea , 04423 float32_t maxVariation , 04424 float32_t minDiversity , 04425 void **mserHandle ); 04426 04497 //------------------------------------------------------------------------------ 04498 FASTCV_API int 04499 fcvMserNN8u8 ( void *mserHandle, 04500 const uint8_t* __restrict srcPtr, 04501 uint32_t srcWidth, 04502 uint32_t srcHeight, 04503 uint32_t srcStride, 04504 uint32_t maxContours, 04505 uint32_t* __restrict numContours, 04506 uint16_t* __restrict recArray, 04507 uint32_t* __restrict numPointsInContour, 04508 uint32_t pointsArraySize, 04509 uint16_t* __restrict pointsArray); 04510 04565 //------------------------------------------------------------------------------ 04566 FASTCV_API int 04567 fcvMserExtNN8u8(void *mserHandle, 04568 const uint8_t* __restrict srcPtr, 04569 uint32_t srcWidth, 04570 uint32_t srcHeight, 04571 uint32_t srcStride, 04572 uint32_t maxContours, 04573 uint32_t* __restrict numContours, 04574 uint16_t* __restrict recArray, 04575 uint32_t* __restrict numPointsInContour, 04576 uint32_t pointsArraySize, 04577 uint16_t* __restrict pointsArray, 04578 uint32_t* __restrict contourVariation, 04579 int8_t* __restrict contourPolarity, 04580 uint32_t* __restrict contourNodeId, 04581 uint32_t* __restrict contourNodeCounter); 04582 04583 //--------------------------------------------------------------------------- 04617 //------------------------------------------------------------------------------ 04618 04619 FASTCV_API void 04620 fcvImageGradientInterleavedf32( const uint8_t* __restrict src, 04621 unsigned int srcWidth, 04622 unsigned int srcHeight, 04623 unsigned int srcStride, 04624 float* __restrict gradients ); 04625 04626 //--------------------------------------------------------------------------- 04670 //------------------------------------------------------------------------------ 04671 04672 FASTCV_API void 04673 fcvImageGradientInterleavedf32_v2( const uint8_t* __restrict src, 04674 unsigned int srcWidth, 04675 unsigned int srcHeight, 04676 unsigned int srcStride, 04677 float* __restrict gradients, 04678 unsigned int gradStride ); 04679 04680 //--------------------------------------------------------------------------- 04718 //------------------------------------------------------------------------------ 04719 04720 FASTCV_API void 04721 fcvImageGradientPlanars16( const uint8_t* __restrict src, 04722 unsigned int srcWidth, 04723 unsigned int srcHeight, 04724 unsigned int srcStride, 04725 int16_t* __restrict dx, 04726 int16_t* __restrict dy ); 04727 04728 //--------------------------------------------------------------------------- 04776 //------------------------------------------------------------------------------ 04777 04778 FASTCV_API void 04779 fcvImageGradientPlanars16_v2( const uint8_t* __restrict src, 04780 unsigned int srcWidth, 04781 unsigned int srcHeight, 04782 unsigned int srcStride, 04783 int16_t* __restrict dx, 04784 int16_t* __restrict dy, 04785 unsigned int dxyStride ); 04786 04787 //--------------------------------------------------------------------------- 04826 //------------------------------------------------------------------------------ 04827 04828 FASTCV_API void 04829 fcvImageGradientPlanarf32( const uint8_t* __restrict src, 04830 unsigned int srcWidth, 04831 unsigned int srcHeight, 04832 unsigned int srcStride, 04833 float* __restrict dx, 04834 float* __restrict dy ); 04835 04836 04837 04838 //--------------------------------------------------------------------------- 04886 //------------------------------------------------------------------------------ 04887 04888 FASTCV_API void 04889 fcvImageGradientPlanarf32_v2( const uint8_t* __restrict src, 04890 unsigned int srcWidth, 04891 unsigned int srcHeight, 04892 unsigned int srcStride, 04893 float* __restrict dx, 04894 float* __restrict dy, 04895 unsigned int dxyStride ); 04896 04897 04898 //------------------------------------------------------------------------------ 04945 //------------------------------------------------------------------------------ 04946 04947 FASTCV_API void 04948 fcvCornerFast9u8( const uint8_t* __restrict src, 04949 unsigned int srcWidth, 04950 unsigned int srcHeight, 04951 unsigned int srcStride, 04952 int barrier, 04953 unsigned int border, 04954 uint32_t* __restrict xy, 04955 unsigned int nCornersMax, 04956 uint32_t* __restrict nCorners ); 04957 04958 04959 //------------------------------------------------------------------------------ 05019 //------------------------------------------------------------------------------ 05020 05021 FASTCV_API void 05022 fcvCornerFast9InMasku8( const uint8_t* __restrict src, 05023 unsigned int srcWidth, 05024 unsigned int srcHeight, 05025 unsigned int srcStride, 05026 int barrier, 05027 unsigned int border, 05028 uint32_t* __restrict xy, 05029 unsigned int nCornersMax, 05030 uint32_t* __restrict nCorners, 05031 const uint8_t* __restrict mask, 05032 unsigned int maskWidth, 05033 unsigned int maskHeight ); 05034 05035 //------------------------------------------------------------------------------ 05081 //------------------------------------------------------------------------------ 05082 05083 FASTCV_API void 05084 fcvCornerFast10u8( const uint8_t* __restrict src, 05085 uint32_t srcWidth, 05086 uint32_t srcHeight, 05087 uint32_t srcStride, 05088 int32_t barrier, 05089 uint32_t border, 05090 uint32_t* __restrict xy, 05091 uint32_t nCornersMax, 05092 uint32_t* __restrict nCorners); 05093 05094 05095 //------------------------------------------------------------------------------ 05154 //------------------------------------------------------------------------------ 05155 05156 FASTCV_API void 05157 fcvCornerFast10InMasku8( const uint8_t* __restrict src, 05158 uint32_t srcWidth, 05159 uint32_t srcHeight, 05160 uint32_t srcStride, 05161 int32_t barrier, 05162 uint32_t border, 05163 uint32_t* __restrict xy, 05164 uint32_t nCornersMax, 05165 uint32_t* __restrict nCorners, 05166 const uint8_t* __restrict mask, 05167 uint32_t maskWidth, 05168 uint32_t maskHeight ); 05169 05170 05171 //------------------------------------------------------------------------------ 05217 //------------------------------------------------------------------------------ 05218 05219 FASTCV_API void 05220 fcvCornerHarrisu8( const uint8_t* __restrict src, 05221 unsigned int srcWidth, 05222 unsigned int srcHeight, 05223 unsigned int srcStride, 05224 unsigned int border, 05225 uint32_t* __restrict xy, 05226 unsigned int nCornersMax, 05227 uint32_t* __restrict nCorners, 05228 int threshold ); 05229 05230 //------------------------------------------------------------------------------ 05274 //------------------------------------------------------------------------------ 05275 05276 FASTCV_API unsigned int 05277 fcvLocalHarrisMaxu8( const uint8_t* __restrict src, 05278 unsigned int srcWidth, 05279 unsigned int srcHeight, 05280 unsigned int srcStride, 05281 unsigned int posX, 05282 unsigned int posY, 05283 unsigned int *maxX, 05284 unsigned int *maxY, 05285 int *maxScore); 05286 05287 05288 //------------------------------------------------------------------------------ 05345 //------------------------------------------------------------------------------ 05346 05347 FASTCV_API void 05348 fcvCornerHarrisInMasku8( const uint8_t* __restrict src, 05349 unsigned int srcWidth, 05350 unsigned int srcHeight, 05351 unsigned int srcStride, 05352 unsigned int border, 05353 uint32_t* __restrict xy, 05354 unsigned int nCornersMax, 05355 uint32_t* __restrict nCorners, 05356 int threshold, 05357 const uint8_t* __restrict mask, 05358 unsigned int maskWidth, 05359 unsigned int maskHeight ); 05360 05361 //------------------------------------------------------------------------------ 05403 //------------------------------------------------------------------------------ 05404 05405 FASTCV_API void 05406 fcvCornerHarrisAdaptiveu8( const uint8_t* __restrict src, 05407 uint32_t srcWidth, 05408 uint32_t srcHeight, 05409 uint32_t srcStride, 05410 uint32_t border, 05411 float32_t* __restrict xy, 05412 uint32_t nCornersMax, 05413 uint32_t* __restrict nCorners, 05414 int32_t threshold); 05415 05416 05417 //------------------------------------------------------------------------------ 05514 //------------------------------------------------------------------------------ 05515 FASTCV_API fcvStatus 05516 fcvCornerHarrisScoreu8(const uint8_t* __restrict src, 05517 uint32_t srcWidth, 05518 uint32_t srcHeight, 05519 uint32_t srcStride, 05520 float32_t* __restrict harrisResp, 05521 uint32_t respStride, 05522 uint32_t* __restrict xy, 05523 uint32_t nCornersMax, 05524 uint32_t* __restrict nCorners, 05525 float32_t threshold, 05526 float32_t sensitivity, 05527 uint32_t kernelSize, 05528 uint32_t blockSize, 05529 uint32_t nmsEnabled, 05530 float32_t minDistance, 05531 uint32_t normalizeResponse); 05532 05533 05534 //--------------------------------------------------------------------------- 05546 //--------------------------------------------------------------------------- 05547 05548 FASTCV_API void 05549 fcvGeomAffineFitf32( const fcvCorrespondences* __restrict corrs, 05550 float* __restrict affine ); 05551 05552 05553 //------------------------------------------------------------------------------ 05583 //------------------------------------------------------------------------------ 05584 05585 FASTCV_API int 05586 fcvGeomAffineEvaluatef32( const fcvCorrespondences* __restrict corrs, 05587 float* __restrict affine, 05588 float maxsqerr, 05589 uint16_t* __restrict inliers, 05590 int32_t* numinliers ); 05591 05592 05593 //------------------------------------------------------------------------------ 05616 //------------------------------------------------------------------------------ 05617 05618 FASTCV_API void 05619 fcvGeomHomographyFitf32( const fcvCorrespondences* __restrict corrs, 05620 float* __restrict homography ); 05621 05622 05623 //------------------------------------------------------------------------------ 05661 //------------------------------------------------------------------------------ 05662 05663 FASTCV_API int 05664 fcvGeomHomographyEvaluatef32( const fcvCorrespondences* __restrict corrs, 05665 float* __restrict homography, 05666 float maxsqerr, 05667 uint16_t* __restrict inliers, 05668 int32_t* numinliers ); 05669 05670 //------------------------------------------------------------------------------ 05715 //------------------------------------------------------------------------------ 05716 05717 FASTCV_API int 05718 fcvGeomHomographyEvaluatef32_v2( const fcvCorrespondences* __restrict corrs, 05719 float32_t* __restrict homography, 05720 float32_t maxsqerr, 05721 uint16_t* __restrict inliers, 05722 float32_t*__restrict errinliers, 05723 int32_t* numinliers ); 05724 05725 05726 //------------------------------------------------------------------------------ 05777 //------------------------------------------------------------------------------ 05778 05779 FASTCV_API float 05780 fcvGeomPoseRefineGNf32( const fcvCorrespondences* __restrict corrs, 05781 short minIterations, 05782 short maxIterations, 05783 float stopCriteria, 05784 float* initpose, 05785 float* refinedpose ); 05786 05787 //------------------------------------------------------------------------------ 05827 //------------------------------------------------------------------------------ 05828 05829 FASTCV_API int 05830 fcvGeomPoseUpdatef32( 05831 const float* __restrict projected, 05832 const float* __restrict reprojErr, 05833 const float* __restrict invz, 05834 const float* __restrict reprojVariance, 05835 unsigned int numpts, 05836 float* __restrict pose ); 05837 05838 //------------------------------------------------------------------------------ 05876 //------------------------------------------------------------------------------ 05877 05878 FASTCV_API int 05879 fcvGeomPoseOptimizeGNf32( const float* __restrict projected, 05880 const float* __restrict reprojErr, 05881 const float* __restrict invz, 05882 const float* __restrict reprojVariance, 05883 unsigned int numpts, 05884 float* __restrict pose ); 05885 05886 05887 //------------------------------------------------------------------------------ 05927 //------------------------------------------------------------------------------ 05928 05929 FASTCV_API float 05930 fcvGeomPoseEvaluateErrorf32( const fcvCorrespondences* __restrict corrs, 05931 const float* __restrict pose, 05932 float* __restrict projected, 05933 float* __restrict reprojErr, 05934 float* __restrict invz, 05935 float* __restrict reprojVariance ); 05936 05937 05938 //------------------------------------------------------------------------------ 05976 //------------------------------------------------------------------------------ 05977 05978 FASTCV_API int 05979 fcvGeomPoseEvaluatef32( const fcvCorrespondences* __restrict corrs, 05980 const float* pose, 05981 float maxSquErr, 05982 uint16_t* __restrict inliers, 05983 uint32_t* numInliers ); 05984 05985 05986 //------------------------------------------------------------------------------ 06014 //------------------------------------------------------------------------------ 06015 06016 FASTCV_API void 06017 fcvGeom3PointPoseEstimatef32( const fcvCorrespondences* __restrict corrs, 06018 float* pose, 06019 int32_t* numPoses ); 06020 06021 06022 //------------------------------------------------------------------------------ 06059 //------------------------------------------------------------------------------ 06060 06061 FASTCV_API void 06062 fcvFilterCorr3x3s8( const int8_t* __restrict kernel, 06063 const uint8_t* __restrict src, 06064 unsigned int srcWidth, 06065 unsigned int srcHeight, 06066 uint8_t* __restrict dst ); 06067 06068 06069 //------------------------------------------------------------------------------ 06118 //------------------------------------------------------------------------------ 06119 06120 FASTCV_API void 06121 fcvFilterCorr3x3s8_v2( const int8_t* __restrict kernel, 06122 const uint8_t* __restrict src, 06123 unsigned int srcWidth, 06124 unsigned int srcHeight, 06125 unsigned int srcStride, 06126 uint8_t* __restrict dst, 06127 unsigned int dstStride ); 06128 06129 06130 //------------------------------------------------------------------------------ 06176 //------------------------------------------------------------------------------ 06177 06178 FASTCV_API fcvStatus 06179 fcvFilterCorrNxNu8f32( const float32_t* __restrict kernel, 06180 uint32_t N, 06181 const uint8_t* __restrict src, 06182 uint32_t srcWidth, 06183 uint32_t srcHeight, 06184 uint32_t srcStride, 06185 float32_t* __restrict dst, 06186 uint32_t dstStride ); 06187 06188 //------------------------------------------------------------------------------ 06237 //------------------------------------------------------------------------------ 06238 06239 FASTCV_API fcvStatus 06240 fcvFilterCorrNxNu8s16( const int8_t* __restrict kernel, 06241 uint32_t N, 06242 int8_t shift, 06243 const uint8_t* __restrict src, 06244 uint32_t srcWidth, 06245 uint32_t srcHeight, 06246 uint32_t srcStride, 06247 int16_t* __restrict dst, 06248 uint32_t dstStride ); 06249 06250 //------------------------------------------------------------------------------ 06299 //------------------------------------------------------------------------------ 06300 06301 FASTCV_API fcvStatus 06302 fcvFilterCorrNxNu8( const int8_t* __restrict kernel, 06303 uint32_t N, 06304 int8_t shift, 06305 const uint8_t* __restrict src, 06306 uint32_t srcWidth, 06307 uint32_t srcHeight, 06308 uint32_t srcStride, 06309 uint8_t* __restrict dst, 06310 uint32_t dstStride ); 06311 06312 //------------------------------------------------------------------------------ 06356 //------------------------------------------------------------------------------ 06357 06358 FASTCV_API void 06359 fcvFilterCorrSep9x9s16( const int16_t* __restrict kernel, 06360 const int16_t* src, 06361 unsigned int srcWidth, 06362 unsigned int srcHeight, 06363 int16_t* __restrict tmp, 06364 int16_t* dst ); 06365 06366 06367 //--------------------------------------------------------------------------- 06415 //--------------------------------------------------------------------------- 06416 FASTCV_API void 06417 fcvFilterCorrSep9x9s16_v2( const int16_t* __restrict kernel, 06418 const int16_t* srcImg, 06419 unsigned int srcWidth, 06420 unsigned int srcHeight, 06421 unsigned int srcStride, 06422 int16_t* __restrict tmpImg, 06423 int16_t* dstImg, 06424 unsigned int dstStride ); 06425 06426 06427 //------------------------------------------------------------------------------ 06472 //------------------------------------------------------------------------------ 06473 06474 FASTCV_API void 06475 fcvFilterCorrSep11x11s16( const int16_t* __restrict kernel, 06476 const int16_t* src, 06477 unsigned int srcWidth, 06478 unsigned int srcHeight, 06479 int16_t* __restrict tmpImg, 06480 int16_t* dst ); 06481 06482 06483 //--------------------------------------------------------------------------- 06533 //--------------------------------------------------------------------------- 06534 FASTCV_API void 06535 fcvFilterCorrSep11x11s16_v2( const int16_t* __restrict kernel, 06536 const int16_t* srcImg, 06537 unsigned int srcWidth, 06538 unsigned int srcHeight, 06539 unsigned int srcStride, 06540 int16_t* __restrict tmpImg, 06541 int16_t* dstImg, 06542 unsigned int dstStride ); 06543 06544 06545 //------------------------------------------------------------------------------ 06588 //------------------------------------------------------------------------------ 06589 06590 FASTCV_API void 06591 fcvFilterCorrSep13x13s16( const int16_t* __restrict kernel, 06592 const int16_t* src, 06593 unsigned int srcWidth, 06594 unsigned int srcHeight, 06595 int16_t* __restrict tmpImg, 06596 int16_t* dst ); 06597 06598 06599 //--------------------------------------------------------------------------- 06649 //--------------------------------------------------------------------------- 06650 FASTCV_API void 06651 fcvFilterCorrSep13x13s16_v2( const int16_t* __restrict kernel, 06652 const int16_t* srcImg, 06653 unsigned int srcWidth, 06654 unsigned int srcHeight, 06655 unsigned int srcStride, 06656 int16_t* __restrict tmpImg, 06657 int16_t* dstImg, 06658 unsigned int dstStride ); 06659 06660 06661 //------------------------------------------------------------------------------ 06705 //------------------------------------------------------------------------------ 06706 06707 FASTCV_API void 06708 fcvFilterCorrSep15x15s16( const int16_t* __restrict kernel, 06709 const int16_t* src, 06710 unsigned int srcWidth, 06711 unsigned int srcHeight, 06712 int16_t* __restrict tmpImg, 06713 int16_t* dst ); 06714 06715 06716 //--------------------------------------------------------------------------- 06768 //--------------------------------------------------------------------------- 06769 FASTCV_API void 06770 fcvFilterCorrSep15x15s16_v2( const int16_t* __restrict kernel, 06771 const int16_t* srcImg, 06772 unsigned int srcWidth, 06773 unsigned int srcHeight, 06774 unsigned int srcStride, 06775 int16_t* __restrict tmpImg, 06776 int16_t* dstImg, 06777 unsigned int dstStride ); 06778 06779 06780 //------------------------------------------------------------------------------ 06823 //------------------------------------------------------------------------------ 06824 06825 FASTCV_API void 06826 fcvFilterCorrSep17x17s16( const int16_t* __restrict kernel, 06827 const int16_t* src, 06828 unsigned int srcWidth, 06829 unsigned int srcHeight, 06830 int16_t* __restrict tmpImg, 06831 int16_t* dst ); 06832 06833 06834 06835 //--------------------------------------------------------------------------- 06883 //--------------------------------------------------------------------------- 06884 FASTCV_API void 06885 fcvFilterCorrSep17x17s16_v2( const int16_t* __restrict kernel, 06886 const int16_t* srcImg, 06887 unsigned int srcWidth, 06888 unsigned int srcHeight, 06889 unsigned int srcStride, 06890 int16_t* __restrict tmpImg, 06891 int16_t* dstImg, 06892 unsigned int dstStride ); 06893 06894 //--------------------------------------------------------------------------- 06934 //--------------------------------------------------------------------------- 06935 06936 FASTCV_API void 06937 fcvFilterCorrSepNxNs16( const int16_t* __restrict kernel, 06938 int knlSize, 06939 const int16_t* srcImg, 06940 unsigned int srcWidth, 06941 unsigned int srcHeight, 06942 unsigned int srcStride, 06943 int16_t* __restrict tmpImg, 06944 int16_t* dstImg, 06945 unsigned int dstStride ); 06946 06947 06948 //--------------------------------------------------------------------------- 07006 //--------------------------------------------------------------------------- 07007 07008 FASTCV_API fcvStatus 07009 fcvFilterCorrSepMxNu8( const int8_t* kernelX, 07010 uint32_t knlSizeX, 07011 const int8_t* kernelY, 07012 uint32_t knlSizeY, 07013 int8_t shift, 07014 const uint8_t* srcImg, 07015 uint32_t srcWidth, 07016 uint32_t srcHeight, 07017 uint32_t srcStride, 07018 uint8_t* dstImg, 07019 uint32_t dstStride); 07020 07021 //------------------------------------------------------------------------------ 07063 //------------------------------------------------------------------------------ 07064 07065 FASTCV_API void 07066 fcvImageIntensityStats( const uint8_t* __restrict src, 07067 unsigned int srcWidth, 07068 int xBegin, 07069 int yBegin, 07070 unsigned int recWidth, 07071 unsigned int recHeight, 07072 float* mean, 07073 float* variance ); 07074 07075 //------------------------------------------------------------------------------ 07110 //------------------------------------------------------------------------------ 07111 07112 FASTCV_API fcvStatus 07113 fcvImageIntensityStats_v2( const uint8_t* __restrict src, 07114 unsigned int srcWidth, 07115 int xBegin, 07116 int yBegin, 07117 uint32_t recWidth, 07118 uint32_t recHeight, 07119 float32_t* mean, 07120 float32_t* variance, 07121 fcvVarianceEstimator varianceEstimator); 07122 07123 //------------------------------------------------------------------------------ 07158 //------------------------------------------------------------------------------ 07159 07160 FASTCV_API void 07161 fcvImageIntensityHistogram( const uint8_t* __restrict src, 07162 unsigned int srcWidth, 07163 int xBegin, 07164 int yBegin, 07165 unsigned int recWidth, 07166 unsigned int recHeight, 07167 int32_t* histogram ); 07168 07169 07170 //------------------------------------------------------------------------------ 07206 //------------------------------------------------------------------------------ 07207 07208 FASTCV_API void 07209 fcvIntegrateImageu8( const uint8_t* __restrict src, 07210 unsigned int srcWidth, 07211 unsigned int srcHeight, 07212 uint32_t* __restrict dst ); 07213 07214 07215 //------------------------------------------------------------------------------ 07264 //------------------------------------------------------------------------------ 07265 07266 FASTCV_API void 07267 fcvIntegrateImageu8_v2( const uint8_t* __restrict src, 07268 unsigned int srcWidth, 07269 unsigned int srcHeight, 07270 unsigned int srcStride, 07271 uint32_t* __restrict dst, 07272 unsigned int dstStride ); 07273 07274 07275 //------------------------------------------------------------------------------ 07327 //------------------------------------------------------------------------------ 07328 07329 FASTCV_API void 07330 fcvIntegratePatchu8( const uint8_t* __restrict src, 07331 unsigned int srcWidth, 07332 unsigned int srcHeight, 07333 int patchX, 07334 int patchY, 07335 unsigned int patchW, 07336 unsigned int patchH, 07337 uint32_t* __restrict intgrlImgOut, 07338 uint32_t* __restrict intgrlSqrdImgOut ); 07339 07340 07341 //------------------------------------------------------------------------------ 07403 //------------------------------------------------------------------------------ 07404 07405 FASTCV_API void 07406 fcvIntegratePatchu8_v2( const uint8_t* __restrict src, 07407 unsigned int srcWidth, 07408 unsigned int srcHeight, 07409 unsigned int srcStride, 07410 int patchX, 07411 int patchY, 07412 unsigned int patchW, 07413 unsigned int patchH, 07414 uint32_t* __restrict intgrlImgOut, 07415 uint32_t* __restrict intgrlSqrdImgOut ); 07416 07417 07418 //------------------------------------------------------------------------------ 07487 //------------------------------------------------------------------------------ 07488 07489 FASTCV_API fcvStatus 07490 fcvIntegratePatchu8_v3(const uint8_t* __restrict src, 07491 uint32_t srcWidth, 07492 uint32_t srcHeight, 07493 uint32_t srcStride, 07494 uint32_t patchX, 07495 uint32_t patchY, 07496 uint32_t patchW, 07497 uint32_t patchH, 07498 uint32_t* __restrict intgrlImgOut, 07499 uint32_t intgrlStride, 07500 uint32_t* __restrict intgrlSqrdImgOut, 07501 uint32_t intgrlSqrdStride); 07502 07503 07504 //--------------------------------------------------------------------------- 07548 //--------------------------------------------------------------------------- 07549 07550 FASTCV_API void 07551 fcvIntegratePatch12x12u8( const uint8_t* __restrict src, 07552 unsigned int srcWidth, 07553 unsigned int srcHeight, 07554 int patchX, 07555 int patchY, 07556 uint32_t* __restrict intgrlImgOut, 07557 uint32_t* __restrict intgrlSqrdImgOut ); 07558 07559 07560 //--------------------------------------------------------------------------- 07612 //--------------------------------------------------------------------------- 07613 07614 FASTCV_API void 07615 fcvIntegratePatch12x12u8_v2( const uint8_t* __restrict src, 07616 unsigned int srcWidth, 07617 unsigned int srcHeight, 07618 unsigned int srcStride, 07619 int patchX, 07620 int patchY, 07621 uint32_t* __restrict intgrlImgOut, 07622 uint32_t* __restrict intgrlSqrdImgOut ); 07623 07624 07625 //------------------------------------------------------------------------------ 07670 //------------------------------------------------------------------------------ 07671 07672 FASTCV_API void 07673 fcvIntegratePatch18x18u8( const uint8_t* __restrict src, 07674 unsigned int srcWidth, 07675 unsigned int srcHeight, 07676 int patchX, 07677 int patchY, 07678 uint32_t* __restrict intgrlImgOut, 07679 uint32_t* __restrict intgrlSqrdImgOut ); 07680 07681 07682 //------------------------------------------------------------------------------ 07734 //------------------------------------------------------------------------------ 07735 07736 FASTCV_API void 07737 fcvIntegratePatch18x18u8_v2( const uint8_t* __restrict src, 07738 unsigned int srcWidth, 07739 unsigned int srcHeight, 07740 unsigned int srcStride, 07741 int patchX, 07742 int patchY, 07743 uint32_t* __restrict intgrlImgOut, 07744 uint32_t* __restrict intgrlSqrdImgOut ); 07745 07746 07747 //--------------------------------------------------------------------------- 07767 //--------------------------------------------------------------------------- 07768 07769 FASTCV_API void 07770 fcvIntegrateImageLineu8( const uint8_t* __restrict src, 07771 uint16_t srcWidth, 07772 uint32_t* intgrl, 07773 uint32_t* intgrlSqrd ); 07774 07775 07776 //------------------------------------------------------------------------------ 07791 //------------------------------------------------------------------------------ 07792 07793 FASTCV_API void 07794 fcvIntegrateImageLine64u8( const uint8_t* __restrict src, 07795 uint16_t* intgrl, 07796 uint32_t* intgrlSqrd ); 07797 07798 07799 //------------------------------------------------------------------------------ 07843 // ----------------------------------------------------------------------------- 07844 07845 FASTCV_API int 07846 fcvDescriptorSampledMeanAndVar36f32( const float* __restrict src, 07847 int first, 07848 int last, 07849 int32_t* vind, 07850 float* __restrict means, 07851 float* __restrict vars, 07852 float* __restrict temp ); 07853 07854 07855 //------------------------------------------------------------------------------ 07919 //------------------------------------------------------------------------------ 07920 07921 FASTCV_API int 07922 fcvNCCPatchOnCircle8x8u8( const uint8_t* __restrict patch, 07923 const uint8_t* __restrict src, 07924 unsigned short srcWidth, 07925 unsigned short srcHeight, 07926 unsigned short search_center_x, 07927 unsigned short search_center_y, 07928 unsigned short search_radius, 07929 uint16_t* best_x, 07930 uint16_t* best_y, 07931 uint32_t* bestNCC, 07932 int findSubPixel, 07933 float* subX, 07934 float* subY ); 07935 07936 07937 //------------------------------------------------------------------------------ 08010 //------------------------------------------------------------------------------ 08011 08012 FASTCV_API int 08013 fcvNCCPatchOnCircle8x8u8_v2( const uint8_t* __restrict patch, 08014 const uint8_t* __restrict src, 08015 unsigned short srcWidth, 08016 unsigned short srcHeight, 08017 unsigned short search_center_x, 08018 unsigned short search_center_y, 08019 unsigned short search_radius, 08020 int filterLowVariance, 08021 uint16_t* best_x, 08022 uint16_t* best_y, 08023 uint32_t* bestNCC, 08024 int findSubPixel, 08025 float* subX, 08026 float* subY ); 08027 08028 08029 08030 08031 //------------------------------------------------------------------------------ 08097 //------------------------------------------------------------------------------ 08098 08099 FASTCV_API int 08100 fcvNCCPatchOnSquare8x8u8( const uint8_t* __restrict patch, 08101 const uint8_t* __restrict src, 08102 unsigned short srcWidth, 08103 unsigned short srcHeight, 08104 unsigned short search_center_x, 08105 unsigned short search_center_y, 08106 unsigned short search_w, 08107 uint16_t* best_x, 08108 uint16_t* best_y, 08109 uint32_t* bestNCC, 08110 int doSubPixel, 08111 float* subX, 08112 float* subY ); 08113 08114 08115 //------------------------------------------------------------------------------ 08190 //------------------------------------------------------------------------------ 08191 08192 FASTCV_API int 08193 fcvNCCPatchOnSquare8x8u8_v2( const uint8_t* __restrict patch, 08194 const uint8_t* __restrict src, 08195 unsigned short srcWidth, 08196 unsigned short srcHeight, 08197 unsigned short search_center_x, 08198 unsigned short search_center_y, 08199 unsigned short search_w, 08200 int filterLowVariance, 08201 uint16_t* best_x, 08202 uint16_t* best_y, 08203 uint32_t* bestNCC, 08204 int doSubPixel, 08205 float* subX, 08206 float* subY ); 08207 08208 08209 08210 //------------------------------------------------------------------------------ 08254 //------------------------------------------------------------------------------ 08255 08256 FASTCV_API void 08257 fcvSumOfAbsoluteDiffs8x8u8( const uint8_t* __restrict patch, 08258 const uint8_t* __restrict src, 08259 unsigned int srcWidth, 08260 unsigned int srcHeight, 08261 unsigned int srcStride, 08262 uint16_t* __restrict dst ); 08263 08264 08265 //------------------------------------------------------------------------------ 08323 //------------------------------------------------------------------------------ 08324 08325 FASTCV_API void 08326 fcvSumOfAbsoluteDiffs8x8u8_v2( const uint8_t* __restrict patch, 08327 unsigned int patchStride, 08328 const uint8_t* __restrict src, 08329 unsigned int srcWidth, 08330 unsigned int srcHeight, 08331 unsigned int srcStride, 08332 uint16_t* __restrict dst, 08333 unsigned int dstStride ); 08334 08335 08336 //------------------------------------------------------------------------------ 08376 //------------------------------------------------------------------------------ 08377 08378 FASTCV_API int 08379 fcvScaleDownBy2u8( const uint8_t* __restrict src, 08380 unsigned int srcWidth, 08381 unsigned int srcHeight, 08382 uint8_t* __restrict dst ); 08383 08384 08385 //------------------------------------------------------------------------------ 08438 //------------------------------------------------------------------------------ 08439 08440 FASTCV_API int 08441 fcvScaleDownBy2u8_v2( const uint8_t* __restrict src, 08442 unsigned int srcWidth, 08443 unsigned int srcHeight, 08444 unsigned int srcStride, 08445 uint8_t* __restrict dst, 08446 unsigned int dstStride ); 08447 08448 //------------------------------------------------------------------------------ 08482 //------------------------------------------------------------------------------ 08483 08484 FASTCV_API void 08485 fcvScaleDownBy2Gaussian5x5u8( const uint8_t* __restrict src, 08486 unsigned int srcWidth, 08487 unsigned int srcHeight, 08488 uint8_t* __restrict dst ); 08489 08490 08491 //------------------------------------------------------------------------------ 08537 //------------------------------------------------------------------------------ 08538 08539 FASTCV_API void 08540 fcvScaleDownBy2Gaussian5x5u8_v2( const uint8_t* __restrict src, 08541 unsigned int srcWidth, 08542 unsigned int srcHeight, 08543 unsigned int srcStride, 08544 uint8_t* __restrict dst, 08545 unsigned int dstStride ); 08546 08547 08548 //------------------------------------------------------------------------------ 08583 //------------------------------------------------------------------------------ 08584 08585 FASTCV_API int 08586 fcvScaleDownBy4u8( const uint8_t* __restrict src, 08587 unsigned int srcWidth, 08588 unsigned int srcHeight, 08589 uint8_t* __restrict dst ); 08590 08591 08592 //------------------------------------------------------------------------------ 08639 //------------------------------------------------------------------------------ 08640 08641 FASTCV_API int 08642 fcvScaleDownBy4u8_v2( const uint8_t* __restrict src, 08643 unsigned int srcWidth, 08644 unsigned int srcHeight, 08645 unsigned int srcStride, 08646 uint8_t* __restrict dst, 08647 unsigned int dstStride ); 08648 08649 08650 //------------------------------------------------------------------------------ 08689 //------------------------------------------------------------------------------ 08690 08691 FASTCV_API int 08692 fcvScaleDown3To2u8( const uint8_t* __restrict src, 08693 unsigned srcWidth, 08694 unsigned srcHeight, 08695 unsigned int srcStride, 08696 uint8_t* __restrict dst, 08697 unsigned int dstStride); 08698 08699 //--------------------------------------------------------------------------- 08739 //------------------------------------------------------------------------------ 08740 08741 FASTCV_API int 08742 fcvScaleDownNNu8( const uint8_t* __restrict src, 08743 unsigned int srcWidth, 08744 unsigned int srcHeight, 08745 unsigned int srcStride, 08746 uint8_t* __restrict dst, 08747 unsigned int dstWidth, 08748 unsigned int dstHeight, 08749 unsigned int dstStride ); 08750 08751 //--------------------------------------------------------------------------- 08794 //------------------------------------------------------------------------------ 08795 08796 FASTCV_API void 08797 fcvScaleDownu8( const uint8_t* __restrict src, 08798 unsigned int srcWidth, 08799 unsigned int srcHeight, 08800 uint8_t* __restrict dst, 08801 unsigned int dstWidth, 08802 unsigned int dstHeight ); 08803 08804 08805 //--------------------------------------------------------------------------- 08861 //------------------------------------------------------------------------------ 08862 08863 FASTCV_API void 08864 fcvScaleDownu8_v2( const uint8_t* __restrict src, 08865 unsigned int srcWidth, 08866 unsigned int srcHeight, 08867 unsigned int srcStride, 08868 uint8_t* __restrict dst, 08869 unsigned int dstWidth, 08870 unsigned int dstHeight, 08871 unsigned int dstStride ); 08872 08873 08874 //------------------------------------------------------------------------------ 08908 //------------------------------------------------------------------------------ 08909 08910 FASTCV_API void 08911 fcvScaleUpBy2Gaussian5x5u8( const uint8_t* __restrict src, 08912 unsigned int srcWidth, 08913 unsigned int srcHeight, 08914 uint8_t* __restrict dst ); 08915 08916 08917 //------------------------------------------------------------------------------ 08964 //------------------------------------------------------------------------------ 08965 08966 FASTCV_API void 08967 fcvScaleUpBy2Gaussian5x5u8_v2( const uint8_t* __restrict src, 08968 unsigned int srcWidth, 08969 unsigned int srcHeight, 08970 unsigned int srcStride, 08971 uint8_t* __restrict dst, 08972 unsigned int dstStride ); 08973 08974 08975 // ----------------------------------------------------------------------------- 09010 // ----------------------------------------------------------------------------- 09011 09012 FASTCV_API int 09013 fcvVecNormalize36s8f32( const int8_t* __restrict src, 09014 unsigned int srcStride, 09015 const float* __restrict invLen, 09016 unsigned int numVecs, 09017 float reqNorm, 09018 float* __restrict dst, 09019 int32_t* stopBuild ); 09020 09021 09022 //--------------------------------------------------------------------------- 09066 //------------------------------------------------------------------------------ 09067 09068 FASTCV_API void 09069 fcvSumOfSquaredDiffs36x4s8( const int8_t* __restrict a, 09070 float invLenA, 09071 const int8_t* __restrict b0, 09072 const int8_t* __restrict b1, 09073 const int8_t* __restrict b2, 09074 const int8_t* __restrict b3, 09075 const float* __restrict invLenB, 09076 float* __restrict distances ); 09077 09078 09079 //--------------------------------------------------------------------------- 09115 //------------------------------------------------------------------------------ 09116 09117 FASTCV_API void 09118 fcvSumOfSquaredDiffs36xNs8( const int8_t* __restrict a, 09119 float invLenA, 09120 const int8_t* const * __restrict b, 09121 const float* __restrict invLenB, 09122 unsigned int numB, 09123 float* __restrict distances ); 09124 09125 09126 //--------------------------------------------------------------------------- 09144 //------------------------------------------------------------------------------ 09145 09146 FASTCV_API void 09147 fcvSort8Scoresf32( float* __restrict inScores, float* __restrict outScores ); 09148 09149 //------------------------------------------------------------------------------ 09186 //------------------------------------------------------------------------------ 09187 FASTCV_API void 09188 fcvFilterThresholdu8( const uint8_t* src, 09189 unsigned int srcWidth, 09190 unsigned int srcHeight, 09191 uint8_t* dst, 09192 unsigned int threshold ); 09193 09194 09195 //------------------------------------------------------------------------------ 09245 //------------------------------------------------------------------------------ 09246 09247 FASTCV_API void 09248 fcvFilterThresholdu8_v2( const uint8_t* src, 09249 unsigned int srcWidth, 09250 unsigned int srcHeight, 09251 unsigned int srcStride, 09252 uint8_t* dst, 09253 unsigned int dstStride, 09254 unsigned int threshold ); 09255 09256 09257 //------------------------------------------------------------------------------ 09318 //------------------------------------------------------------------------------ 09319 09320 FASTCV_API fcvStatus 09321 fcvFilterThresholdu8_v3( const uint8_t* src, 09322 unsigned int srcWidth, 09323 unsigned int srcHeight, 09324 unsigned int srcStride, 09325 uint8_t* dst, 09326 unsigned int dstStride, 09327 unsigned int threshold, 09328 uint8_t trueValue, 09329 uint8_t falseValue); 09330 09331 09332 //------------------------------------------------------------------------------ 09386 //------------------------------------------------------------------------------ 09387 09388 FASTCV_API fcvStatus 09389 fcvFilterThresholdRangeu8( const uint8_t* src, 09390 uint32_t srcWidth, 09391 uint32_t srcHeight, 09392 uint32_t srcStride, 09393 uint8_t* dst, 09394 uint32_t dstStride, 09395 uint8_t lowThresh, 09396 uint8_t highThresh ); 09397 09398 //------------------------------------------------------------------------------ 09464 //------------------------------------------------------------------------------ 09465 09466 FASTCV_API fcvStatus 09467 fcvFilterThresholdRangeu8_v2( const uint8_t* src, 09468 uint32_t srcWidth, 09469 uint32_t srcHeight, 09470 uint32_t srcStride, 09471 uint8_t* dst, 09472 uint32_t dstStride, 09473 uint8_t lowThresh, 09474 uint8_t highThresh, 09475 uint8_t trueValue, 09476 uint8_t falseValue); 09477 09478 //------------------------------------------------------------------------------ 09508 //------------------------------------------------------------------------------ 09509 09510 FASTCV_API void 09511 fcvFilterDilate3x3u8( const uint8_t* __restrict src, 09512 unsigned int srcWidth, 09513 unsigned int srcHeight, 09514 uint8_t* __restrict dst ); 09515 09516 09517 //------------------------------------------------------------------------------ 09560 //------------------------------------------------------------------------------ 09561 09562 FASTCV_API void 09563 fcvFilterDilate3x3u8_v2( const uint8_t* __restrict src, 09564 unsigned int srcWidth, 09565 unsigned int srcHeight, 09566 unsigned int srcStride, 09567 uint8_t* __restrict dst, 09568 unsigned int dstStride ); 09569 09570 //------------------------------------------------------------------------------ 09599 //------------------------------------------------------------------------------ 09600 09601 FASTCV_API void 09602 fcvFilterErode3x3u8( const uint8_t* __restrict src, 09603 unsigned int srcWidth, 09604 unsigned int srcHeight, 09605 uint8_t* __restrict dst ); 09606 09607 //------------------------------------------------------------------------------ 09650 //------------------------------------------------------------------------------ 09651 09652 FASTCV_API void 09653 fcvFilterErode3x3u8_v2( const uint8_t* __restrict src, 09654 unsigned int srcWidth, 09655 unsigned int srcHeight, 09656 unsigned int srcStride, 09657 uint8_t* __restrict dst, 09658 unsigned int dstStride ); 09659 09660 //--------------------------------------------------------------------------- 09704 //------------------------------------------------------------------------------ 09705 09706 FASTCV_API int 09707 fcvTransformAffine8x8u8( const uint8_t* __restrict src, 09708 unsigned int srcWidth, 09709 unsigned int srcHeight, 09710 const int32_t* __restrict nPos, 09711 const int32_t* __restrict nAffine, 09712 uint8_t* __restrict nPatch ); 09713 09714 09715 //--------------------------------------------------------------------------- 09774 //------------------------------------------------------------------------------ 09775 09776 FASTCV_API int 09777 fcvTransformAffine8x8u8_v2( const uint8_t* __restrict src, 09778 unsigned int srcWidth, 09779 unsigned int srcHeight, 09780 unsigned int srcStride, 09781 const int32_t* __restrict nPos, 09782 const int32_t* __restrict nAffine, 09783 uint8_t* __restrict patch, 09784 unsigned int patchStride ); 09785 09786 09787 //------------------------------------------------------------------------------ 09850 //------------------------------------------------------------------------------ 09851 09852 FASTCV_API void 09853 fcvWarpPerspectiveu8( const uint8_t* __restrict src, 09854 unsigned int srcWidth, 09855 unsigned int srcHeight, 09856 uint8_t* __restrict dst, 09857 unsigned int dstWidth, 09858 unsigned int dstHeight, 09859 float* __restrict projectionMatrix ); 09860 09861 09862 //------------------------------------------------------------------------------ 09938 //------------------------------------------------------------------------------ 09939 09940 FASTCV_API void 09941 fcvWarpPerspectiveu8_v2( const uint8_t* __restrict src, 09942 unsigned int srcWidth, 09943 unsigned int srcHeight, 09944 unsigned int srcStride, 09945 uint8_t* __restrict dst, 09946 unsigned int dstWidth, 09947 unsigned int dstHeight, 09948 unsigned int dstStride, 09949 float* __restrict projectionMatrix ); 09950 09951 09952 //--------------------------------------------------------------------------- 10010 //--------------------------------------------------------------------------- 10011 10012 FASTCV_API void 10013 fcv3ChannelWarpPerspectiveu8( const uint8_t* __restrict src, 10014 unsigned int srcWidth, 10015 unsigned int srcHeight, 10016 uint8_t* __restrict dst, 10017 unsigned int dstWidth, 10018 unsigned int dstHeight, 10019 float* __restrict projectionMatrix ); 10020 10021 10022 //--------------------------------------------------------------------------- 10093 //--------------------------------------------------------------------------- 10094 10095 FASTCV_API void 10096 fcv3ChannelWarpPerspectiveu8_v2( const uint8_t* __restrict src, 10097 unsigned int srcWidth, 10098 unsigned int srcHeight, 10099 unsigned int srcStride, 10100 uint8_t* __restrict dst, 10101 unsigned int dstWidth, 10102 unsigned int dstHeight, 10103 unsigned int dstStride, 10104 float* __restrict projectionMatrix ); 10105 10106 10107 //--------------------------------------------------------------------------- 10167 //--------------------------------------------------------------------------- 10168 10169 FASTCV_API int 10170 fcvClusterEuclideanf32( const float* __restrict points, 10171 int numPoints, // actually not used but helpful 10172 int dim, 10173 int pointStride, 10174 const size_t* __restrict indices, 10175 int numIndices, 10176 int numClusters, 10177 float* __restrict clusterCenters, 10178 int clusterCenterStride, 10179 float* __restrict newClusterCenters, 10180 size_t* __restrict clusterMemberCounts, 10181 size_t* __restrict clusterBindings, 10182 float* sumOfClusterDistances ); 10183 10184 10185 //--------------------------------------------------------------------------- 10247 //--------------------------------------------------------------------------- 10248 10249 FASTCV_API int 10250 fcvClusterEuclideanNormedf32( const float* __restrict points, 10251 int numPoints, 10252 int dim, 10253 int pointStride, 10254 const size_t* __restrict indices, 10255 int numIndices, 10256 int numClusters, 10257 float* __restrict clusterCenters, 10258 int clusterCenterStride, 10259 float* __restrict newClusterCenters, 10260 size_t* __restrict clusterMemberCounts, 10261 size_t* __restrict clusterBindings, 10262 float* sumOfClusterDistances ); 10263 10264 10265 //--------------------------------------------------------------------------- 10324 //--------------------------------------------------------------------------- 10325 10326 FASTCV_API int 10327 fcvClusterEuclideanNormed36f32( const float* __restrict points, 10328 int numPoints, 10329 int pointStride, 10330 const size_t* __restrict indices, 10331 int numIndices, 10332 int numClusters, 10333 float* __restrict clusterCenters, 10334 int clusterCenterStride, 10335 float* __restrict newClusterCenters, 10336 size_t* __restrict clusterMemberCounts, 10337 size_t* __restrict clusterBindings, 10338 float* sumOfClusterDistances ); 10339 10340 10341 //--------------------------------------------------------------------------- 10381 //--------------------------------------------------------------------------- 10382 10383 FASTCV_API void 10384 fcvFilterGaussian5x5s16( const int16_t* __restrict src, 10385 unsigned int srcWidth, 10386 unsigned int srcHeight, 10387 int16_t* __restrict dst, 10388 int blurBorder ); 10389 10390 10391 //--------------------------------------------------------------------------- 10444 //--------------------------------------------------------------------------- 10445 10446 FASTCV_API void 10447 fcvFilterGaussian5x5s16_v2( const int16_t* __restrict src, 10448 unsigned int srcWidth, 10449 unsigned int srcHeight, 10450 unsigned int srcStride, 10451 int16_t* __restrict dst, 10452 unsigned int dstStride, 10453 int blurBorder ); 10454 10455 10456 //--------------------------------------------------------------------------- 10496 //--------------------------------------------------------------------------- 10497 10498 FASTCV_API void 10499 fcvFilterGaussian5x5s32( const int32_t* __restrict src, 10500 unsigned int srcWidth, 10501 unsigned int srcHeight, 10502 int32_t* __restrict dst, 10503 int blurBorder ); 10504 10505 10506 //--------------------------------------------------------------------------- 10559 //--------------------------------------------------------------------------- 10560 10561 FASTCV_API void 10562 fcvFilterGaussian5x5s32_v2( const int32_t* __restrict src, 10563 unsigned int srcWidth, 10564 unsigned int srcHeight, 10565 unsigned int srcStride, 10566 int32_t* __restrict dst, 10567 unsigned int dstStride, 10568 int blurBorder ); 10569 10570 10571 //--------------------------------------------------------------------------- 10619 //--------------------------------------------------------------------------- 10620 FASTCV_API uint32_t 10621 fcvImageSegmentationRegionGrow( const uint8_t* __restrict src, 10622 uint32_t srcWidth, 10623 uint32_t srcHeight, 10624 uint32_t srcStride, 10625 uint32_t numChannel, 10626 uint32_t thresholdSplit, 10627 uint32_t thresholdMerge, 10628 uint32_t* __restrict segLabel, 10629 uint32_t segLabelStride, 10630 uint8_t* __restrict data ); 10631 10632 //--------------------------------------------------------------------------- 10680 //--------------------------------------------------------------------------- 10681 10682 FASTCV_API int 10683 fcvTransformAffineu8( const uint8_t* __restrict src, 10684 unsigned int srcWidth, 10685 unsigned int srcHeight, 10686 const float* __restrict position, 10687 const float* __restrict affine, 10688 uint8_t* __restrict patch, 10689 unsigned int patchWidth, 10690 unsigned int patchHeight ); 10691 10692 10693 //--------------------------------------------------------------------------- 10756 //--------------------------------------------------------------------------- 10757 10758 FASTCV_API int 10759 fcvTransformAffineu8_v2( const uint8_t* __restrict src, 10760 unsigned int srcWidth, 10761 unsigned int srcHeight, 10762 unsigned int srcStride, 10763 const float* __restrict position, 10764 const float* __restrict affine, 10765 uint8_t* __restrict patch, 10766 unsigned int patchWidth, 10767 unsigned int patchHeight, 10768 unsigned int patchStride ); 10769 10770 10771 //--------------------------------------------------------------------------- 10787 //--------------------------------------------------------------------------- 10788 10789 FASTCV_API void 10790 fcvCopyRotated17x17u8( const uint8_t* __restrict src, 10791 uint8_t* __restrict dst, 10792 int orientation ); 10793 10794 10795 //------------------------------------------------------------------------------ 10810 //------------------------------------------------------------------------------ 10811 10812 FASTCV_API uint32_t 10813 fcvBitCountu8( const uint8_t* __restrict src, 10814 unsigned int srcLength ); 10815 10816 10817 //------------------------------------------------------------------------------ 10828 //------------------------------------------------------------------------------ 10829 10830 FASTCV_API uint32_t 10831 fcvBitCount32x1u8( const uint8_t* __restrict src ); 10832 10833 10834 //------------------------------------------------------------------------------ 10854 //------------------------------------------------------------------------------ 10855 10856 FASTCV_API void 10857 fcvBitCount32x4u8( const uint8_t* __restrict a, 10858 const uint8_t* __restrict b, 10859 const uint8_t* __restrict c, 10860 const uint8_t* __restrict d, 10861 uint32_t* __restrict bitCount ); 10862 10863 10864 //------------------------------------------------------------------------------ 10875 //------------------------------------------------------------------------------ 10876 10877 FASTCV_API uint32_t 10878 fcvBitCount64x1u8( const uint8_t* __restrict src ); 10879 10880 10881 //------------------------------------------------------------------------------ 10901 //------------------------------------------------------------------------------ 10902 10903 FASTCV_API void 10904 fcvBitCount64x4u8( const uint8_t* __restrict a, 10905 const uint8_t* __restrict b, 10906 const uint8_t* __restrict c, 10907 const uint8_t* __restrict d, 10908 uint32_t* __restrict bitCount ); 10909 10910 10911 //------------------------------------------------------------------------------ 10925 //------------------------------------------------------------------------------ 10926 10927 FASTCV_API uint32_t 10928 fcvBitCountu32( const uint32_t* __restrict src, 10929 unsigned int srcLength ); 10930 10931 10932 //------------------------------------------------------------------------------ 10951 //------------------------------------------------------------------------------ 10952 10953 FASTCV_API uint32_t 10954 fcvHammingDistanceu8( const uint8_t* __restrict a, 10955 const uint8_t* __restrict b, 10956 unsigned int abLength ); 10957 10958 10959 //------------------------------------------------------------------------------ 10975 //------------------------------------------------------------------------------ 10976 10977 FASTCV_API uint32_t 10978 fcvHammingDistance32x1u8a4( const uint8_t* __restrict a, 10979 const uint8_t* __restrict b ); 10980 10981 10982 //------------------------------------------------------------------------------ 10998 //------------------------------------------------------------------------------ 10999 11000 FASTCV_API uint32_t 11001 fcvHammingDistance64x1u8a4( const uint8_t* __restrict a, 11002 const uint8_t* __restrict b ); 11003 11004 11005 //------------------------------------------------------------------------------ 11019 //------------------------------------------------------------------------------ 11020 11021 FASTCV_API uint32_t 11022 fcvHammingDistance32x1u8( const uint8_t* __restrict a, 11023 const uint8_t* __restrict b ); 11024 11025 11026 //------------------------------------------------------------------------------ 11042 //------------------------------------------------------------------------------ 11043 11044 FASTCV_API uint32_t 11045 fcvHammingDistance64x1u8( const uint8_t* __restrict a, 11046 const uint8_t* __restrict b ); 11047 11048 11049 //------------------------------------------------------------------------------ 11078 //------------------------------------------------------------------------------ 11079 11080 FASTCV_API void 11081 fcvHammingDistance32x4u8a4( const uint8_t* __restrict a, 11082 const uint8_t* __restrict b, 11083 const uint8_t* __restrict c, 11084 const uint8_t* __restrict d, 11085 const uint8_t* __restrict e, 11086 uint32_t* __restrict hammingDistances ); 11087 11088 11089 //------------------------------------------------------------------------------ 11119 //------------------------------------------------------------------------------ 11120 11121 FASTCV_API void 11122 fcvHammingDistance64x4u8a4( const uint8_t* __restrict a, 11123 const uint8_t* __restrict b, 11124 const uint8_t* __restrict c, 11125 const uint8_t* __restrict d, 11126 const uint8_t* __restrict e, 11127 uint32_t* __restrict hammingDistances ); 11128 11129 11130 //------------------------------------------------------------------------------ 11158 //------------------------------------------------------------------------------ 11159 11160 FASTCV_API void 11161 fcvHammingDistance64x4u8( const uint8_t* __restrict a, 11162 const uint8_t* __restrict b, 11163 const uint8_t* __restrict c, 11164 const uint8_t* __restrict d, 11165 const uint8_t* __restrict e, 11166 uint32_t* __restrict hammingDistances ); 11167 11168 11169 //--------------------------------------------------------------------------- 11219 //------------------------------------------------------------------------------ 11220 11221 FASTCV_API void 11222 fcvCornerFast9Scoreu8( const uint8_t* __restrict src, 11223 unsigned int srcWidth, 11224 unsigned int srcHeight, 11225 unsigned int srcStride, 11226 int barrier, 11227 unsigned int border, 11228 uint32_t* __restrict xy, 11229 uint32_t* __restrict scores, 11230 unsigned int nCornersMax, 11231 uint32_t* __restrict nCorners ); 11232 11233 11234 //--------------------------------------------------------------------------- 11297 //------------------------------------------------------------------------------ 11298 11299 FASTCV_API void 11300 fcvCornerFast9InMaskScoreu8( const uint8_t* __restrict src, 11301 unsigned int srcWidth, 11302 unsigned int srcHeight, 11303 unsigned int srcStride, 11304 int barrier, 11305 unsigned int border, 11306 uint32_t* __restrict xy, 11307 uint32_t* __restrict scores, 11308 unsigned int nCornersMax, 11309 uint32_t* __restrict nCorners, 11310 const uint8_t* __restrict mask, 11311 unsigned int maskWidth, 11312 unsigned int maskHeight ); 11313 11314 //--------------------------------------------------------------------------- 11390 //------------------------------------------------------------------------------ 11391 11392 FASTCV_API void 11393 fcvCornerFast9Scoreu8_v2( const uint8_t* __restrict src, 11394 unsigned int srcWidth, 11395 unsigned int srcHeight, 11396 unsigned int srcStride, 11397 int barrier, 11398 unsigned int border, 11399 uint32_t* __restrict xy, 11400 uint32_t* __restrict scores, 11401 unsigned int nCornersMax, 11402 uint32_t* __restrict nCorners, 11403 uint32_t nmsEnabled, 11404 void* __restrict tempBuf); 11405 11406 11407 //--------------------------------------------------------------------------- 11499 //------------------------------------------------------------------------------ 11500 11501 FASTCV_API void 11502 fcvCornerFast9InMaskScoreu8_v2( const uint8_t* __restrict src, 11503 unsigned int srcWidth, 11504 unsigned int srcHeight, 11505 unsigned int srcStride, 11506 int barrier, 11507 unsigned int border, 11508 uint32_t* __restrict xy, 11509 uint32_t* __restrict scores, 11510 unsigned int nCornersMax, 11511 uint32_t* __restrict nCorners, 11512 const uint8_t* __restrict mask, 11513 unsigned int maskWidth, 11514 unsigned int maskHeight, 11515 uint32_t nmsEnabled, 11516 void* __restrict tempBuf); 11517 11518 11519 //--------------------------------------------------------------------------- 11584 //--------------------------------------------------------------------------- 11585 11586 FASTCV_API void 11587 fcvCornerFast10Scoreu8( const uint8_t* __restrict src, 11588 uint32_t srcWidth, 11589 uint32_t srcHeight, 11590 uint32_t srcStride, 11591 int32_t barrier, 11592 uint32_t border, 11593 uint32_t* __restrict xy, 11594 uint32_t* __restrict scores, 11595 uint32_t nCornersMax, 11596 uint32_t* __restrict nCorners, 11597 uint32_t nmsEnabled, 11598 void* __restrict tempBuf); 11599 11600 //--------------------------------------------------------------------------- 11677 //--------------------------------------------------------------------------- 11678 11679 FASTCV_API void 11680 fcvCornerFast10InMaskScoreu8( const uint8_t* __restrict src, 11681 uint32_t srcWidth, 11682 uint32_t srcHeight, 11683 uint32_t srcStride, 11684 int32_t barrier, 11685 uint32_t border, 11686 uint32_t* __restrict xy, 11687 uint32_t* __restrict scores, 11688 uint32_t nCornersMax, 11689 uint32_t* __restrict nCorners, 11690 const uint8_t* __restrict mask, 11691 uint32_t maskWidth, 11692 uint32_t maskHeight, 11693 uint32_t nmsEnabled, 11694 void* __restrict tempBuf); 11695 11696 // ----------------------------------------------------------------------------- 11795 // ----------------------------------------------------------------------------- 11796 11797 FASTCV_API void 11798 fcvTrackLKOpticalFlowu8( const uint8_t* __restrict src1, 11799 const uint8_t* __restrict src2, 11800 int srcWidth, 11801 int srcHeight, 11802 const fcvPyramidLevel* src1Pyr, 11803 const fcvPyramidLevel* src2Pyr, 11804 const fcvPyramidLevel* dx1Pyr, 11805 const fcvPyramidLevel* dy1Pyr, 11806 const float* featureXY, 11807 float* featureXY_out, 11808 int32_t* featureStatus, 11809 int featureLen, 11810 int windowWidth, 11811 int windowHeight, 11812 int maxIterations, 11813 int nPyramidLevels, 11814 float maxResidue, 11815 float minDisplacement, 11816 float minEigenvalue, 11817 int lightingNormalized ); 11818 11819 11820 // ----------------------------------------------------------------------------- 11897 // ----------------------------------------------------------------------------- 11898 11899 FASTCV_API void 11900 fcvTrackLKOpticalFlowu8_v2( const uint8_t* __restrict src1, 11901 const uint8_t* __restrict src2, 11902 uint32_t width, 11903 uint32_t height, 11904 uint32_t stride, 11905 const fcvPyramidLevel_v2 *src1Pyr, 11906 const fcvPyramidLevel_v2 *src2Pyr, 11907 const float32_t* featureXY, 11908 float32_t* featureXY_out, 11909 int32_t* featureStatus, 11910 int32_t featureLen, 11911 int32_t windowWidth, 11912 int32_t windowHeight, 11913 int32_t maxIterations, 11914 int32_t nPyramidLevels); 11915 11916 11917 // ----------------------------------------------------------------------------- 12023 //------------------------------------------------------------------------------ 12024 12025 FASTCV_API void 12026 fcvTrackLKOpticalFlowf32( const uint8_t* __restrict src1, 12027 const uint8_t* __restrict src2, 12028 unsigned int srcWidth, 12029 unsigned int srcHeight, 12030 const fcvPyramidLevel* src1Pyr, 12031 const fcvPyramidLevel* src2Pyr, 12032 const fcvPyramidLevel* dx1Pyr, 12033 const fcvPyramidLevel* dy1Pyr, 12034 const float* featureXY, 12035 float* featureXY_out, 12036 int32_t* featureStatus, 12037 int featureLen, 12038 int windowWidth, 12039 int windowHeight, 12040 int maxIterations, 12041 int nPyramidLevels, 12042 float maxResidue, 12043 float minDisplacement, 12044 float minEigenvalue, 12045 int lightingNormalized ); 12046 12047 12048 // ----------------------------------------------------------------------------- 12084 //------------------------------------------------------------------------------- 12085 12086 FASTCV_API int 12087 fcvPyramidCreatef32( const float* __restrict src, 12088 unsigned int srcWidth, 12089 unsigned int srcHeight, 12090 unsigned int numLevels, 12091 fcvPyramidLevel* pyramid ); 12092 12093 // ----------------------------------------------------------------------------- 12135 //------------------------------------------------------------------------------- 12136 12137 FASTCV_API int 12138 fcvPyramidCreatef32_v2( const float32_t* __restrict src, 12139 uint32_t srcWidth, 12140 uint32_t srcHeight, 12141 uint32_t srcStride, 12142 uint32_t numLevels, 12143 fcvPyramidLevel_v2* pyramid ); 12144 12145 // ----------------------------------------------------------------------------- 12180 //------------------------------------------------------------------------------- 12181 12182 FASTCV_API int 12183 fcvPyramidCreateu8( const uint8_t* __restrict src, 12184 unsigned int srcWidth, 12185 unsigned int srcHeight, 12186 unsigned int numLevels, 12187 fcvPyramidLevel* pyramid ); 12188 12189 // ----------------------------------------------------------------------------- 12231 //------------------------------------------------------------------------------- 12232 12233 FASTCV_API int 12234 fcvPyramidCreateu8_v2( const uint8_t * __restrict src, 12235 uint32_t srcWidth, 12236 uint32_t srcHeight, 12237 uint32_t srcStride, 12238 uint32_t numLevels, 12239 fcvPyramidLevel_v2* pyramid ); 12240 12241 12242 // ----------------------------------------------------------------------------- 12299 //------------------------------------------------------------------------------- 12300 12301 FASTCV_API fcvStatus 12302 fcvPyramidCreateu8_v3(const uint8_t * __restrict src, 12303 uint32_t srcWidth, 12304 uint32_t srcHeight, 12305 uint32_t srcStride, 12306 uint32_t numLevels, 12307 fcvPyramidScale scale, 12308 fcvPyramidLevel_v2* __restrict pyramidGaussian); 12309 12310 // ----------------------------------------------------------------------------- 12327 //------------------------------------------------------------------------------- 12328 12329 FASTCV_API int 12330 fcvPyramidSobelGradientCreatei16( const fcvPyramidLevel* imgPyr, 12331 fcvPyramidLevel* dxPyr, 12332 fcvPyramidLevel* dyPyr, 12333 unsigned int numLevels ); 12334 12335 12336 // ----------------------------------------------------------------------------- 12353 //------------------------------------------------------------------------------- 12354 12355 FASTCV_API int 12356 fcvPyramidSobelGradientCreatef32( const fcvPyramidLevel* imgPyr, 12357 fcvPyramidLevel* dxPyr, 12358 fcvPyramidLevel* dyPyr, 12359 unsigned int numLevels ); 12360 12361 12362 // ----------------------------------------------------------------------------- 12379 // ----------------------------------------------------------------------------- 12380 12381 FASTCV_API int 12382 fcvPyramidSobelGradientCreatei8( const fcvPyramidLevel* imgPyr, 12383 fcvPyramidLevel* dxPyr, 12384 fcvPyramidLevel* dyPyr, 12385 unsigned int numLevels ); 12386 12387 12388 //------------------------------------------------------------------------------ 12437 //------------------------------------------------------------------------------ 12438 12439 FASTCV_API void 12440 fcvImageGradientSobelPlanars16( const uint8_t* __restrict src, 12441 unsigned int srcWidth, 12442 unsigned int srcHeight, 12443 unsigned int srcStride, 12444 int16_t* __restrict dx, 12445 int16_t* __restrict dy); 12446 12447 //------------------------------------------------------------------------------ 12502 //------------------------------------------------------------------------------ 12503 12504 FASTCV_API void 12505 fcvImageGradientSobelPlanars16_v2( const uint8_t* __restrict src, 12506 unsigned int srcWidth, 12507 unsigned int srcHeight, 12508 unsigned int srcStride, 12509 int16_t* __restrict dx, 12510 int16_t* __restrict dy, 12511 unsigned int dxyStride ); 12512 12513 12514 //------------------------------------------------------------------------------ 12571 //------------------------------------------------------------------------------ 12572 FASTCV_API void 12573 fcvImageGradientSobelPlanars16_v3( const uint8_t* __restrict src, 12574 unsigned int srcWidth, 12575 unsigned int srcHeight, 12576 unsigned int srcStride, 12577 int16_t* __restrict dx, 12578 int16_t* __restrict dy, 12579 unsigned int dxyStride ); 12580 12581 //------------------------------------------------------------------------------ 12622 //------------------------------------------------------------------------------ 12623 12624 FASTCV_API void 12625 fcvImageGradientSobelInterleaveds16( const uint8_t* __restrict src, 12626 unsigned int srcWidth, 12627 unsigned int srcHeight, 12628 unsigned int srcStride, 12629 int16_t* __restrict gradients ); 12630 12631 //------------------------------------------------------------------------------ 12679 //------------------------------------------------------------------------------ 12680 12681 FASTCV_API void 12682 fcvImageGradientSobelInterleaveds16_v2( const uint8_t* __restrict src, 12683 unsigned int srcWidth, 12684 unsigned int srcHeight, 12685 unsigned int srcStride, 12686 int16_t* __restrict gradients, 12687 unsigned int gradStride ); 12688 12689 // ----------------------------------------------------------------------------- 12740 // ----------------------------------------------------------------------------- 12741 FASTCV_API void 12742 fcvImageGradientSobelInterleaveds16_v3( const uint8_t* __restrict src, 12743 unsigned int srcWidth, 12744 unsigned int srcHeight, 12745 unsigned int srcStride, 12746 int16_t* __restrict gradients, 12747 unsigned int gradStride ); 12748 12749 //------------------------------------------------------------------------------ 12790 //------------------------------------------------------------------------------ 12791 12792 FASTCV_API void 12793 fcvImageGradientSobelInterleavedf32( const uint8_t* __restrict src, 12794 unsigned int srcWidth, 12795 unsigned int srcHeight, 12796 unsigned int srcStride, 12797 float* __restrict gradients); 12798 12799 //------------------------------------------------------------------------------ 12849 //------------------------------------------------------------------------------ 12850 12851 FASTCV_API void 12852 fcvImageGradientSobelInterleavedf32_v2( const uint8_t* __restrict src, 12853 unsigned int srcWidth, 12854 unsigned int srcHeight, 12855 unsigned int srcStride, 12856 float* __restrict gradients, 12857 unsigned int gradStride); 12858 12859 12860 //------------------------------------------------------------------------------ 12907 //------------------------------------------------------------------------------ 12908 12909 FASTCV_API void 12910 fcvImageGradientSobelPlanars8( const uint8_t* __restrict src, 12911 unsigned int srcWidth, 12912 unsigned int srcHeight, 12913 unsigned int srcStride, 12914 int8_t* __restrict dx, 12915 int8_t* __restrict dy); 12916 12917 //------------------------------------------------------------------------------ 12973 //------------------------------------------------------------------------------ 12974 12975 FASTCV_API void 12976 fcvImageGradientSobelPlanars8_v2( const uint8_t* __restrict src, 12977 unsigned int srcWidth, 12978 unsigned int srcHeight, 12979 unsigned int srcStride, 12980 int8_t* __restrict dx, 12981 int8_t* __restrict dy, 12982 unsigned int dxyStride ); 12983 12984 12985 //------------------------------------------------------------------------------ 13032 //------------------------------------------------------------------------------ 13033 FASTCV_API void 13034 fcvImageGradientSobelPlanarf32( const uint8_t* __restrict src, 13035 unsigned int srcWidth, 13036 unsigned int srcHeight, 13037 unsigned int srcStride, 13038 float* dx, 13039 float* dy); 13040 13041 //------------------------------------------------------------------------------ 13097 //------------------------------------------------------------------------------ 13098 FASTCV_API void 13099 fcvImageGradientSobelPlanarf32_v2( const uint8_t* __restrict src, 13100 unsigned int srcWidth, 13101 unsigned int srcHeight, 13102 unsigned int srcStride, 13103 float* dx, 13104 float* dy, 13105 unsigned int dxyStride ); 13106 13107 13108 //------------------------------------------------------------------------------ 13155 //------------------------------------------------------------------------------ 13156 FASTCV_API void 13157 fcvImageGradientSobelPlanarf32f32( const float * __restrict src, 13158 unsigned int srcWidth, 13159 unsigned int srcHeight, 13160 unsigned int srcStride, 13161 float* dx, 13162 float* dy); 13163 13164 13165 //------------------------------------------------------------------------------ 13222 //------------------------------------------------------------------------------ 13223 FASTCV_API void 13224 fcvImageGradientSobelPlanarf32f32_v2( const float * __restrict src, 13225 unsigned int srcWidth, 13226 unsigned int srcHeight, 13227 unsigned int srcStride, 13228 float* dx, 13229 float* dy, 13230 unsigned int dxyStride ); 13231 13232 13233 //------------------------------------------------------------------------------ 13352 //------------------------------------------------------------------------------ 13353 FASTCV_API int 13354 fcvTrackBMOpticalFlow16x16u8( const uint8_t* __restrict src1, 13355 const uint8_t* __restrict src2, 13356 uint32_t srcWidth, 13357 uint32_t srcHeight, 13358 uint32_t srcStride, 13359 uint32_t roiLeft, 13360 uint32_t roiTop, 13361 uint32_t roiRight, 13362 uint32_t roiBottom, 13363 uint32_t shiftSize, 13364 uint32_t searchWidth, 13365 uint32_t searchHeight, 13366 uint32_t searchStep, 13367 uint32_t usePrevious, 13368 uint32_t * numMv, 13369 uint32_t * locX, 13370 uint32_t * locY, 13371 uint32_t * mvX, 13372 uint32_t * mvY); 13373 13374 //------------------------------------------------------------------------------ 13455 //------------------------------------------------------------------------------ 13456 FASTCV_API fcvStatus 13457 fcvNCCPatchesOnRectu8 ( const uint8_t* __restrict patches, 13458 uint32_t patchWidth, 13459 uint32_t patchHeight, 13460 const uint8_t* __restrict src, 13461 uint32_t srcWidth, 13462 uint32_t srcHeight, 13463 uint32_t srcStride, 13464 const uint32_t * __restrict searchCenterX, 13465 const uint32_t * __restrict searchCenterY, 13466 uint32_t searchWidth, 13467 uint32_t searchHeight, 13468 int32_t filterLowVariance, 13469 uint32_t* __restrict bestX, 13470 uint32_t* __restrict bestY, 13471 uint32_t* __restrict bestNCC, 13472 int32_t findSubPixel, 13473 float32_t* __restrict subX, 13474 float32_t* __restrict subY, 13475 uint32_t numSearches ); 13476 13477 //------------------------------------------------------------------------------ 13515 //------------------------------------------------------------------------------ 13516 13517 FASTCV_API void 13518 fcvBitwiseOru8(const uint8_t* __restrict src1, 13519 const uint8_t* __restrict src2, 13520 uint32_t srcWidth, 13521 uint32_t srcHeight, 13522 uint32_t srcStride, 13523 uint8_t * __restrict dst, 13524 uint32_t dstStride, 13525 uint8_t * __restrict mask, 13526 uint32_t maskStride ); 13527 13528 //------------------------------------------------------------------------------ 13566 //------------------------------------------------------------------------------ 13567 13568 FASTCV_API void 13569 fcvBitwiseOrs32(const int32_t* __restrict src1, 13570 const int32_t* __restrict src2, 13571 uint32_t srcWidth, 13572 uint32_t srcHeight, 13573 uint32_t srcStride, 13574 int32_t * __restrict dst, 13575 uint32_t dstStride, 13576 uint8_t * __restrict mask, 13577 uint32_t maskStride); 13578 13579 13580 //------------------------------------------------------------------------------ 13614 //------------------------------------------------------------------------------ 13615 FASTCV_API void 13616 fcvColorRGB888ToGrayu8( const uint8_t* __restrict src, 13617 uint32_t srcWidth, 13618 uint32_t srcHeight, 13619 uint32_t srcStride, 13620 uint8_t* __restrict dst, 13621 uint32_t dstStride); 13622 13623 13624 //------------------------------------------------------------------------------ 13659 //------------------------------------------------------------------------------ 13660 13661 FASTCV_API void 13662 fcvTiltedIntegralu8s32( const uint8_t* __restrict src, 13663 uint32_t srcWidth, 13664 uint32_t srcHeight, 13665 uint32_t srcStride, 13666 int32_t* __restrict dst, 13667 uint32_t dstStride); 13668 13669 //------------------------------------------------------------------------------ 13721 //------------------------------------------------------------------------------ 13722 FASTCV_API void 13723 fcvConvValids16( const int16_t* __restrict src1, 13724 uint32_t src1Width, 13725 uint32_t src1Height, 13726 uint32_t src1Stride, 13727 const int16_t* __restrict src2, 13728 uint32_t src2Width, 13729 uint32_t src2Height, 13730 uint32_t src2Stride, 13731 int32_t* __restrict dst, 13732 uint32_t dstStride); 13733 13734 13735 13736 13737 //--------------------------------------------------------------------------- 13751 //------------------------------------------------------------------------------ 13752 FASTCV_API void 13753 fcvBoundingRectangle(const uint32_t * __restrict xy, uint32_t numPoints, 13754 uint32_t * rectTopLeftX, uint32_t * rectTopLeftY, 13755 uint32_t * rectWidth, uint32_t *rectHeight); 13756 13757 13758 //------------------------------------------------------------------------------ 13796 //------------------------------------------------------------------------------ 13797 13798 FASTCV_API void 13799 fcvUpsampleVerticalu8( const uint8_t* __restrict src, 13800 uint32_t srcWidth, 13801 uint32_t srcHeight, 13802 uint32_t srcStride, 13803 uint8_t* __restrict dst, 13804 uint32_t dstStride ); 13805 13806 13807 //------------------------------------------------------------------------------ 13845 //------------------------------------------------------------------------------ 13846 13847 FASTCV_API void 13848 fcvUpsampleHorizontalu8( const uint8_t* __restrict src, 13849 uint32_t srcWidth, 13850 uint32_t srcHeight, 13851 uint32_t srcStride, 13852 uint8_t* __restrict dst, 13853 uint32_t dstStride ); 13854 13855 13856 //------------------------------------------------------------------------------ 13895 //------------------------------------------------------------------------------ 13896 13897 FASTCV_API void 13898 fcvUpsample2Du8( const uint8_t* __restrict src, 13899 uint32_t srcWidth, 13900 uint32_t srcHeight, 13901 uint32_t srcStride, 13902 uint8_t* __restrict dst, 13903 uint32_t dstStride ); 13904 13905 13906 //------------------------------------------------------------------------------ 13944 //------------------------------------------------------------------------------ 13945 13946 FASTCV_API void 13947 fcvUpsampleVerticalInterleavedu8( const uint8_t* __restrict src, 13948 uint32_t srcWidth, 13949 uint32_t srcHeight, 13950 uint32_t srcStride, 13951 uint8_t* __restrict dst, 13952 uint32_t dstStride ); 13953 13954 13955 //------------------------------------------------------------------------------ 13993 //------------------------------------------------------------------------------ 13994 13995 FASTCV_API void 13996 fcvUpsampleHorizontalInterleavedu8( const uint8_t* __restrict src, 13997 uint32_t srcWidth, 13998 uint32_t srcHeight, 13999 uint32_t srcStride, 14000 uint8_t* __restrict dst, 14001 uint32_t dstStride ); 14002 14003 14004 //------------------------------------------------------------------------------ 14043 //------------------------------------------------------------------------------ 14044 14045 FASTCV_API void 14046 fcvUpsample2DInterleavedu8( const uint8_t* __restrict src, 14047 uint32_t srcWidth, 14048 uint32_t srcHeight, 14049 uint32_t srcStride, 14050 uint8_t* __restrict dst, 14051 uint32_t dstStride ); 14052 14053 //------------------------------------------------------------------------------ 14124 //------------------------------------------------------------------------------ 14125 14126 FASTCV_API void 14127 fcvColorRGB565ToYCbCr444Planaru8( const uint8_t* __restrict src, 14128 uint32_t srcWidth, 14129 uint32_t srcHeight, 14130 uint32_t srcStride, 14131 uint8_t* __restrict dstY, 14132 uint8_t* __restrict dstCb, 14133 uint8_t* __restrict dstCr, 14134 uint32_t dstYStride, 14135 uint32_t dstCbStride, 14136 uint32_t dstCrStride ); 14137 14138 14139 //------------------------------------------------------------------------------ 14213 //------------------------------------------------------------------------------ 14214 14215 FASTCV_API void 14216 fcvColorRGB565ToYCbCr422Planaru8( const uint8_t* __restrict src, 14217 uint32_t srcWidth, 14218 uint32_t srcHeight, 14219 uint32_t srcStride, 14220 uint8_t* __restrict dstY, 14221 uint8_t* __restrict dstCb, 14222 uint8_t* __restrict dstCr, 14223 uint32_t dstYStride, 14224 uint32_t dstCbStride, 14225 uint32_t dstCrStride ); 14226 14227 14228 //------------------------------------------------------------------------------ 14303 //------------------------------------------------------------------------------ 14304 14305 FASTCV_API void 14306 fcvColorRGB565ToYCbCr420Planaru8( const uint8_t* __restrict src, 14307 uint32_t srcWidth, 14308 uint32_t srcHeight, 14309 uint32_t srcStride, 14310 uint8_t* __restrict dstY, 14311 uint8_t* __restrict dstCb, 14312 uint8_t* __restrict dstCr, 14313 uint32_t dstYStride, 14314 uint32_t dstCbStride, 14315 uint32_t dstCrStride ); 14316 14317 14318 //------------------------------------------------------------------------------ 14389 //------------------------------------------------------------------------------ 14390 14391 FASTCV_API void 14392 fcvColorRGB888ToYCbCr444Planaru8( const uint8_t* __restrict src, 14393 uint32_t srcWidth, 14394 uint32_t srcHeight, 14395 uint32_t srcStride, 14396 uint8_t* __restrict dstY, 14397 uint8_t* __restrict dstCb, 14398 uint8_t* __restrict dstCr, 14399 uint32_t dstYStride, 14400 uint32_t dstCbStride, 14401 uint32_t dstCrStride ); 14402 14403 14404 //------------------------------------------------------------------------------ 14458 14479 //------------------------------------------------------------------------------ 14480 14481 FASTCV_API void 14482 fcvColorRGB888ToYCbCr422Planaru8( const uint8_t* __restrict src, 14483 uint32_t srcWidth, 14484 uint32_t srcHeight, 14485 uint32_t srcStride, 14486 uint8_t* __restrict dstY, 14487 uint8_t* __restrict dstCb, 14488 uint8_t* __restrict dstCr, 14489 uint32_t dstYStride, 14490 uint32_t dstCbStride, 14491 uint32_t dstCrStride ); 14492 14493 14494 //------------------------------------------------------------------------------ 14569 //------------------------------------------------------------------------------ 14570 14571 FASTCV_API void 14572 fcvColorRGB888ToYCbCr420Planaru8( const uint8_t* __restrict src, 14573 uint32_t srcWidth, 14574 uint32_t srcHeight, 14575 uint32_t srcStride, 14576 uint8_t* __restrict dstY, 14577 uint8_t* __restrict dstCb, 14578 uint8_t* __restrict dstCr, 14579 uint32_t dstYStride, 14580 uint32_t dstCbStride, 14581 uint32_t dstCrStride ); 14582 14583 14584 //------------------------------------------------------------------------------ 14656 //------------------------------------------------------------------------------ 14657 14658 FASTCV_API void 14659 fcvColorRGBA8888ToYCbCr444Planaru8( const uint8_t* __restrict src, 14660 uint32_t srcWidth, 14661 uint32_t srcHeight, 14662 uint32_t srcStride, 14663 uint8_t* __restrict dstY, 14664 uint8_t* __restrict dstCb, 14665 uint8_t* __restrict dstCr, 14666 uint32_t dstYStride, 14667 uint32_t dstCbStride, 14668 uint32_t dstCrStride ); 14669 14670 14671 //------------------------------------------------------------------------------ 14746 //------------------------------------------------------------------------------ 14747 14748 FASTCV_API void 14749 fcvColorRGBA8888ToYCbCr422Planaru8( const uint8_t* __restrict src, 14750 uint32_t srcWidth, 14751 uint32_t srcHeight, 14752 uint32_t srcStride, 14753 uint8_t* __restrict dstY, 14754 uint8_t* __restrict dstCb, 14755 uint8_t* __restrict dstCr, 14756 uint32_t dstYStride, 14757 uint32_t dstCbStride, 14758 uint32_t dstCrStride ); 14759 14760 14761 //------------------------------------------------------------------------------ 14837 //------------------------------------------------------------------------------ 14838 14839 FASTCV_API void 14840 fcvColorRGBA8888ToYCbCr420Planaru8( const uint8_t* __restrict src, 14841 uint32_t srcWidth, 14842 uint32_t srcHeight, 14843 uint32_t srcStride, 14844 uint8_t* __restrict dstY, 14845 uint8_t* __restrict dstCb, 14846 uint8_t* __restrict dstCr, 14847 uint32_t dstYStride, 14848 uint32_t dstCbStride, 14849 uint32_t dstCrStride ); 14850 14851 14852 //------------------------------------------------------------------------------ 14912 //------------------------------------------------------------------------------ 14913 14914 FASTCV_API void 14915 fcvColorRGB565ToYCbCr444PseudoPlanaru8( const uint8_t* __restrict src, 14916 uint32_t srcWidth, 14917 uint32_t srcHeight, 14918 uint32_t srcStride, 14919 uint8_t* __restrict dstY, 14920 uint8_t* __restrict dstC, 14921 uint32_t dstYStride, 14922 uint32_t dstCStride ); 14923 14924 14925 //------------------------------------------------------------------------------ 14987 //------------------------------------------------------------------------------ 14988 14989 FASTCV_API void 14990 fcvColorRGB565ToYCbCr422PseudoPlanaru8( const uint8_t* __restrict src, 14991 uint32_t srcWidth, 14992 uint32_t srcHeight, 14993 uint32_t srcStride, 14994 uint8_t* __restrict dstY, 14995 uint8_t* __restrict dstC, 14996 uint32_t dstYStride, 14997 uint32_t dstCStride ); 14998 14999 15000 //------------------------------------------------------------------------------ 15063 //------------------------------------------------------------------------------ 15064 15065 FASTCV_API void 15066 fcvColorRGB565ToYCbCr420PseudoPlanaru8( const uint8_t* __restrict src, 15067 uint32_t srcWidth, 15068 uint32_t srcHeight, 15069 uint32_t srcStride, 15070 uint8_t* __restrict dstY, 15071 uint8_t* __restrict dstC, 15072 uint32_t dstYStride, 15073 uint32_t dstCStride ); 15074 15075 15076 //------------------------------------------------------------------------------ 15136 //------------------------------------------------------------------------------ 15137 15138 FASTCV_API void 15139 fcvColorRGB888ToYCbCr444PseudoPlanaru8( const uint8_t* __restrict src, 15140 uint32_t srcWidth, 15141 uint32_t srcHeight, 15142 uint32_t srcStride, 15143 uint8_t* __restrict dstY, 15144 uint8_t* __restrict dstC, 15145 uint32_t dstYStride, 15146 uint32_t dstCStride ); 15147 15148 15149 //------------------------------------------------------------------------------ 15211 //------------------------------------------------------------------------------ 15212 15213 FASTCV_API void 15214 fcvColorRGB888ToYCbCr422PseudoPlanaru8( const uint8_t* __restrict src, 15215 uint32_t srcWidth, 15216 uint32_t srcHeight, 15217 uint32_t srcStride, 15218 uint8_t* __restrict dstY, 15219 uint8_t* __restrict dstC, 15220 uint32_t dstYStride, 15221 uint32_t dstCStride ); 15222 15223 15224 //------------------------------------------------------------------------------ 15287 //------------------------------------------------------------------------------ 15288 15289 FASTCV_API void 15290 fcvColorRGB888ToYCbCr420PseudoPlanaru8( const uint8_t* __restrict src, 15291 uint32_t srcWidth, 15292 uint32_t srcHeight, 15293 uint32_t srcStride, 15294 uint8_t* __restrict dstY, 15295 uint8_t* __restrict dstC, 15296 uint32_t dstYStride, 15297 uint32_t dstCStride ); 15298 15299 15300 //------------------------------------------------------------------------------ 15361 //------------------------------------------------------------------------------ 15362 15363 FASTCV_API void 15364 fcvColorRGBA8888ToYCbCr444PseudoPlanaru8( const uint8_t* __restrict src, 15365 uint32_t srcWidth, 15366 uint32_t srcHeight, 15367 uint32_t srcStride, 15368 uint8_t* __restrict dstY, 15369 uint8_t* __restrict dstC, 15370 uint32_t dstYStride, 15371 uint32_t dstCStride ); 15372 15373 15374 //------------------------------------------------------------------------------ 15437 //------------------------------------------------------------------------------ 15438 15439 FASTCV_API void 15440 fcvColorRGBA8888ToYCbCr422PseudoPlanaru8( const uint8_t* __restrict src, 15441 uint32_t srcWidth, 15442 uint32_t srcHeight, 15443 uint32_t srcStride, 15444 uint8_t* __restrict dstY, 15445 uint8_t* __restrict dstC, 15446 uint32_t dstYStride, 15447 uint32_t dstCStride ); 15448 15449 15450 //------------------------------------------------------------------------------ 15514 //------------------------------------------------------------------------------ 15515 15516 FASTCV_API void 15517 fcvColorRGBA8888ToYCbCr420PseudoPlanaru8( const uint8_t* __restrict src, 15518 uint32_t srcWidth, 15519 uint32_t srcHeight, 15520 uint32_t srcStride, 15521 uint8_t* __restrict dstY, 15522 uint8_t* __restrict dstC, 15523 uint32_t dstYStride, 15524 uint32_t dstCStride ); 15525 15526 15527 //------------------------------------------------------------------------------ 15565 //------------------------------------------------------------------------------ 15566 15567 FASTCV_API void 15568 fcvColorRGB565ToRGB888u8( const uint8_t* __restrict src, 15569 uint32_t srcWidth, 15570 uint32_t srcHeight, 15571 uint32_t srcStride, 15572 uint8_t* __restrict dst, 15573 uint32_t dstStride ); 15574 15575 15576 //------------------------------------------------------------------------------ 15614 //------------------------------------------------------------------------------ 15615 15616 FASTCV_API void 15617 fcvColorRGB565ToRGBA8888u8( const uint8_t* __restrict src, 15618 uint32_t srcWidth, 15619 uint32_t srcHeight, 15620 uint32_t srcStride, 15621 uint8_t* __restrict dst, 15622 uint32_t dstStride ); 15623 15624 15625 //------------------------------------------------------------------------------ 15663 //------------------------------------------------------------------------------ 15664 15665 FASTCV_API void 15666 fcvColorRGB565ToBGR565u8( const uint8_t* __restrict src, 15667 uint32_t srcWidth, 15668 uint32_t srcHeight, 15669 uint32_t srcStride, 15670 uint8_t* __restrict dst, 15671 uint32_t dstStride ); 15672 15673 15674 //------------------------------------------------------------------------------ 15712 //------------------------------------------------------------------------------ 15713 15714 FASTCV_API void 15715 fcvColorRGB565ToBGR888u8( const uint8_t* __restrict src, 15716 uint32_t srcWidth, 15717 uint32_t srcHeight, 15718 uint32_t srcStride, 15719 uint8_t* __restrict dst, 15720 uint32_t dstStride ); 15721 15722 15723 //------------------------------------------------------------------------------ 15761 //------------------------------------------------------------------------------ 15762 15763 FASTCV_API void 15764 fcvColorRGB565ToBGRA8888u8( const uint8_t* __restrict src, 15765 uint32_t srcWidth, 15766 uint32_t srcHeight, 15767 uint32_t srcStride, 15768 uint8_t* __restrict dst, 15769 uint32_t dstStride ); 15770 15771 15772 //------------------------------------------------------------------------------ 15810 //------------------------------------------------------------------------------ 15811 15812 FASTCV_API void 15813 fcvColorRGB888ToRGB565u8( const uint8_t* __restrict src, 15814 uint32_t srcWidth, 15815 uint32_t srcHeight, 15816 uint32_t srcStride, 15817 uint8_t* __restrict dst, 15818 uint32_t dstStride ); 15819 15820 //------------------------------------------------------------------------------ 15858 //------------------------------------------------------------------------------ 15859 15860 FASTCV_API void 15861 fcvColorRGB888ToRGBA8888u8( const uint8_t* __restrict src, 15862 uint32_t srcWidth, 15863 uint32_t srcHeight, 15864 uint32_t srcStride, 15865 uint8_t* __restrict dst, 15866 uint32_t dstStride ); 15867 15868 15869 //------------------------------------------------------------------------------ 15907 //------------------------------------------------------------------------------ 15908 15909 FASTCV_API void 15910 fcvColorRGB888ToBGR565u8( const uint8_t* __restrict src, 15911 uint32_t srcWidth, 15912 uint32_t srcHeight, 15913 uint32_t srcStride, 15914 uint8_t* __restrict dst, 15915 uint32_t dstStride ); 15916 15917 15918 //------------------------------------------------------------------------------ 15956 //------------------------------------------------------------------------------ 15957 15958 FASTCV_API void 15959 fcvColorRGB888ToBGR888u8( const uint8_t* __restrict src, 15960 uint32_t srcWidth, 15961 uint32_t srcHeight, 15962 uint32_t srcStride, 15963 uint8_t* __restrict dst, 15964 uint32_t dstStride ); 15965 15966 15967 //------------------------------------------------------------------------------ 16005 //------------------------------------------------------------------------------ 16006 16007 FASTCV_API void 16008 fcvColorRGB888ToBGRA8888u8( const uint8_t* __restrict src, 16009 uint32_t srcWidth, 16010 uint32_t srcHeight, 16011 uint32_t srcStride, 16012 uint8_t* __restrict dst, 16013 uint32_t dstStride ); 16014 16015 16016 //------------------------------------------------------------------------------ 16054 //------------------------------------------------------------------------------ 16055 16056 FASTCV_API void 16057 fcvColorRGBA8888ToRGB565u8( const uint8_t* __restrict src, 16058 uint32_t srcWidth, 16059 uint32_t srcHeight, 16060 uint32_t srcStride, 16061 uint8_t* __restrict dst, 16062 uint32_t dstStride ); 16063 16064 //------------------------------------------------------------------------------ 16102 //------------------------------------------------------------------------------ 16103 16104 FASTCV_API void 16105 fcvColorRGBA8888ToRGB888u8( const uint8_t* __restrict src, 16106 uint32_t srcWidth, 16107 uint32_t srcHeight, 16108 uint32_t srcStride, 16109 uint8_t* __restrict dst, 16110 uint32_t dstStride ); 16111 16112 16113 //------------------------------------------------------------------------------ 16151 //------------------------------------------------------------------------------ 16152 16153 FASTCV_API void 16154 fcvColorRGBA8888ToBGR565u8( const uint8_t* __restrict src, 16155 uint32_t srcWidth, 16156 uint32_t srcHeight, 16157 uint32_t srcStride, 16158 uint8_t* __restrict dst, 16159 uint32_t dstStride ); 16160 16161 16162 //------------------------------------------------------------------------------ 16200 //------------------------------------------------------------------------------ 16201 16202 FASTCV_API void 16203 fcvColorRGBA8888ToBGR888u8( const uint8_t* __restrict src, 16204 uint32_t srcWidth, 16205 uint32_t srcHeight, 16206 uint32_t srcStride, 16207 uint8_t* __restrict dst, 16208 uint32_t dstStride ); 16209 16210 16211 //------------------------------------------------------------------------------ 16249 //------------------------------------------------------------------------------ 16250 16251 FASTCV_API void 16252 fcvColorRGBA8888ToBGRA8888u8( const uint8_t* __restrict src, 16253 uint32_t srcWidth, 16254 uint32_t srcHeight, 16255 uint32_t srcStride, 16256 uint8_t* __restrict dst, 16257 uint32_t dstStride ); 16258 16259 //------------------------------------------------------------------------------ 16304 //------------------------------------------------------------------------------ 16305 16306 FASTCV_API void 16307 fcvColorRGBA8888ToLABu8( const uint8_t* __restrict src, 16308 uint32_t srcWidth, 16309 uint32_t srcHeight, 16310 uint32_t srcStride, 16311 uint8_t* __restrict dst, 16312 uint32_t dstStride ); 16313 16314 //------------------------------------------------------------------------------ 16320 16400 //------------------------------------------------------------------------------ 16401 16402 FASTCV_API void 16403 fcvColorYCbCr444PlanarToYCbCr422Planaru8( const uint8_t* srcY, 16404 const uint8_t* __restrict srcCb, 16405 const uint8_t* __restrict srcCr, 16406 uint32_t srcWidth, 16407 uint32_t srcHeight, 16408 uint32_t srcYStride, 16409 uint32_t srcCbStride, 16410 uint32_t srcCrStride, 16411 uint8_t* dstY, 16412 uint8_t* __restrict dstCb, 16413 uint8_t* __restrict dstCr, 16414 uint32_t dstYStride, 16415 uint32_t dstCbStride, 16416 uint32_t dstCrStride ); 16417 16418 16419 //------------------------------------------------------------------------------ 16503 //------------------------------------------------------------------------------ 16504 16505 FASTCV_API void 16506 fcvColorYCbCr444PlanarToYCbCr420Planaru8( const uint8_t* srcY, 16507 const uint8_t* __restrict srcCb, 16508 const uint8_t* __restrict srcCr, 16509 uint32_t srcWidth, 16510 uint32_t srcHeight, 16511 uint32_t srcYStride, 16512 uint32_t srcCbStride, 16513 uint32_t srcCrStride, 16514 uint8_t* dstY, 16515 uint8_t* __restrict dstCb, 16516 uint8_t* __restrict dstCr, 16517 uint32_t dstYStride, 16518 uint32_t dstCbStride, 16519 uint32_t dstCrStride ); 16520 16521 16522 //------------------------------------------------------------------------------ 16593 //------------------------------------------------------------------------------ 16594 16595 FASTCV_API void 16596 fcvColorYCbCr444PlanarToYCbCr444PseudoPlanaru8( const uint8_t* srcY, 16597 const uint8_t* __restrict srcCb, 16598 const uint8_t* __restrict srcCr, 16599 uint32_t srcWidth, 16600 uint32_t srcHeight, 16601 uint32_t srcYStride, 16602 uint32_t srcCbStride, 16603 uint32_t srcCrStride, 16604 uint8_t* dstY, 16605 uint8_t* __restrict dstC, 16606 uint32_t dstYStride, 16607 uint32_t dstCStride ); 16608 16609 16610 //------------------------------------------------------------------------------ 16681 //------------------------------------------------------------------------------ 16682 16683 FASTCV_API void 16684 fcvColorYCbCr444PlanarToYCbCr422PseudoPlanaru8( const uint8_t* srcY, 16685 const uint8_t* __restrict srcCb, 16686 const uint8_t* __restrict srcCr, 16687 uint32_t srcWidth, 16688 uint32_t srcHeight, 16689 uint32_t srcYStride, 16690 uint32_t srcCbStride, 16691 uint32_t srcCrStride, 16692 uint8_t* dstY, 16693 uint8_t* __restrict dstC, 16694 uint32_t dstYStride, 16695 uint32_t dstCStride ); 16696 16697 16698 //------------------------------------------------------------------------------ 16769 //------------------------------------------------------------------------------ 16770 16771 FASTCV_API void 16772 fcvColorYCbCr444PlanarToYCbCr420PseudoPlanaru8( const uint8_t* srcY, 16773 const uint8_t* __restrict srcCb, 16774 const uint8_t* __restrict srcCr, 16775 uint32_t srcWidth, 16776 uint32_t srcHeight, 16777 uint32_t srcYStride, 16778 uint32_t srcCbStride, 16779 uint32_t srcCrStride, 16780 uint8_t* dstY, 16781 uint8_t* __restrict dstC, 16782 uint32_t dstYStride, 16783 uint32_t dstCStride ); 16784 16785 16786 //------------------------------------------------------------------------------ 16792 16870 //------------------------------------------------------------------------------ 16871 16872 FASTCV_API void 16873 fcvColorYCbCr422PlanarToYCbCr444Planaru8( const uint8_t* srcY, 16874 const uint8_t* __restrict srcCb, 16875 const uint8_t* __restrict srcCr, 16876 uint32_t srcWidth, 16877 uint32_t srcHeight, 16878 uint32_t srcYStride, 16879 uint32_t srcCbStride, 16880 uint32_t srcCrStride, 16881 uint8_t* dstY, 16882 uint8_t* __restrict dstCb, 16883 uint8_t* __restrict dstCr, 16884 uint32_t dstYStride, 16885 uint32_t dstCbStride, 16886 uint32_t dstCrStride ); 16887 16888 16889 //------------------------------------------------------------------------------ 16895 16973 //------------------------------------------------------------------------------ 16974 16975 FASTCV_API void 16976 fcvColorYCbCr422PlanarToYCbCr420Planaru8( const uint8_t* srcY, 16977 const uint8_t* __restrict srcCb, 16978 const uint8_t* __restrict srcCr, 16979 uint32_t srcWidth, 16980 uint32_t srcHeight, 16981 uint32_t srcYStride, 16982 uint32_t srcCbStride, 16983 uint32_t srcCrStride, 16984 uint8_t* dstY, 16985 uint8_t* __restrict dstCb, 16986 uint8_t* __restrict dstCr, 16987 uint32_t dstYStride, 16988 uint32_t dstCbStride, 16989 uint32_t dstCrStride ); 16990 16991 16992 //------------------------------------------------------------------------------ 17063 //------------------------------------------------------------------------------ 17064 17065 FASTCV_API void 17066 fcvColorYCbCr422PlanarToYCbCr444PseudoPlanaru8( const uint8_t* srcY, 17067 const uint8_t* __restrict srcCb, 17068 const uint8_t* __restrict srcCr, 17069 uint32_t srcWidth, 17070 uint32_t srcHeight, 17071 uint32_t srcYStride, 17072 uint32_t srcCbStride, 17073 uint32_t srcCrStride, 17074 uint8_t* dstY, 17075 uint8_t* __restrict dstC, 17076 uint32_t dstYStride, 17077 uint32_t dstCStride ); 17078 17079 17080 //------------------------------------------------------------------------------ 17152 //------------------------------------------------------------------------------ 17153 17154 FASTCV_API void 17155 fcvColorYCbCr422PlanarToYCbCr422PseudoPlanaru8( const uint8_t* srcY, 17156 const uint8_t* __restrict srcCb, 17157 const uint8_t* __restrict srcCr, 17158 uint32_t srcWidth, 17159 uint32_t srcHeight, 17160 uint32_t srcYStride, 17161 uint32_t srcCbStride, 17162 uint32_t srcCrStride, 17163 uint8_t* dstY, 17164 uint8_t* __restrict dstC, 17165 uint32_t dstYStride, 17166 uint32_t dstCStride ); 17167 17168 17169 //------------------------------------------------------------------------------ 17240 //------------------------------------------------------------------------------ 17241 17242 FASTCV_API void 17243 fcvColorYCbCr422PlanarToYCbCr420PseudoPlanaru8( const uint8_t* srcY, 17244 const uint8_t* __restrict srcCb, 17245 const uint8_t* __restrict srcCr, 17246 uint32_t srcWidth, 17247 uint32_t srcHeight, 17248 uint32_t srcYStride, 17249 uint32_t srcCbStride, 17250 uint32_t srcCrStride, 17251 uint8_t* dstY, 17252 uint8_t* __restrict dstC, 17253 uint32_t dstYStride, 17254 uint32_t dstCStride ); 17255 17256 17257 //------------------------------------------------------------------------------ 17340 //------------------------------------------------------------------------------ 17341 17342 FASTCV_API void 17343 fcvColorYCbCr420PlanarToYCbCr444Planaru8( const uint8_t* srcY, 17344 const uint8_t* __restrict srcCb, 17345 const uint8_t* __restrict srcCr, 17346 uint32_t srcWidth, 17347 uint32_t srcHeight, 17348 uint32_t srcYStride, 17349 uint32_t srcCbStride, 17350 uint32_t srcCrStride, 17351 uint8_t* dstY, 17352 uint8_t* __restrict dstCb, 17353 uint8_t* __restrict dstCr, 17354 uint32_t dstYStride, 17355 uint32_t dstCbStride, 17356 uint32_t dstCrStride ); 17357 17358 17359 //------------------------------------------------------------------------------ 17442 //------------------------------------------------------------------------------ 17443 17444 FASTCV_API void 17445 fcvColorYCbCr420PlanarToYCbCr422Planaru8( const uint8_t* srcY, 17446 const uint8_t* __restrict srcCb, 17447 const uint8_t* __restrict srcCr, 17448 uint32_t srcWidth, 17449 uint32_t srcHeight, 17450 uint32_t srcYStride, 17451 uint32_t srcCbStride, 17452 uint32_t srcCrStride, 17453 uint8_t* dstY, 17454 uint8_t* __restrict dstCb, 17455 uint8_t* __restrict dstCr, 17456 uint32_t dstYStride, 17457 uint32_t dstCbStride, 17458 uint32_t dstCrStride ); 17459 17460 17461 //------------------------------------------------------------------------------ 17532 //------------------------------------------------------------------------------ 17533 17534 FASTCV_API void 17535 fcvColorYCbCr420PlanarToYCbCr444PseudoPlanaru8( const uint8_t* srcY, 17536 const uint8_t* __restrict srcCb, 17537 const uint8_t* __restrict srcCr, 17538 uint32_t srcWidth, 17539 uint32_t srcHeight, 17540 uint32_t srcYStride, 17541 uint32_t srcCbStride, 17542 uint32_t srcCrStride, 17543 uint8_t* dstY, 17544 uint8_t* __restrict dstC, 17545 uint32_t dstYStride, 17546 uint32_t dstCStride ); 17547 17548 17549 //------------------------------------------------------------------------------ 17620 //------------------------------------------------------------------------------ 17621 17622 FASTCV_API void 17623 fcvColorYCbCr420PlanarToYCbCr422PseudoPlanaru8( const uint8_t* srcY, 17624 const uint8_t* __restrict srcCb, 17625 const uint8_t* __restrict srcCr, 17626 uint32_t srcWidth, 17627 uint32_t srcHeight, 17628 uint32_t srcYStride, 17629 uint32_t srcCbStride, 17630 uint32_t srcCrStride, 17631 uint8_t* dstY, 17632 uint8_t* __restrict dstC, 17633 uint32_t dstYStride, 17634 uint32_t dstCStride ); 17635 17636 17637 //------------------------------------------------------------------------------ 17708 //------------------------------------------------------------------------------ 17709 17710 FASTCV_API void 17711 fcvColorYCbCr420PlanarToYCbCr420PseudoPlanaru8( const uint8_t* srcY, 17712 const uint8_t* __restrict srcCb, 17713 const uint8_t* __restrict srcCr, 17714 uint32_t srcWidth, 17715 uint32_t srcHeight, 17716 uint32_t srcYStride, 17717 uint32_t srcCbStride, 17718 uint32_t srcCrStride, 17719 uint8_t* dstY, 17720 uint8_t* __restrict dstC, 17721 uint32_t dstYStride, 17722 uint32_t dstCStride ); 17723 17724 17725 //------------------------------------------------------------------------------ 17788 //------------------------------------------------------------------------------ 17789 17790 FASTCV_API void 17791 fcvColorYCbCr444PseudoPlanarToYCbCr422PseudoPlanaru8( const uint8_t* srcY, 17792 const uint8_t* __restrict srcC, 17793 uint32_t srcWidth, 17794 uint32_t srcHeight, 17795 uint32_t srcYStride, 17796 uint32_t srcCStride, 17797 uint8_t* dstY, 17798 uint8_t* __restrict dstC, 17799 uint32_t dstYStride, 17800 uint32_t dstCStride ); 17801 17802 17803 //------------------------------------------------------------------------------ 17866 //------------------------------------------------------------------------------ 17867 17868 FASTCV_API void 17869 fcvColorYCbCr444PseudoPlanarToYCbCr420PseudoPlanaru8( const uint8_t* srcY, 17870 const uint8_t* __restrict srcC, 17871 uint32_t srcWidth, 17872 uint32_t srcHeight, 17873 uint32_t srcYStride, 17874 uint32_t srcCStride, 17875 uint8_t* dstY, 17876 uint8_t* __restrict dstC, 17877 uint32_t dstYStride, 17878 uint32_t dstCStride ); 17879 17880 17881 //------------------------------------------------------------------------------ 17956 //------------------------------------------------------------------------------ 17957 17958 FASTCV_API void 17959 fcvColorYCbCr444PseudoPlanarToYCbCr444Planaru8( const uint8_t* srcY, 17960 const uint8_t* __restrict srcC, 17961 uint32_t srcWidth, 17962 uint32_t srcHeight, 17963 uint32_t srcYStride, 17964 uint32_t srcCStride, 17965 uint8_t* dstY, 17966 uint8_t* __restrict dstCb, 17967 uint8_t* __restrict dstCr, 17968 uint32_t dstYStride, 17969 uint32_t dstCbStride, 17970 uint32_t dstCrStride ); 17971 17972 17973 //------------------------------------------------------------------------------ 18048 //------------------------------------------------------------------------------ 18049 18050 FASTCV_API void 18051 fcvColorYCbCr444PseudoPlanarToYCbCr422Planaru8( const uint8_t* srcY, 18052 const uint8_t* __restrict srcC, 18053 uint32_t srcWidth, 18054 uint32_t srcHeight, 18055 uint32_t srcYStride, 18056 uint32_t srcCStride, 18057 uint8_t* dstY, 18058 uint8_t* __restrict dstCb, 18059 uint8_t* __restrict dstCr, 18060 uint32_t dstYStride, 18061 uint32_t dstCbStride, 18062 uint32_t dstCrStride ); 18063 18064 18065 //------------------------------------------------------------------------------ 18140 //------------------------------------------------------------------------------ 18141 18142 FASTCV_API void 18143 fcvColorYCbCr444PseudoPlanarToYCbCr420Planaru8( const uint8_t* srcY, 18144 const uint8_t* __restrict srcC, 18145 uint32_t srcWidth, 18146 uint32_t srcHeight, 18147 uint32_t srcYStride, 18148 uint32_t srcCStride, 18149 uint8_t* dstY, 18150 uint8_t* __restrict dstCb, 18151 uint8_t* __restrict dstCr, 18152 uint32_t dstYStride, 18153 uint32_t dstCbStride, 18154 uint32_t dstCrStride ); 18155 18156 18157 //------------------------------------------------------------------------------ 18220 //------------------------------------------------------------------------------ 18221 18222 FASTCV_API void 18223 fcvColorYCbCr422PseudoPlanarToYCbCr444PseudoPlanaru8( const uint8_t* srcY, 18224 const uint8_t* __restrict srcC, 18225 uint32_t srcWidth, 18226 uint32_t srcHeight, 18227 uint32_t srcYStride, 18228 uint32_t srcCStride, 18229 uint8_t* dstY, 18230 uint8_t* __restrict dstC, 18231 uint32_t dstYStride, 18232 uint32_t dstCStride ); 18233 18234 18235 //------------------------------------------------------------------------------ 18298 //------------------------------------------------------------------------------ 18299 18300 FASTCV_API void 18301 fcvColorYCbCr422PseudoPlanarToYCbCr420PseudoPlanaru8( const uint8_t* srcY, 18302 const uint8_t* __restrict srcC, 18303 uint32_t srcWidth, 18304 uint32_t srcHeight, 18305 uint32_t srcYStride, 18306 uint32_t srcCStride, 18307 uint8_t* dstY, 18308 uint8_t* __restrict dstC, 18309 uint32_t dstYStride, 18310 uint32_t dstCStride ); 18311 18312 18313 //------------------------------------------------------------------------------ 18388 //------------------------------------------------------------------------------ 18389 18390 FASTCV_API void 18391 fcvColorYCbCr422PseudoPlanarToYCbCr444Planaru8( const uint8_t* srcY, 18392 const uint8_t* __restrict srcC, 18393 uint32_t srcWidth, 18394 uint32_t srcHeight, 18395 uint32_t srcYStride, 18396 uint32_t srcCStride, 18397 uint8_t* dstY, 18398 uint8_t* __restrict dstCb, 18399 uint8_t* __restrict dstCr, 18400 uint32_t dstYStride, 18401 uint32_t dstCbStride, 18402 uint32_t dstCrStride ); 18403 18404 18405 //------------------------------------------------------------------------------ 18480 //------------------------------------------------------------------------------ 18481 18482 FASTCV_API void 18483 fcvColorYCbCr422PseudoPlanarToYCbCr422Planaru8( const uint8_t* srcY, 18484 const uint8_t* __restrict srcC, 18485 uint32_t srcWidth, 18486 uint32_t srcHeight, 18487 uint32_t srcYStride, 18488 uint32_t srcCStride, 18489 uint8_t* dstY, 18490 uint8_t* __restrict dstCb, 18491 uint8_t* __restrict dstCr, 18492 uint32_t dstYStride, 18493 uint32_t dstCbStride, 18494 uint32_t dstCrStride ); 18495 18496 18497 //------------------------------------------------------------------------------ 18572 //------------------------------------------------------------------------------ 18573 18574 FASTCV_API void 18575 fcvColorYCbCr422PseudoPlanarToYCbCr420Planaru8( const uint8_t* srcY, 18576 const uint8_t* __restrict srcC, 18577 uint32_t srcWidth, 18578 uint32_t srcHeight, 18579 uint32_t srcYStride, 18580 uint32_t srcCStride, 18581 uint8_t* dstY, 18582 uint8_t* __restrict dstCb, 18583 uint8_t* __restrict dstCr, 18584 uint32_t dstYStride, 18585 uint32_t dstCbStride, 18586 uint32_t dstCrStride ); 18587 18588 18589 //------------------------------------------------------------------------------ 18652 //------------------------------------------------------------------------------ 18653 18654 FASTCV_API void 18655 fcvColorYCbCr420PseudoPlanarToYCbCr444PseudoPlanaru8( const uint8_t* srcY, 18656 const uint8_t* __restrict srcC, 18657 uint32_t srcWidth, 18658 uint32_t srcHeight, 18659 uint32_t srcYStride, 18660 uint32_t srcCStride, 18661 uint8_t* dstY, 18662 uint8_t* __restrict dstC, 18663 uint32_t dstYStride, 18664 uint32_t dstCStride ); 18665 18666 18667 //------------------------------------------------------------------------------ 18729 //------------------------------------------------------------------------------ 18730 18731 FASTCV_API void 18732 fcvColorYCbCr420PseudoPlanarToYCbCr422PseudoPlanaru8( const uint8_t* srcY, 18733 const uint8_t* __restrict srcC, 18734 uint32_t srcWidth, 18735 uint32_t srcHeight, 18736 uint32_t srcYStride, 18737 uint32_t srcCStride, 18738 uint8_t* dstY, 18739 uint8_t* __restrict dstC, 18740 uint32_t dstYStride, 18741 uint32_t dstCStride ); 18742 18743 18744 //------------------------------------------------------------------------------ 18819 //------------------------------------------------------------------------------ 18820 18821 FASTCV_API void 18822 fcvColorYCbCr420PseudoPlanarToYCbCr444Planaru8( const uint8_t* srcY, 18823 const uint8_t* __restrict srcC, 18824 uint32_t srcWidth, 18825 uint32_t srcHeight, 18826 uint32_t srcYStride, 18827 uint32_t srcCStride, 18828 uint8_t* dstY, 18829 uint8_t* __restrict dstCb, 18830 uint8_t* __restrict dstCr, 18831 uint32_t dstYStride, 18832 uint32_t dstCbStride, 18833 uint32_t dstCrStride ); 18834 18835 18836 //------------------------------------------------------------------------------ 18911 //------------------------------------------------------------------------------ 18912 18913 FASTCV_API void 18914 fcvColorYCbCr420PseudoPlanarToYCbCr422Planaru8( const uint8_t* srcY, 18915 const uint8_t* __restrict srcC, 18916 uint32_t srcWidth, 18917 uint32_t srcHeight, 18918 uint32_t srcYStride, 18919 uint32_t srcCStride, 18920 uint8_t* dstY, 18921 uint8_t* __restrict dstCb, 18922 uint8_t* __restrict dstCr, 18923 uint32_t dstYStride, 18924 uint32_t dstCbStride, 18925 uint32_t dstCrStride ); 18926 18927 18928 //------------------------------------------------------------------------------ 19003 //------------------------------------------------------------------------------ 19004 19005 FASTCV_API void 19006 fcvColorYCbCr420PseudoPlanarToYCbCr420Planaru8( const uint8_t* srcY, 19007 const uint8_t* __restrict srcC, 19008 uint32_t srcWidth, 19009 uint32_t srcHeight, 19010 uint32_t srcYStride, 19011 uint32_t srcCStride, 19012 uint8_t* dstY, 19013 uint8_t* __restrict dstCb, 19014 uint8_t* __restrict dstCr, 19015 uint32_t dstYStride, 19016 uint32_t dstCbStride, 19017 uint32_t dstCrStride ); 19018 19019 //------------------------------------------------------------------------------ 19086 //------------------------------------------------------------------------------ 19087 19088 FASTCV_API void 19089 fcvColorYCbCr444PlanarToRGB565u8( const uint8_t* __restrict srcY, 19090 const uint8_t* __restrict srcCb, 19091 const uint8_t* __restrict srcCr, 19092 uint32_t srcWidth, 19093 uint32_t srcHeight, 19094 uint32_t srcYStride, 19095 uint32_t srcCbStride, 19096 uint32_t srcCrStride, 19097 uint8_t* __restrict dst, 19098 uint32_t dstStride ); 19099 19100 19101 //------------------------------------------------------------------------------ 19168 //------------------------------------------------------------------------------ 19169 19170 FASTCV_API void 19171 fcvColorYCbCr444PlanarToRGB888u8( const uint8_t* __restrict srcY, 19172 const uint8_t* __restrict srcCb, 19173 const uint8_t* __restrict srcCr, 19174 uint32_t srcWidth, 19175 uint32_t srcHeight, 19176 uint32_t srcYStride, 19177 uint32_t srcCbStride, 19178 uint32_t srcCrStride, 19179 uint8_t* __restrict dst, 19180 uint32_t dstStride ); 19181 19182 19183 //------------------------------------------------------------------------------ 19252 //------------------------------------------------------------------------------ 19253 19254 FASTCV_API void 19255 fcvColorYCbCr444PlanarToRGBA8888u8( const uint8_t* __restrict srcY, 19256 const uint8_t* __restrict srcCb, 19257 const uint8_t* __restrict srcCr, 19258 uint32_t srcWidth, 19259 uint32_t srcHeight, 19260 uint32_t srcYStride, 19261 uint32_t srcCbStride, 19262 uint32_t srcCrStride, 19263 uint8_t* __restrict dst, 19264 uint32_t dstStride ); 19265 19266 19267 //------------------------------------------------------------------------------ 19336 //------------------------------------------------------------------------------ 19337 19338 FASTCV_API void 19339 fcvColorYCbCr422PlanarToRGB565u8( const uint8_t* __restrict srcY, 19340 const uint8_t* __restrict srcCb, 19341 const uint8_t* __restrict srcCr, 19342 uint32_t srcWidth, 19343 uint32_t srcHeight, 19344 uint32_t srcYStride, 19345 uint32_t srcCbStride, 19346 uint32_t srcCrStride, 19347 uint8_t* __restrict dst, 19348 uint32_t dstStride ); 19349 19350 19351 //------------------------------------------------------------------------------ 19420 //------------------------------------------------------------------------------ 19421 19422 FASTCV_API void 19423 fcvColorYCbCr422PlanarToRGB888u8( const uint8_t* __restrict srcY, 19424 const uint8_t* __restrict srcCb, 19425 const uint8_t* __restrict srcCr, 19426 uint32_t srcWidth, 19427 uint32_t srcHeight, 19428 uint32_t srcYStride, 19429 uint32_t srcCbStride, 19430 uint32_t srcCrStride, 19431 uint8_t* __restrict dst, 19432 uint32_t dstStride ); 19433 19434 19435 //------------------------------------------------------------------------------ 19505 //------------------------------------------------------------------------------ 19506 19507 FASTCV_API void 19508 fcvColorYCbCr422PlanarToRGBA8888u8( const uint8_t* __restrict srcY, 19509 const uint8_t* __restrict srcCb, 19510 const uint8_t* __restrict srcCr, 19511 uint32_t srcWidth, 19512 uint32_t srcHeight, 19513 uint32_t srcYStride, 19514 uint32_t srcCbStride, 19515 uint32_t srcCrStride, 19516 uint8_t* __restrict dst, 19517 uint32_t dstStride ); 19518 19519 19520 //------------------------------------------------------------------------------ 19590 //------------------------------------------------------------------------------ 19591 19592 FASTCV_API void 19593 fcvColorYCbCr420PlanarToRGB565u8( const uint8_t* __restrict srcY, 19594 const uint8_t* __restrict srcCb, 19595 const uint8_t* __restrict srcCr, 19596 uint32_t srcWidth, 19597 uint32_t srcHeight, 19598 uint32_t srcYStride, 19599 uint32_t srcCbStride, 19600 uint32_t srcCrStride, 19601 uint8_t* __restrict dst, 19602 uint32_t dstStride ); 19603 19604 19605 //------------------------------------------------------------------------------ 19675 //------------------------------------------------------------------------------ 19676 19677 FASTCV_API void 19678 fcvColorYCbCr420PlanarToRGB888u8( const uint8_t* __restrict srcY, 19679 const uint8_t* __restrict srcCb, 19680 const uint8_t* __restrict srcCr, 19681 uint32_t srcWidth, 19682 uint32_t srcHeight, 19683 uint32_t srcYStride, 19684 uint32_t srcCbStride, 19685 uint32_t srcCrStride, 19686 uint8_t* __restrict dst, 19687 uint32_t dstStride ); 19688 19689 19690 //------------------------------------------------------------------------------ 19761 //------------------------------------------------------------------------------ 19762 19763 FASTCV_API void 19764 fcvColorYCbCr420PlanarToRGBA8888u8( const uint8_t* __restrict srcY, 19765 const uint8_t* __restrict srcCb, 19766 const uint8_t* __restrict srcCr, 19767 uint32_t srcWidth, 19768 uint32_t srcHeight, 19769 uint32_t srcYStride, 19770 uint32_t srcCbStride, 19771 uint32_t srcCrStride, 19772 uint8_t* __restrict dst, 19773 uint32_t dstStride ); 19774 19775 19776 //------------------------------------------------------------------------------ 19833 //------------------------------------------------------------------------------ 19834 19835 FASTCV_API void 19836 fcvColorYCbCr444PseudoPlanarToRGB565u8( const uint8_t* __restrict srcY, 19837 const uint8_t* __restrict srcC, 19838 uint32_t srcWidth, 19839 uint32_t srcHeight, 19840 uint32_t srcYStride, 19841 uint32_t srcCStride, 19842 uint8_t* __restrict dst, 19843 uint32_t dstStride ); 19844 19845 19846 //------------------------------------------------------------------------------ 19903 //------------------------------------------------------------------------------ 19904 19905 FASTCV_API void 19906 fcvColorYCbCr444PseudoPlanarToRGB888u8( const uint8_t* __restrict srcY, 19907 const uint8_t* __restrict srcC, 19908 uint32_t srcWidth, 19909 uint32_t srcHeight, 19910 uint32_t srcYStride, 19911 uint32_t srcCStride, 19912 uint8_t* __restrict dst, 19913 uint32_t dstStride ); 19914 19915 19916 //------------------------------------------------------------------------------ 19974 //------------------------------------------------------------------------------ 19975 19976 FASTCV_API void 19977 fcvColorYCbCr444PseudoPlanarToRGBA8888u8( const uint8_t* __restrict srcY, 19978 const uint8_t* __restrict srcC, 19979 uint32_t srcWidth, 19980 uint32_t srcHeight, 19981 uint32_t srcYStride, 19982 uint32_t srcCStride, 19983 uint8_t* __restrict dst, 19984 uint32_t dstStride ); 19985 19986 19987 //------------------------------------------------------------------------------ 20045 //------------------------------------------------------------------------------ 20046 20047 FASTCV_API void 20048 fcvColorYCbCr422PseudoPlanarToRGB565u8( const uint8_t* __restrict srcY, 20049 const uint8_t* __restrict srcC, 20050 uint32_t srcWidth, 20051 uint32_t srcHeight, 20052 uint32_t srcYStride, 20053 uint32_t srcCStride, 20054 uint8_t* __restrict dst, 20055 uint32_t dstStride ); 20056 20057 20058 //------------------------------------------------------------------------------ 20116 //------------------------------------------------------------------------------ 20117 20118 FASTCV_API void 20119 fcvColorYCbCr422PseudoPlanarToRGB888u8( const uint8_t* __restrict srcY, 20120 const uint8_t* __restrict srcC, 20121 uint32_t srcWidth, 20122 uint32_t srcHeight, 20123 uint32_t srcYStride, 20124 uint32_t srcCStride, 20125 uint8_t* __restrict dst, 20126 uint32_t dstStride ); 20127 20128 20129 //------------------------------------------------------------------------------ 20188 //------------------------------------------------------------------------------ 20189 20190 FASTCV_API void 20191 fcvColorYCbCr422PseudoPlanarToRGBA8888u8( const uint8_t* __restrict srcY, 20192 const uint8_t* __restrict srcC, 20193 uint32_t srcWidth, 20194 uint32_t srcHeight, 20195 uint32_t srcYStride, 20196 uint32_t srcCStride, 20197 uint8_t* __restrict dst, 20198 uint32_t dstStride ); 20199 20200 20201 //------------------------------------------------------------------------------ 20260 //------------------------------------------------------------------------------ 20261 20262 FASTCV_API void 20263 fcvColorYCbCr420PseudoPlanarToRGB565u8( const uint8_t* __restrict srcY, 20264 const uint8_t* __restrict srcC, 20265 uint32_t srcWidth, 20266 uint32_t srcHeight, 20267 uint32_t srcYStride, 20268 uint32_t srcCStride, 20269 uint8_t* __restrict dst, 20270 uint32_t dstStride ); 20271 20272 20273 //------------------------------------------------------------------------------ 20332 //------------------------------------------------------------------------------ 20333 20334 FASTCV_API void 20335 fcvColorYCbCr420PseudoPlanarToRGB888u8( const uint8_t* __restrict srcY, 20336 const uint8_t* __restrict srcC, 20337 uint32_t srcWidth, 20338 uint32_t srcHeight, 20339 uint32_t srcYStride, 20340 uint32_t srcCStride, 20341 uint8_t* __restrict dst, 20342 uint32_t dstStride ); 20343 20344 20345 //------------------------------------------------------------------------------ 20405 //------------------------------------------------------------------------------ 20406 20407 FASTCV_API void 20408 fcvColorYCbCr420PseudoPlanarToRGBA8888u8( const uint8_t* __restrict srcY, 20409 const uint8_t* __restrict srcC, 20410 uint32_t srcWidth, 20411 uint32_t srcHeight, 20412 uint32_t srcYStride, 20413 uint32_t srcCStride, 20414 uint8_t* __restrict dst, 20415 uint32_t dstStride ); 20416 20417 20418 //------------------------------------------------------------------------------ 20475 //------------------------------------------------------------------------------ 20476 20477 FASTCV_API void 20478 fcvEdgeWeightings16( int16_t* __restrict edgeMap, 20479 const uint32_t edgeMapWidth, 20480 const uint32_t edgeMapHeight, 20481 const uint32_t edgeMapStride, 20482 const uint32_t weight, 20483 const uint32_t edge_limit, 20484 const uint32_t hl_threshold, 20485 const uint32_t hh_threshold, 20486 const uint32_t edge_denoise_factor ); 20487 20488 20489 //------------------------------------------------------------------------------ 20540 //------------------------------------------------------------------------------ 20541 20542 FASTCV_API void 20543 fcvDeinterleaveu8( const uint8_t* __restrict src, 20544 uint32_t srcWidth, 20545 uint32_t srcHeight, 20546 uint32_t srcStride, 20547 uint8_t* __restrict dst0, 20548 uint32_t dst0Stride, 20549 uint8_t* __restrict dst1, 20550 uint32_t dst1Stride ); 20551 20552 20553 //------------------------------------------------------------------------------ 20570 20604 //------------------------------------------------------------------------------ 20605 20606 FASTCV_API void 20607 fcvInterleaveu8( const uint8_t* __restrict src0, 20608 const uint8_t* __restrict src1, 20609 uint32_t imageWidth, 20610 uint32_t imageHeight, 20611 uint32_t src0Stride, 20612 uint32_t src1Stride, 20613 uint8_t* __restrict dst, 20614 uint32_t dstStride ); 20615 20616 //------------------------------------------------------------------------------ 20659 //------------------------------------------------------------------------------ 20660 20661 FASTCV_API void 20662 fcvDWTHarrTransposeu8( const uint8_t* __restrict src, 20663 uint32_t srcWidth, 20664 uint32_t srcHeight, 20665 uint32_t srcStride, 20666 int16_t* __restrict dst, 20667 uint32_t dstStride ); 20668 20669 //------------------------------------------------------------------------------ 20709 //------------------------------------------------------------------------------ 20710 20711 FASTCV_API void 20712 fcvDWTHaarTransposeu8( const uint8_t* __restrict src, 20713 uint32_t srcWidth, 20714 uint32_t srcHeight, 20715 uint32_t srcStride, 20716 int16_t* __restrict dst, 20717 uint32_t dstStride ); 20718 20719 //------------------------------------------------------------------------------ 20759 //------------------------------------------------------------------------------ 20760 20761 FASTCV_API void 20762 fcvDWT53TabTransposes16( const int16_t* __restrict src, 20763 uint32_t srcWidth, 20764 uint32_t srcHeight, 20765 uint32_t srcStride, 20766 int16_t* __restrict dst, 20767 uint32_t dstStride ); 20768 20769 //------------------------------------------------------------------------------ 20809 //------------------------------------------------------------------------------ 20810 20811 FASTCV_API void 20812 fcvIDWT53TabTransposes16( const int16_t* __restrict src, 20813 uint32_t srcWidth, 20814 uint32_t srcHeight, 20815 uint32_t srcStride, 20816 int16_t* __restrict dst, 20817 uint32_t dstStride ); 20818 20819 20820 //------------------------------------------------------------------------------ 20863 //------------------------------------------------------------------------------ 20864 20865 FASTCV_API void 20866 fcvIDWTHarrTransposes16( const int16_t* __restrict src, 20867 uint32_t srcWidth, 20868 uint32_t srcHeight, 20869 uint32_t srcStride, 20870 uint8_t* __restrict dst, 20871 uint32_t dstStride ); 20872 20873 20874 //------------------------------------------------------------------------------ 20914 //------------------------------------------------------------------------------ 20915 20916 FASTCV_API void 20917 fcvIDWTHaarTransposes16( const int16_t* __restrict src, 20918 uint32_t srcWidth, 20919 uint32_t srcHeight, 20920 uint32_t srcStride, 20921 uint8_t* __restrict dst, 20922 uint32_t dstStride ); 20923 20924 20925 //------------------------------------------------------------------------------ 20962 //------------------------------------------------------------------------------ 20963 20964 FASTCV_API void 20965 fcvDWTHaaru8( const uint8_t* __restrict src, 20966 uint32_t srcWidth, 20967 uint32_t srcHeight, 20968 uint32_t srcStride, 20969 int16_t* __restrict dst, 20970 uint32_t dstStride ); 20971 20972 20973 //------------------------------------------------------------------------------ 21010 //------------------------------------------------------------------------------ 21011 21012 FASTCV_API void 21013 fcvDWT53Tabs16( const int16_t* __restrict src, 21014 uint32_t srcWidth, 21015 uint32_t srcHeight, 21016 uint32_t srcStride, 21017 int16_t* __restrict dst, 21018 uint32_t dstStride ); 21019 21020 21021 //------------------------------------------------------------------------------ 21058 //------------------------------------------------------------------------------ 21059 21060 FASTCV_API void 21061 fcvIDWT53Tabs16( const int16_t* __restrict src, 21062 uint32_t srcWidth, 21063 uint32_t srcHeight, 21064 uint32_t srcStride, 21065 int16_t* __restrict dst, 21066 uint32_t dstStride ); 21067 21068 21069 //------------------------------------------------------------------------------ 21106 //------------------------------------------------------------------------------ 21107 21108 FASTCV_API void 21109 fcvIDWTHaars16( const int16_t* __restrict src, 21110 uint32_t srcWidth, 21111 uint32_t srcHeight, 21112 uint32_t srcStride, 21113 uint8_t* __restrict dst, 21114 uint32_t dstStride ); 21115 21116 21117 //------------------------------------------------------------------------------ 21153 //------------------------------------------------------------------------------ 21154 21155 FASTCV_API void 21156 fcvDCTu8( const uint8_t* __restrict src, 21157 uint32_t srcWidth, 21158 uint32_t srcHeight, 21159 uint32_t srcStride, 21160 int16_t* __restrict dst, 21161 uint32_t dstStride ); 21162 21163 21164 //------------------------------------------------------------------------------ 21200 //------------------------------------------------------------------------------ 21201 21202 FASTCV_API void 21203 fcvIDCTs16( const int16_t* __restrict src, 21204 uint32_t srcWidth, 21205 uint32_t srcHeight, 21206 uint32_t srcStride, 21207 uint8_t* __restrict dst, 21208 uint32_t dstStride ); 21209 21210 //------------------------------------------------------------------------------ 21256 //------------------------------------------------------------------------------ 21257 21258 FASTCV_API void 21259 fcvScaleUpPolyu8( const uint8_t* __restrict src, 21260 uint32_t srcWidth, 21261 uint32_t srcHeight, 21262 uint32_t srcStride, 21263 uint8_t* __restrict dst, 21264 uint32_t dstWidth, 21265 uint32_t dstHeight, 21266 uint32_t dstStride ); 21267 21268 21269 //------------------------------------------------------------------------------ 21315 //------------------------------------------------------------------------------ 21316 21317 FASTCV_API void 21318 fcvScaleUpPolyInterleaveu8( const uint8_t* __restrict src, 21319 uint32_t srcWidth, 21320 uint32_t srcHeight, 21321 uint32_t srcStride, 21322 uint8_t* __restrict dst, 21323 uint32_t dstWidth, 21324 uint32_t dstHeight, 21325 uint32_t dstStride ); 21326 21327 21328 //------------------------------------------------------------------------------ 21337 21375 //------------------------------------------------------------------------------ 21376 21377 FASTCV_API void 21378 fcvScaleDownMNu8( const uint8_t* __restrict src, 21379 uint32_t srcWidth, 21380 uint32_t srcHeight, 21381 uint32_t srcStride, 21382 uint8_t* __restrict dst, 21383 uint32_t dstWidth, 21384 uint32_t dstHeight, 21385 uint32_t dstStride ); 21386 21387 21388 //------------------------------------------------------------------------------ 21435 //------------------------------------------------------------------------------ 21436 21437 FASTCV_API void 21438 fcvScaleDownMNInterleaveu8( const uint8_t* __restrict src, 21439 uint32_t srcWidth, 21440 uint32_t srcHeight, 21441 uint32_t srcStride, 21442 uint8_t* __restrict dst, 21443 uint32_t dstWidth, 21444 uint32_t dstHeight, 21445 uint32_t dstStride ); 21446 21447 //--------------------------------------------------------------------------- 21491 //--------------------------------------------------------------------------- 21492 21493 FASTCV_API uint32_t 21494 fcvKMeansTreeSearch36x10s8( const int8_t* __restrict nodeChildrenCenter, 21495 const uint32_t* __restrict nodeChildrenInvLenQ32, 21496 const uint32_t* __restrict nodeChildrenIndex, 21497 const uint8_t* __restrict nodeNumChildren, 21498 uint32_t numNodes, 21499 const int8_t * __restrict key ); 21500 21501 //--------------------------------------------------------------------------- 21537 //--------------------------------------------------------------------------- 21538 21539 FASTCV_API int 21540 fcvLinearSearchPrepare8x36s8( uint32_t * __restrict dbLUT, 21541 uint32_t numDBLUT, 21542 int8_t * __restrict descDB, 21543 uint32_t * __restrict descDBInvLenQ38, 21544 uint16_t * __restrict descDBTargetId, 21545 uint32_t * __restrict descDBOldIdx, 21546 uint32_t numDescDB ); 21547 21548 //--------------------------------------------------------------------------- 21627 //--------------------------------------------------------------------------- 21628 21629 FASTCV_API void 21630 fcvLinearSearch8x36s8( 21631 const uint32_t * __restrict dbLUT, 21632 uint32_t numDBLUT, 21633 const int8_t * __restrict descDB, 21634 const uint32_t * __restrict descDBInvLenQ38, 21635 const uint16_t * __restrict descDBTargetId, 21636 uint32_t numDescDB, 21637 const int8_t * __restrict srcDesc, 21638 const uint32_t * __restrict srcDescInvLenQ38, 21639 const uint32_t * __restrict srcDescIdx, 21640 uint32_t numSrcDesc, 21641 const uint16_t * __restrict targetsToIgnore, 21642 uint32_t numTargetsToIgnore, 21643 uint32_t maxDistanceQ31, 21644 uint32_t * __restrict correspondenceDBIdx, 21645 uint32_t * __restrict correspondenceSrcDescIdx, 21646 uint32_t * __restrict correspondenceDistanceQ31, 21647 uint32_t maxNumCorrespondences, 21648 uint32_t * __restrict numCorrespondences ); 21649 21650 21651 //------------------------------------------------------------------------------ 21704 //------------------------------------------------------------------------------ 21705 FASTCV_API void 21706 fcvFindContoursExternalu8( uint8_t* __restrict src, 21707 uint32_t srcWidth, 21708 uint32_t srcHeight, 21709 uint32_t srcStride, 21710 uint32_t maxNumContours, 21711 uint32_t* __restrict numContours, 21712 uint32_t* __restrict numContourPoints, 21713 uint32_t** __restrict contourStartPoints, 21714 uint32_t* __restrict pointBuffer, 21715 uint32_t pointBufferSize, 21716 int32_t hierarchy[][4], 21717 void* contourHandle ); 21718 21719 21720 //------------------------------------------------------------------------------ 21762 //------------------------------------------------------------------------------ 21763 FASTCV_API void 21764 fcvFindContoursListu8( uint8_t* __restrict src, 21765 uint32_t srcWidth, 21766 uint32_t srcHeight, 21767 uint32_t srcStride, 21768 uint32_t maxNumContours, 21769 uint32_t* __restrict numContours, 21770 uint32_t* __restrict numContourPoints, 21771 uint32_t** __restrict contourStartPoints, 21772 uint32_t* __restrict pointBuffer, 21773 uint32_t pointBufferSize, 21774 void* contourHandle ); 21775 21776 21777 //------------------------------------------------------------------------------ 21835 //------------------------------------------------------------------------------ 21836 FASTCV_API void 21837 fcvFindContoursCcompu8( uint8_t* __restrict src, 21838 uint32_t srcWidth, 21839 uint32_t srcHeight, 21840 uint32_t srcStride, 21841 uint32_t maxNumContours, 21842 uint32_t* __restrict numContours, 21843 uint32_t* __restrict holeFlag, 21844 uint32_t* __restrict numContourPoints, 21845 uint32_t** __restrict contourStartPoints, 21846 uint32_t* __restrict pointBuffer, 21847 uint32_t pointBufferSize, 21848 int32_t hierarchy[][4], 21849 void* contourHandle ); 21850 21851 21852 //------------------------------------------------------------------------------ 21907 //------------------------------------------------------------------------------ 21908 FASTCV_API void 21909 fcvFindContoursTreeu8( uint8_t* __restrict src, 21910 uint32_t srcWidth, 21911 uint32_t srcHeight, 21912 uint32_t srcStride, 21913 uint32_t maxNumContours, 21914 uint32_t* __restrict numContours, 21915 uint32_t* __restrict holeFlag, 21916 uint32_t* __restrict numContourPoints, 21917 uint32_t** __restrict contourStartPoints, 21918 uint32_t* __restrict pointBuffer, 21919 uint32_t pointBufferSize, 21920 int32_t hierarchy[][4], 21921 void* contourHandle ); 21922 21923 21924 //------------------------------------------------------------------------------ 21936 //------------------------------------------------------------------------------ 21937 FASTCV_API void* 21938 fcvFindContoursAllocate( uint32_t srcStride ); 21939 21940 21941 //------------------------------------------------------------------------------ 21949 //------------------------------------------------------------------------------ 21950 FASTCV_API void 21951 fcvFindContoursDelete( void* contourHandle ); 21952 21953 //------------------------------------------------------------------------------ 21980 //------------------------------------------------------------------------------ 21981 FASTCV_API void 21982 fcvSolvef32(const float32_t * __restrict A, 21983 int32_t numCols, 21984 int32_t numRows, 21985 const float32_t * __restrict b, 21986 float32_t * __restrict x); 21987 21988 //------------------------------------------------------------------------------ 22006 //------------------------------------------------------------------------------ 22007 FASTCV_API void 22008 fcvGetPerspectiveTransformf32( const float32_t src1[8], 22009 const float32_t src2[8], 22010 float32_t transformCoefficient[9] ); 22011 22012 //------------------------------------------------------------------------------ 22048 //------------------------------------------------------------------------------ 22049 22050 FASTCV_API void 22051 fcvSetElementsu8( uint8_t * __restrict dst, 22052 uint32_t dstWidth, 22053 uint32_t dstHeight, 22054 uint32_t dstStride, 22055 uint8_t value, 22056 const uint8_t * __restrict mask, 22057 uint32_t maskStride 22058 ); 22059 22060 //------------------------------------------------------------------------------ 22096 //------------------------------------------------------------------------------ 22097 FASTCV_API void 22098 fcvSetElementss32( int32_t * __restrict dst, 22099 uint32_t dstWidth, 22100 uint32_t dstHeight, 22101 uint32_t dstStride, 22102 int32_t value, 22103 const uint8_t * __restrict mask , 22104 uint32_t maskStride 22105 ); 22106 22107 //------------------------------------------------------------------------------ 22143 //------------------------------------------------------------------------------ 22144 FASTCV_API void 22145 fcvSetElementsf32( float32_t * __restrict dst, 22146 uint32_t dstWidth, 22147 uint32_t dstHeight, 22148 uint32_t dstStride, 22149 float32_t value, 22150 const uint8_t * __restrict mask, 22151 uint32_t maskStride 22152 ); 22153 22154 //------------------------------------------------------------------------------ 22199 //------------------------------------------------------------------------------ 22200 FASTCV_API void 22201 fcvSetElementsc4u8( uint8_t * __restrict dst, 22202 uint32_t dstWidth, 22203 uint32_t dstHeight, 22204 uint32_t dstStride, 22205 uint8_t value1, 22206 uint8_t value2, 22207 uint8_t value3, 22208 uint8_t value4, 22209 const uint8_t * __restrict mask, 22210 uint32_t maskStride 22211 ); 22212 22213 //------------------------------------------------------------------------------ 22258 //------------------------------------------------------------------------------ 22259 FASTCV_API void 22260 fcvSetElementsc4s32( int32_t * __restrict dst, 22261 uint32_t dstWidth, 22262 uint32_t dstHeight, 22263 uint32_t dstStride, 22264 int32_t value1, 22265 int32_t value2, 22266 int32_t value3, 22267 int32_t value4, 22268 const uint8_t * __restrict mask, 22269 uint32_t maskStride 22270 ); 22271 22272 //------------------------------------------------------------------------------ 22317 //------------------------------------------------------------------------------ 22318 FASTCV_API void 22319 fcvSetElementsc4f32( float32_t * __restrict dst, 22320 uint32_t dstWidth, 22321 uint32_t dstHeight, 22322 uint32_t dstStride, 22323 float32_t value1, 22324 float32_t value2, 22325 float32_t value3, 22326 float32_t value4, 22327 const uint8_t * __restrict mask, 22328 uint32_t maskStride 22329 ); 22330 22331 //------------------------------------------------------------------------------ 22373 //------------------------------------------------------------------------------ 22374 FASTCV_API void 22375 fcvSetElementsc3u8( uint8_t * __restrict dst, 22376 uint32_t dstWidth, 22377 uint32_t dstHeight, 22378 uint32_t dstStride, 22379 uint8_t value1, 22380 uint8_t value2, 22381 uint8_t value3, 22382 const uint8_t * __restrict mask, 22383 uint32_t maskStride 22384 ); 22385 22386 //------------------------------------------------------------------------------ 22428 //------------------------------------------------------------------------------ 22429 FASTCV_API void 22430 fcvSetElementsc3s32( int32_t * __restrict dst, 22431 uint32_t dstWidth, 22432 uint32_t dstHeight, 22433 uint32_t dstStride, 22434 int32_t value1, 22435 int32_t value2, 22436 int32_t value3, 22437 const uint8_t * __restrict mask, 22438 uint32_t maskStride 22439 ); 22440 22441 //------------------------------------------------------------------------------ 22483 //------------------------------------------------------------------------------ 22484 FASTCV_API void 22485 fcvSetElementsc3f32( float32_t * __restrict dst, 22486 uint32_t dstWidth, 22487 uint32_t dstHeight, 22488 uint32_t dstStride, 22489 float32_t value1, 22490 float32_t value2, 22491 float32_t value3, 22492 const uint8_t * __restrict mask, 22493 uint32_t maskStride 22494 ); 22495 22496 22497 //------------------------------------------------------------------------------ 22500 //------------------------------------------------------------------------------ 22501 22502 typedef enum { 22503 FCV_THRESH_BINARY = 0, // value = value > threshold ? max_value : 0 22504 FCV_THRESH_BINARY_INV // value = value > threshold ? 0 : max_value 22505 } fcvThreshType; 22506 22507 22508 //--------------------------------------------------------------------------- 22550 //--------------------------------------------------------------------------- 22551 22552 FASTCV_API void 22553 fcvAdaptiveThresholdGaussian3x3u8( const uint8_t* __restrict src, 22554 uint32_t srcWidth, 22555 uint32_t srcHeight, 22556 uint32_t srcStride, 22557 uint8_t maxValue, 22558 fcvThreshType thresholdType, 22559 int32_t value, 22560 uint8_t* __restrict dst, 22561 uint32_t dstStride ); 22562 22563 //--------------------------------------------------------------------------- 22605 //--------------------------------------------------------------------------- 22606 FASTCV_API void 22607 fcvAdaptiveThresholdGaussian5x5u8( const uint8_t* __restrict src, 22608 uint32_t srcWidth, 22609 uint32_t srcHeight, 22610 uint32_t srcStride, 22611 uint8_t maxValue, 22612 fcvThreshType thresholdType, 22613 int32_t value, 22614 uint8_t* __restrict dst, 22615 uint32_t dstStride ); 22616 22617 //--------------------------------------------------------------------------- 22659 //--------------------------------------------------------------------------- 22660 FASTCV_API void 22661 fcvAdaptiveThresholdGaussian11x11u8( const uint8_t* __restrict src, 22662 uint32_t srcWidth, 22663 uint32_t srcHeight, 22664 uint32_t srcStride, 22665 uint8_t maxValue, 22666 fcvThreshType thresholdType, 22667 int32_t value, 22668 uint8_t* __restrict dst, 22669 uint32_t dstStride ); 22670 22671 //--------------------------------------------------------------------------- 22712 //--------------------------------------------------------------------------- 22713 FASTCV_API void 22714 fcvAdaptiveThresholdMean3x3u8( const uint8_t* __restrict src, 22715 uint32_t srcWidth, 22716 uint32_t srcHeight, 22717 uint32_t srcStride, 22718 uint8_t maxValue, 22719 fcvThreshType thresholdType, 22720 int32_t value, 22721 uint8_t* __restrict dst, 22722 uint32_t dstStride ); 22723 22724 22725 //--------------------------------------------------------------------------- 22766 //--------------------------------------------------------------------------- 22767 FASTCV_API void 22768 fcvAdaptiveThresholdMean5x5u8( const uint8_t* __restrict src, 22769 uint32_t srcWidth, 22770 uint32_t srcHeight, 22771 uint32_t srcStride, 22772 uint8_t maxValue, 22773 fcvThreshType thresholdType, 22774 int32_t value, 22775 uint8_t* __restrict dst, 22776 uint32_t dstStride ); 22777 //--------------------------------------------------------------------------- 22818 //--------------------------------------------------------------------------- 22819 FASTCV_API void 22820 fcvAdaptiveThresholdMean11x11u8( const uint8_t* __restrict src, 22821 uint32_t srcWidth, 22822 uint32_t srcHeight, 22823 uint32_t srcStride, 22824 uint8_t maxValue, 22825 fcvThreshType thresholdType, 22826 int32_t value, 22827 uint8_t* __restrict dst, 22828 uint32_t dstStride ); 22829 22830 //--------------------------------------------------------------------------- 22862 //--------------------------------------------------------------------------- 22863 22864 FASTCV_API void 22865 fcvBoxFilter3x3u8( const uint8_t* __restrict src, 22866 uint32_t srcWidth, 22867 uint32_t srcHeight, 22868 uint32_t srcStride, 22869 uint8_t* __restrict dst, 22870 uint32_t dstStride ); 22871 22872 //--------------------------------------------------------------------------- 22906 //--------------------------------------------------------------------------- 22907 22908 FASTCV_API void 22909 fcvBoxFilter5x5u8( const uint8_t* __restrict src, 22910 uint32_t srcWidth, 22911 uint32_t srcHeight, 22912 uint32_t srcStride, 22913 uint8_t* __restrict dst, 22914 uint32_t dstStride ); 22915 22916 //--------------------------------------------------------------------------- 22945 //--------------------------------------------------------------------------- 22946 22947 FASTCV_API void 22948 fcvBoxFilter11x11u8(const uint8_t* __restrict src, 22949 uint32_t srcWidth, 22950 uint32_t srcHeight, 22951 uint32_t srcStride, 22952 uint8_t* __restrict dst, 22953 uint32_t dstStride); 22954 22955 //--------------------------------------------------------------------------- 22990 //--------------------------------------------------------------------------- 22991 22992 FASTCV_API void 22993 fcvBoxFilterNxNf32(const float32_t* src, 22994 uint32_t srcWidth, 22995 uint32_t srcHeight, 22996 uint32_t srcStride, 22997 uint32_t N, 22998 float32_t* dst, 22999 uint32_t dstStride); 23000 23001 //--------------------------------------------------------------------------- 23039 //--------------------------------------------------------------------------- 23040 FASTCV_API void 23041 fcvBilateralFilter5x5u8(const uint8_t* __restrict src, 23042 uint32_t srcWidth, 23043 uint32_t srcHeight, 23044 uint32_t srcStride, 23045 uint8_t* __restrict dst, 23046 uint32_t dstStride); 23047 23048 23049 //--------------------------------------------------------------------------- 23099 //--------------------------------------------------------------------------- 23100 FASTCV_API fcvStatus 23101 fcvBilateralFilter5x5u8_v2(const uint8_t* __restrict src, 23102 uint32_t srcWidth, 23103 uint32_t srcHeight, 23104 uint32_t srcStride, 23105 uint8_t* __restrict dst, 23106 uint32_t dstStride, 23107 float32_t sigmaColor, 23108 float32_t sigmaSpace); 23109 23110 //--------------------------------------------------------------------------- 23148 //--------------------------------------------------------------------------- 23149 FASTCV_API void 23150 fcvBilateralFilter7x7u8(const uint8_t* __restrict src, 23151 uint32_t srcWidth, 23152 uint32_t srcHeight, 23153 uint32_t srcStride, 23154 uint8_t* __restrict dst, 23155 uint32_t dstStride ); 23156 23157 //--------------------------------------------------------------------------- 23207 //--------------------------------------------------------------------------- 23208 FASTCV_API fcvStatus 23209 fcvBilateralFilter7x7u8_v2(const uint8_t* __restrict src, 23210 uint32_t srcWidth, 23211 uint32_t srcHeight, 23212 uint32_t srcStride, 23213 uint8_t* __restrict dst, 23214 uint32_t dstStride, 23215 float32_t sigmaColor, 23216 float32_t sigmaSpace); 23217 23218 //--------------------------------------------------------------------------- 23256 //--------------------------------------------------------------------------- 23257 FASTCV_API void 23258 fcvBilateralFilter9x9u8(const uint8_t* __restrict src, 23259 uint32_t srcWidth, 23260 uint32_t srcHeight, 23261 uint32_t srcStride, 23262 uint8_t* __restrict dst, 23263 uint32_t dstStride ); 23264 23265 //--------------------------------------------------------------------------- 23315 //--------------------------------------------------------------------------- 23316 FASTCV_API fcvStatus 23317 fcvBilateralFilter9x9u8_v2(const uint8_t* __restrict src, 23318 uint32_t srcWidth, 23319 uint32_t srcHeight, 23320 uint32_t srcStride, 23321 uint8_t* __restrict dst, 23322 uint32_t dstStride, 23323 float32_t sigmaColor, 23324 float32_t sigmaSpace); 23325 23326 //--------------------------------------------------------------------------- 23360 //------------------------------------------------------------------------------ 23361 FASTCV_API void 23362 fcvSegmentFGMasku8(uint8_t* __restrict src, 23363 uint32_t srcWidth, 23364 uint32_t srcHeight, 23365 uint32_t srcStride, 23366 uint8_t Polygonal, 23367 uint32_t perimScale); 23368 23369 //------------------------------------------------------------------------------ 23402 //------------------------------------------------------------------------------ 23403 FASTCV_API void 23404 fcvAbsDiffu8(const uint8_t * __restrict src1, 23405 const uint8_t * __restrict src2, 23406 uint32_t srcWidth, 23407 uint32_t srcHeight, 23408 uint32_t srcStride, 23409 uint8_t * __restrict dst, 23410 uint32_t dstStride ); 23411 23412 //------------------------------------------------------------------------------ 23445 //------------------------------------------------------------------------------ 23446 23447 FASTCV_API void 23448 fcvAbsDiffs32(const int32_t * __restrict src1, 23449 const int32_t * __restrict src2, 23450 uint32_t srcWidth, 23451 uint32_t srcHeight, 23452 uint32_t srcStride, 23453 int32_t * __restrict dst, 23454 uint32_t dstStride ); 23455 23456 //------------------------------------------------------------------------------ 23489 //------------------------------------------------------------------------------ 23490 23491 FASTCV_API void 23492 fcvAbsDifff32(const float32_t * __restrict src1, 23493 const float32_t * __restrict src2, 23494 uint32_t srcWidth, 23495 uint32_t srcHeight, 23496 uint32_t srcStride, 23497 float32_t * __restrict dst, 23498 uint32_t dstStride ); 23499 23500 23501 //------------------------------------------------------------------------------ 23533 //------------------------------------------------------------------------------ 23534 23535 FASTCV_API void 23536 fcvAbsDiffVu8(const uint8_t * __restrict src, 23537 uint8_t value, 23538 uint32_t srcWidth, 23539 uint32_t srcHeight, 23540 uint32_t srcStride, 23541 uint8_t * __restrict dst, 23542 uint32_t dstStride ); 23543 23544 23545 //------------------------------------------------------------------------------ 23577 //------------------------------------------------------------------------------ 23578 23579 FASTCV_API void 23580 fcvAbsDiffVs32(const int32_t * __restrict src, 23581 int32_t value, 23582 uint32_t srcWidth, 23583 uint32_t srcHeight, 23584 uint32_t srcStride, 23585 int32_t * __restrict dst, 23586 uint32_t dstStride ); 23587 23588 23589 //------------------------------------------------------------------------------ 23621 //------------------------------------------------------------------------------ 23622 23623 FASTCV_API void 23624 fcvAbsDiffVf32(const float32_t * __restrict src, 23625 float32_t value, 23626 uint32_t srcWidth, 23627 uint32_t srcHeight, 23628 uint32_t srcStride, 23629 float32_t * __restrict dst, 23630 uint32_t dstStride ); 23631 23632 23633 //------------------------------------------------------------------------------ 23674 //------------------------------------------------------------------------------ 23675 23676 FASTCV_API void 23677 fcvAbsDiffVc4u8(const uint8_t * __restrict src, 23678 uint8_t value1, 23679 uint8_t value2, 23680 uint8_t value3, 23681 uint8_t value4, 23682 uint32_t srcWidth, 23683 uint32_t srcHeight, 23684 uint32_t srcStride, 23685 uint8_t * __restrict dst, 23686 uint32_t dstStride ); 23687 23688 23689 //------------------------------------------------------------------------------ 23730 //------------------------------------------------------------------------------ 23731 23732 FASTCV_API void 23733 fcvAbsDiffVc4s32(const int32_t * __restrict src, 23734 int32_t value1, 23735 int32_t value2, 23736 int32_t value3, 23737 int32_t value4, 23738 uint32_t srcWidth, 23739 uint32_t srcHeight, 23740 uint32_t srcStride, 23741 int32_t * __restrict dst, 23742 uint32_t dstStride ); 23743 23744 23745 //------------------------------------------------------------------------------ 23786 //------------------------------------------------------------------------------ 23787 23788 FASTCV_API void 23789 fcvAbsDiffVc4f32(const float32_t * __restrict src, 23790 float32_t value1, 23791 float32_t value2, 23792 float32_t value3, 23793 float32_t value4, 23794 uint32_t srcWidth, 23795 uint32_t srcHeight, 23796 uint32_t srcStride, 23797 float32_t * __restrict dst, 23798 uint32_t dstStride); 23799 23800 //------------------------------------------------------------------------------ 23838 //------------------------------------------------------------------------------ 23839 23840 FASTCV_API void 23841 fcvAbsDiffVc3u8(const uint8_t * __restrict src, 23842 uint8_t value1, 23843 uint8_t value2, 23844 uint8_t value3, 23845 uint32_t srcWidth, 23846 uint32_t srcHeight, 23847 uint32_t srcStride, 23848 uint8_t * __restrict dst, 23849 uint32_t dstStride ); 23850 23851 23852 //------------------------------------------------------------------------------ 23890 //------------------------------------------------------------------------------ 23891 23892 FASTCV_API void 23893 fcvAbsDiffVc3s32(const int32_t * __restrict src, 23894 int32_t value1, 23895 int32_t value2, 23896 int32_t value3, 23897 uint32_t srcWidth, 23898 uint32_t srcHeight, 23899 uint32_t srcStride, 23900 int32_t * __restrict dst, 23901 uint32_t dstStride ); 23902 23903 23904 //------------------------------------------------------------------------------ 23942 //------------------------------------------------------------------------------ 23943 23944 FASTCV_API void 23945 fcvAbsDiffVc3f32(const float32_t * __restrict src, 23946 float32_t value1, 23947 float32_t value2, 23948 float32_t value3, 23949 uint32_t srcWidth, 23950 uint32_t srcHeight, 23951 uint32_t srcStride, 23952 float32_t * __restrict dst, 23953 uint32_t dstStride); 23954 23955 // ----------------------------------------------------------------------------- 24002 // ----------------------------------------------------------------------------- 24003 FASTCV_API int 24004 fcvKDTreeCreate36s8f32( const int8_t* __restrict vectors, 24005 const float32_t* __restrict invLengths, 24006 int numVectors, 24007 fcvKDTreeDatas8f32** kdtrees ); 24008 24009 // ----------------------------------------------------------------------------- 24025 // ----------------------------------------------------------------------------- 24026 FASTCV_API int 24027 fcvKDTreeDestroy36s8f32( fcvKDTreeDatas8f32* kdtrees ); 24028 24029 // ----------------------------------------------------------------------------- 24113 // ----------------------------------------------------------------------------- 24114 FASTCV_API int 24115 fcvKDTreeQuery36s8f32( fcvKDTreeDatas8f32* kdtrees, 24116 const int8_t* __restrict query, 24117 float32_t queryInvLen, 24118 int maxNNs, 24119 float32_t maxDist, 24120 int maxChecks, 24121 const uint8_t* __restrict mask, 24122 int32_t* numNNsFound, 24123 int32_t* __restrict NNInds, 24124 float32_t* __restrict NNDists ); 24125 24126 typedef struct fcvConnectedComponent 24127 { 24128 uint32_t area; //area of the cc 24129 uint32_t avgValue; //average value of the cc 24130 uint32_t rectTopLeftX; // the x of the topleft corner of the bounding box of the cc. 24131 uint32_t rectTopLeftY; // the y of the topleft corner of the bounding box of the cc. 24132 uint32_t rectWidth; // the width of the bounding box of the cc. 24133 uint32_t rectHeight; // the height of the bounding box of the cc. 24134 }fcvConnectedComponent; 24135 24136 //--------------------------------------------------------------------------- 24201 //------------------------------------------------------------------------------ 24202 FASTCV_API void 24203 fcvFloodfillSimpleu8( const uint8_t* __restrict src, 24204 uint32_t srcWidth, 24205 uint32_t srcHeight, 24206 uint32_t srcStride, 24207 uint8_t* __restrict dst, 24208 uint32_t dstStride, 24209 uint32_t xBegin, 24210 uint32_t yBegin, 24211 uint8_t newVal, //new Val can't be zero. zero is background. 24212 fcvConnectedComponent* cc, 24213 uint8_t connectivity, 24214 void* lineBuffer); 24215 24216 24217 //--------------------------------------------------------------------------- 24276 //------------------------------------------------------------------------------ 24277 24278 FASTCV_API fcvStatus 24279 fcvFloodfillMergedu8( const uint8_t* __restrict src, 24280 uint32_t srcWidth, 24281 uint32_t srcHeight, 24282 uint32_t srcStride, 24283 uint8_t* __restrict dst, 24284 uint32_t dstStride, 24285 uint32_t xBegin, 24286 uint32_t yBegin, 24287 uint8_t newVal, 24288 fcvConnectedComponent* __restrict cc, 24289 uint8_t connectivity ); 24290 24291 //--------------------------------------------------------------------------- 24301 // maxhistory, it resets the value to zero. 24338 //------------------------------------------------------------------------------ 24339 FASTCV_API void 24340 fcvUpdateMotionHistoryu8s32( const uint8_t* __restrict src, 24341 uint32_t srcWidth, 24342 uint32_t srcHeight, 24343 uint32_t srcStride, 24344 int32_t* __restrict dst, 24345 uint32_t dstStride, 24346 int32_t timeStamp, 24347 int32_t maxHistory); 24348 24349 24350 //--------------------------------------------------------------------------- 24420 //------------------------------------------------------------------------------ 24421 FASTCV_API void 24422 fcvIntegrateImageYCbCr420PseudoPlanaru8( 24423 const uint8_t* __restrict srcY, 24424 const uint8_t* __restrict srcC, 24425 uint32_t srcWidth, 24426 uint32_t srcHeight, 24427 uint32_t srcYStride, 24428 uint32_t srcCStride, 24429 uint32_t* __restrict integralY, 24430 uint32_t* __restrict integralCb, 24431 uint32_t* __restrict integralCr, 24432 uint32_t integralYStride, 24433 uint32_t integralCbStride, 24434 uint32_t integralCrStride); 24435 24436 24437 //--------------------------------------------------------------------------- 24535 //------------------------------------------------------------------------------ 24536 FASTCV_API void 24537 fcvFindForegroundIntegrateImageYCbCr420u32( 24538 const uint32_t * __restrict bgIntegralY, 24539 const uint32_t * __restrict bgIntegralCb, 24540 const uint32_t * __restrict bgIntegralCr, 24541 const uint32_t * __restrict fgIntegralY, 24542 const uint32_t * __restrict fgIntegralCb, 24543 const uint32_t * __restrict fgIntegralCr, 24544 uint32_t srcWidth, 24545 uint32_t srcHeight, 24546 uint32_t srcYStride, 24547 uint32_t srcCbStride, 24548 uint32_t srcCrStride, 24549 uint8_t * __restrict outputMask, 24550 uint32_t outputWidth, 24551 uint32_t outputHeight, 24552 uint32_t outputMaskStride, 24553 float32_t threshold ); 24554 24555 24556 //--------------------------------------------------------------------------- 24586 //------------------------------------------------------------------------------ 24587 FASTCV_API void 24588 fcvAverages32( 24589 const int32_t* __restrict src, 24590 uint32_t srcWidth, 24591 uint32_t srcHeight, 24592 uint32_t srcStride, 24593 float32_t* __restrict avgValue); 24594 24595 //--------------------------------------------------------------------------- 24625 //------------------------------------------------------------------------------ 24626 FASTCV_API void 24627 fcvAverageu8( 24628 const uint8_t* __restrict src, 24629 uint32_t srcWidth, 24630 uint32_t srcHeight, 24631 uint32_t srcStride, 24632 float32_t* __restrict avgValue); 24633 24634 24635 //------------------------------------------------------------------------------ 24671 //------------------------------------------------------------------------------ 24672 FASTCV_API uint32_t 24673 fcvMeanShiftu8(const uint8_t* __restrict src, 24674 uint32_t srcWidth, 24675 uint32_t srcHeight, 24676 uint32_t srcStride, 24677 fcvRectangleInt* window, 24678 fcvTermCriteria criteria); 24679 24680 //------------------------------------------------------------------------------ 24716 //------------------------------------------------------------------------------ 24717 FASTCV_API uint32_t 24718 fcvMeanShifts32(const int32_t* __restrict src, 24719 uint32_t srcWidth, 24720 uint32_t srcHeight, 24721 uint32_t srcStride, 24722 fcvRectangleInt* window, 24723 fcvTermCriteria criteria); 24724 24725 //------------------------------------------------------------------------------ 24761 //------------------------------------------------------------------------------ 24762 FASTCV_API uint32_t 24763 fcvMeanShiftf32(const float32_t* __restrict src, 24764 uint32_t srcWidth, 24765 uint32_t srcHeight, 24766 uint32_t srcStride, 24767 fcvRectangleInt* window, 24768 fcvTermCriteria criteria); 24769 24770 24771 //------------------------------------------------------------------------------ 24810 //------------------------------------------------------------------------------ 24811 FASTCV_API uint32_t 24812 fcvConAdaTracku8(const uint8_t* __restrict src, 24813 uint32_t srcWidth, 24814 uint32_t srcHeight, 24815 uint32_t srcStride, 24816 fcvRectangleInt* window, 24817 fcvTermCriteria criteria, 24818 fcvBox2D* circuBox); 24819 24820 24821 //------------------------------------------------------------------------------ 24860 //------------------------------------------------------------------------------ 24861 FASTCV_API uint32_t 24862 fcvConAdaTracks32(const int32_t* __restrict src, 24863 uint32_t srcWidth, 24864 uint32_t srcHeight, 24865 uint32_t srcStride, 24866 fcvRectangleInt* window, 24867 fcvTermCriteria criteria, 24868 fcvBox2D* circuBox); 24869 24870 24871 //------------------------------------------------------------------------------ 24910 //------------------------------------------------------------------------------ 24911 FASTCV_API uint32_t 24912 fcvConAdaTrackf32(const float32_t* __restrict src, 24913 uint32_t srcWidth, 24914 uint32_t srcHeight, 24915 uint32_t srcStride, 24916 fcvRectangleInt* window, 24917 fcvTermCriteria criteria, 24918 fcvBox2D* circuBox); 24919 24920 //------------------------------------------------------------------------------ 24974 //------------------------------------------------------------------------------ 24975 FASTCV_API void 24976 fcvSVDf32(const float32_t * __restrict A, 24977 uint32_t m, 24978 uint32_t n, 24979 float32_t * __restrict w, 24980 float32_t * __restrict U, 24981 float32_t * __restrict Vt, 24982 float32_t * tmpU, 24983 float32_t * tmpV); 24984 24985 //------------------------------------------------------------------------------ 25023 //------------------------------------------------------------------------------ 25024 FASTCV_API void 25025 fcvFillConvexPolyu8( uint32_t nPts, 25026 const uint32_t* __restrict polygon, 25027 uint32_t nChannel, 25028 const uint8_t* __restrict color, 25029 uint8_t* __restrict dst, 25030 uint32_t dstWidth, 25031 uint32_t dstHeight, 25032 uint32_t dstStride); 25033 25034 25035 //------------------------------------------------------------------------------ 25070 //------------------------------------------------------------------------------ 25071 FASTCV_API void 25072 fcvPointPolygonTest(uint32_t nPts, 25073 const uint32_t* __restrict polygonContour, 25074 uint32_t px, 25075 uint32_t py, 25076 float32_t* distance, 25077 int16_t* resultFlag); 25078 25079 25080 //------------------------------------------------------------------------------ 25118 //------------------------------------------------------------------------------ 25119 25120 FASTCV_API void 25121 fcvFindConvexHull( uint32_t* __restrict polygonContour, 25122 uint32_t nPtsContour, 25123 uint32_t* __restrict convexHull, 25124 uint32_t* nPtsHull, 25125 uint32_t* __restrict tmpBuff); 25126 25127 25128 //--------------------------------------------------------------------------- 25160 //--------------------------------------------------------------------------- 25161 FASTCV_API int32_t 25162 fcvSolveCholeskyf32( float32_t* __restrict A, 25163 const float32_t* __restrict b, 25164 float32_t* __restrict diag, 25165 uint32_t N, 25166 float32_t* __restrict x); 25167 25168 25169 //--------------------------------------------------------------------------- 25200 //--------------------------------------------------------------------------- 25201 FASTCV_API void 25202 fcvGeomDistortPoint2x1f32(const float32_t* __restrict cameraCalibration, 25203 const float32_t* __restrict xyCamera, 25204 float32_t* __restrict xyDevice); 25205 25206 //--------------------------------------------------------------------------- 25252 //--------------------------------------------------------------------------- 25253 25254 FASTCV_API void 25255 fcvGeomDistortPoint2xNf32(const float32_t* __restrict cameraCalibration, 25256 const float32_t* __restrict xyCamera, 25257 uint32_t srcStride, 25258 uint32_t xySize, 25259 float32_t* __restrict xyDevice, 25260 uint32_t dstStride); 25261 25262 //--------------------------------------------------------------------------- 25282 //--------------------------------------------------------------------------- 25283 FASTCV_API void 25284 fcvGeomUndistortPoint2x1f32(const float32_t* __restrict cameraCalibration, 25285 const float32_t* __restrict xyDevice, 25286 float32_t* __restrict xyCamera); 25287 25288 //--------------------------------------------------------------------------- 25334 //--------------------------------------------------------------------------- 25335 25336 FASTCV_API void 25337 fcvGeomUndistortPoint2xNf32(const float32_t* __restrict cameraCalibration, 25338 const float32_t* __restrict xyDevice, 25339 uint32_t srcStride, 25340 uint32_t xySize, 25341 float32_t* __restrict xyCamera, 25342 uint32_t dstStride); 25343 25344 //--------------------------------------------------------------------------- 25378 //--------------------------------------------------------------------------- 25379 FASTCV_API int32_t 25380 fcvGeomProjectPoint3x1f32(const float32_t* __restrict pose, 25381 const float32_t* __restrict cameraCalibration, 25382 const float32_t* __restrict xyz, 25383 float32_t* __restrict xyCamera, 25384 float32_t* __restrict xyDevice); 25385 25386 //--------------------------------------------------------------------------- 25444 //--------------------------------------------------------------------------- 25445 25446 FASTCV_API void 25447 fcvGeomProjectPoint3xNf32(const float32_t* __restrict pose, 25448 const float32_t* __restrict cameraCalibration, 25449 const float32_t* __restrict xyz, 25450 uint32_t srcStride, 25451 uint32_t xyzSize, 25452 float32_t* __restrict xyCamera, 25453 float32_t* __restrict xyDevice, 25454 uint32_t dstStride, 25455 uint32_t* inFront); 25456 25457 //--------------------------------------------------------------------------- 25471 //--------------------------------------------------------------------------- 25472 25473 FASTCV_API fcvStatus 25474 fcvInvertAffineTransformf32( const float32_t *__restrict M, 25475 float32_t *__restrict invAffineMat ); 25476 25477 25478 //--------------------------------------------------------------------------- 25496 //--------------------------------------------------------------------------- 25497 25498 FASTCV_API fcvStatus 25499 fcvGeomHomographyRobustFitf32( const fcvCorrespondences* __restrict corr, 25500 float32_t *__restrict homography, 25501 float32_t reprojThreshold); 25502 25503 25504 //------------------------------------------------------------------------------ 25557 //------------------------------------------------------------------------------ 25558 25559 FASTCV_API fcvStatus 25560 fcvICPJacobianErrorSE3f32(const uint16_t* __restrict depthData, 25561 uint32_t depthWidth, 25562 uint32_t depthHeight, 25563 uint32_t depthStride, 25564 const float32_t* __restrict refPointsNormals, 25565 uint32_t numPoints, 25566 const float32_t* __restrict refPose, 25567 const float32_t*__restrict camera, 25568 float32_t sqDistThreshold, 25569 float32_t* __restrict sqDists, 25570 float32_t* __restrict errors, 25571 float32_t* __restrict jacobian); 25572 25573 //------------------------------------------------------------------------------ 25600 //------------------------------------------------------------------------------ 25601 25602 FASTCV_API fcvStatus 25603 fcvGeomHomographyFitf32_v2( const fcvCorrespondences* __restrict corrs, 25604 float32_t* __restrict homography, 25605 uint32_t mode); 25606 25607 //--------------------------------------------------------------------------- 25632 //--------------------------------------------------------------------------- 25633 25634 FASTCV_API fcvStatus 25635 fcvGeomHomographyRobustFitf32_v2( const fcvCorrespondences* __restrict corr, 25636 float32_t *__restrict homography, 25637 float32_t reprojThreshold, 25638 uint32_t mode); 25639 25640 //------------------------------------------------------------------------------ 25696 //------------------------------------------------------------------------------ 25697 FASTCV_API fcvStatus 25698 fcvDepthFusion8x8x8xNs16(const fcvDepthFusionBlockConfig* __restrict configs, 25699 int16_t* __restrict volumes, 25700 uint32_t numBlocks, 25701 uint32_t volumeStride, 25702 const float32_t* __restrict depthData, 25703 uint32_t depthWidth, 25704 uint32_t depthHeight, 25705 uint32_t depthStride, 25706 const float32_t* __restrict cameraCalibration, 25707 int16_t maxWeight); 25708 25709 //--------------------------------------------------------------------------- 25772 //--------------------------------------------------------------------------- 25773 25774 FASTCV_API void 25775 fcvRemapRGBA8888NNu8( const uint8_t* __restrict src, 25776 uint32_t srcWidth, 25777 uint32_t srcHeight, 25778 uint32_t srcStride, 25779 uint8_t* __restrict dst, 25780 uint32_t dstWidth, 25781 uint32_t dstHeight, 25782 uint32_t dstStride, 25783 const float32_t* __restrict mapX, 25784 const float32_t* __restrict mapY, 25785 uint32_t mapStride 25786 ); 25787 25788 //--------------------------------------------------------------------------- 25849 //--------------------------------------------------------------------------- 25850 25851 FASTCV_API void 25852 fcvRemapRGBA8888BLu8( const uint8_t* __restrict src, 25853 uint32_t srcWidth, 25854 uint32_t srcHeight, 25855 uint32_t srcStride, 25856 uint8_t* __restrict dst, 25857 uint32_t dstWidth, 25858 uint32_t dstHeight, 25859 uint32_t dstStride, 25860 const float32_t* __restrict mapX, 25861 const float32_t* __restrict mapY, 25862 uint32_t mapStride ); 25863 25864 //--------------------------------------------------------------------------- 25925 //--------------------------------------------------------------------------- 25926 25927 FASTCV_API void 25928 fcvJacobianSE2f32(const uint8_t* __restrict warpedImage, 25929 const uint16_t* __restrict warpedBorder, 25930 const uint8_t* __restrict targetImage, 25931 const int16_t* __restrict targetDX, 25932 const int16_t* __restrict targetDY, 25933 uint32_t width, 25934 uint32_t height, 25935 uint32_t stride, 25936 float32_t* __restrict sumJTJ, 25937 float32_t* __restrict sumJTE, 25938 float32_t* __restrict sumError, 25939 uint32_t* __restrict numPixels); 25940 25941 //--------------------------------------------------------------------------- 26022 //------------------------------------------------------------------------------/ 26023 26024 FASTCV_API void 26025 fcvTransformAffineClippedu8(const uint8_t* __restrict src, 26026 uint32_t srcWidth, 26027 uint32_t srcHeight, 26028 uint32_t srcStride, 26029 const float32_t* __restrict affineMatrix, 26030 uint8_t* __restrict dst, 26031 uint32_t dstWidth, 26032 uint32_t dstHeight, 26033 uint32_t dstStride, 26034 uint32_t* __restrict dstBorder); 26035 26036 //--------------------------------------------------------------------------- 26121 //------------------------------------------------------------------------------/ 26122 26123 FASTCV_API fcvStatus 26124 fcvTransformAffineClippedu8_v2( const uint8_t* __restrict src, 26125 uint32_t srcWidth, 26126 uint32_t srcHeight, 26127 uint32_t srcStride, 26128 const float32_t* __restrict affineMatrix, 26129 uint8_t* __restrict dst, 26130 uint32_t dstWidth, 26131 uint32_t dstHeight, 26132 uint32_t dstStride, 26133 uint32_t* __restrict dstBorder, 26134 fcvInterpolationType interpolation ); 26135 26136 //--------------------------------------------------------------------------- 26229 //------------------------------------------------------------------------------/ 26230 26231 FASTCV_API fcvStatus 26232 fcvTransformAffineClippedu8_v3( const uint8_t* __restrict src, 26233 uint32_t srcWidth, 26234 uint32_t srcHeight, 26235 uint32_t srcStride, 26236 const float32_t* __restrict affineMatrix, 26237 uint8_t* __restrict dst, 26238 uint32_t dstWidth, 26239 uint32_t dstHeight, 26240 uint32_t dstStride, 26241 uint32_t* __restrict dstBorder, 26242 fcvInterpolationType interpolation, 26243 fcvBorderType borderType, 26244 uint8_t borderValue ); 26245 26246 //------------------------------------------------------------------------------ 26268 //------------------------------------------------------------------------------ 26269 FASTCV_API fcvBGCodeWord** 26270 fcvCreateBGCodeBookModel( uint32_t srcWidth, 26271 uint32_t srcHeight, 26272 void** __restrict cbmodel ); 26273 26274 //------------------------------------------------------------------------------ 26285 //------------------------------------------------------------------------------ 26286 FASTCV_API void 26287 fcvReleaseBGCodeBookModel( void** cbmodel ); 26288 26289 //------------------------------------------------------------------------------ 26317 //------------------------------------------------------------------------------ 26318 FASTCV_API void 26319 fcvConfigBGCodeBookModel( void* cbmodel, 26320 uint8_t cbBound[3], 26321 uint8_t minMod[3], 26322 uint8_t maxMod[3]); 26323 26324 //------------------------------------------------------------------------------ 26364 //------------------------------------------------------------------------------ 26365 FASTCV_API void 26366 fcvBGCodeBookUpdateu8( void* __restrict cbmodel, 26367 const uint8_t* __restrict src, 26368 uint32_t srcWidth, 26369 uint32_t srcHeight, 26370 uint32_t srcStride, 26371 const uint8_t* __restrict fgMask, 26372 uint32_t fgMaskStride, 26373 fcvBGCodeWord** __restrict cbMap, 26374 int32_t* __restrict updateTime ); 26375 26376 //------------------------------------------------------------------------------ 26419 //------------------------------------------------------------------------------ 26420 FASTCV_API void 26421 fcvBGCodeBookDiffu8( void* __restrict cbmodel, 26422 const uint8_t* __restrict src, 26423 uint32_t srcWidth, 26424 uint32_t srcHeight, 26425 uint32_t srcStride, 26426 uint8_t* __restrict fgMask, 26427 uint32_t fgMaskStride, 26428 fcvBGCodeWord** __restrict cbMap, 26429 int32_t* __restrict numFgMask ); 26430 26431 //------------------------------------------------------------------------------ 26467 //------------------------------------------------------------------------------ 26468 FASTCV_API void 26469 fcvBGCodeBookClearStaleu8( void* __restrict cbmodel, 26470 int32_t staleThresh, 26471 const uint8_t* __restrict fgMask, 26472 uint32_t fgMaskWidth, 26473 uint32_t fgMaskHeight, 26474 uint32_t fgMaskStride, 26475 fcvBGCodeWord** __restrict cbMap ); 26476 26477 //------------------------------------------------------------------------------ 26540 //------------------------------------------------------------------------------ 26541 26542 FASTCV_API void 26543 fcvHoughCircleu8( const uint8_t* __restrict src, 26544 uint32_t srcWidth, 26545 uint32_t srcHeight, 26546 uint32_t srcStride, 26547 fcvCircle* __restrict circles, 26548 uint32_t* __restrict numCircle, 26549 uint32_t maxCircle, 26550 uint32_t minDist, 26551 uint32_t cannyThreshold, 26552 uint32_t accThreshold, 26553 uint32_t minRadius, 26554 uint32_t maxRadius, 26555 void* __restrict data); 26556 26557 26558 26559 26560 //----------------------------------------------------------------------- 26604 //----------------------------------------------------------------------- 26605 FASTCV_API void 26606 fcvHoughLineu8(const uint8_t* __restrict src, 26607 uint32_t srcWidth, 26608 uint32_t srcHeight, 26609 uint32_t srcStride, 26610 float32_t threshold, 26611 uint32_t maxLines, 26612 uint32_t* __restrict pNumLines, 26613 fcvLine* __restrict pLines); 26614 26615 //------------------------------------------------------------------------------ 26672 //------------------------------------------------------------------------------ 26673 FASTCV_API void 26674 fcvDrawContouru8(uint8_t* __restrict src, 26675 uint32_t srcWidth, 26676 uint32_t srcHeight, 26677 uint32_t srcStride, 26678 uint32_t nContours, 26679 const uint32_t* __restrict holeFlag, 26680 const uint32_t* __restrict numContourPoints, 26681 const uint32_t** __restrict contourStartPoints, 26682 uint32_t pointBufferSize, 26683 const uint32_t* __restrict pointBuffer, 26684 int32_t hierarchy[][4], 26685 uint32_t max_level, 26686 int32_t thickness, 26687 uint8_t color, 26688 uint8_t hole_color); 26689 26690 26691 //------------------------------------------------------------------------------ 26748 //------------------------------------------------------------------------------ 26749 FASTCV_API void 26750 fcvDrawContourInterleavedu8( uint8_t* __restrict src, 26751 uint32_t srcWidth, 26752 uint32_t srcHeight, 26753 uint32_t srcStride, 26754 uint32_t nContours, 26755 const uint32_t* __restrict holeFlag, 26756 const uint32_t* __restrict numContourPoints, 26757 const uint32_t** __restrict contourStartPoints, 26758 uint32_t pointBufferSize, 26759 const uint32_t* __restrict pointBuffer, 26760 int32_t hierarchy[][4], 26761 uint32_t max_level, 26762 int32_t thickness, 26763 uint8_t colorR, 26764 uint8_t colorG, 26765 uint8_t colorB, 26766 uint8_t hole_colorR, 26767 uint8_t hole_colorG, 26768 uint8_t hole_colorB); 26769 26770 //------------------------------------------------------------------------------ 26827 //------------------------------------------------------------------------------ 26828 FASTCV_API void 26829 fcvDrawContourPlanaru8( uint8_t* __restrict src, 26830 uint32_t srcWidth, 26831 uint32_t srcHeight, 26832 uint32_t srcStride, 26833 uint32_t nContours, 26834 const uint32_t* __restrict holeFlag, 26835 const uint32_t* __restrict numContourPoints, 26836 const uint32_t** __restrict contourStartPoints, 26837 uint32_t pointBufferSize, 26838 const uint32_t* __restrict pointBuffer, 26839 int32_t hierarchy[][4], 26840 uint32_t max_level, 26841 int32_t thickness, 26842 uint8_t colorR, 26843 uint8_t colorG, 26844 uint8_t colorB, 26845 uint8_t hole_colorR, 26846 uint8_t hole_colorG, 26847 uint8_t hole_colorB); 26848 26849 //------------------------------------------------------------------------------ 26883 //------------------------------------------------------------------------------ 26884 FASTCV_API void 26885 fcvImageMomentsu8( const uint8_t* __restrict src, 26886 uint32_t srcWidth, 26887 uint32_t srcHeight, 26888 uint32_t srcStride, 26889 fcvMoments* moments, 26890 uint8_t binary); 26891 26892 //------------------------------------------------------------------------------ 26926 //------------------------------------------------------------------------------ 26927 FASTCV_API void 26928 fcvImageMomentss32( const int32_t* __restrict src, 26929 uint32_t srcWidth, 26930 uint32_t srcHeight, 26931 uint32_t srcStride, 26932 fcvMoments* moments, 26933 uint8_t binary); 26934 26935 //------------------------------------------------------------------------------ 26969 //------------------------------------------------------------------------------ 26970 FASTCV_API void 26971 fcvImageMomentsf32(const float32_t* __restrict src, 26972 uint32_t srcWidth, 26973 uint32_t srcHeight, 26974 uint32_t srcStride, 26975 fcvMoments* moments, 26976 uint8_t binary); 26977 26978 //--------------------------------------------------------------------------- 27010 //------------------------------------------------------------------------------ 27011 FASTCV_API int32_t 27012 fcvSolveLDLf32( float32_t *__restrict A, 27013 const float32_t *__restrict b, 27014 float32_t *__restrict diag, 27015 uint32_t N, 27016 float32_t *__restrict x ); 27017 27018 //--------------------------------------------------------------------------- 27037 //------------------------------------------------------------------------------ 27038 FASTCV_API float32_t 27039 fcvDotProductf32( const float32_t *__restrict a, 27040 const float32_t *__restrict b, 27041 uint32_t N); 27042 27043 //--------------------------------------------------------------------------- 27118 //------------------------------------------------------------------------------/ 27119 27120 FASTCV_API void 27121 fcv3ChannelTransformAffineClippedBCu8( const uint8_t *__restrict src, 27122 uint32_t srcWidth, 27123 uint32_t srcHeight, 27124 uint32_t srcStride, 27125 const float32_t *__restrict affineMatrix, 27126 uint8_t *__restrict dst, 27127 uint32_t dstWidth, 27128 uint32_t dstHeight, 27129 uint32_t dstStride, 27130 uint32_t *__restrict dstBorder); 27131 27132 27133 //------------------------------------------------------------------------------ 27175 //------------------------------------------------------------------------------ 27176 27177 FASTCV_API void 27178 fcvFilterThresholdOtsuu8( const uint8_t *__restrict src, 27179 uint32_t srcWidth, 27180 uint32_t srcHeight, 27181 uint32_t srcStride, 27182 uint8_t *__restrict dst, 27183 uint32_t dstStride, 27184 fcvThreshType thresholdType); 27185 27186 //------------------------------------------------------------------------------ 27235 //------------------------------------------------------------------------------ 27236 27237 FASTCV_API void 27238 fcvImageDetectEdgePixelsu8( const int16_t* __restrict gxgy, 27239 const uint32_t*__restrict mag, 27240 uint32_t gradStride, 27241 uint32_t topLeftX, 27242 uint32_t topLeftY, 27243 uint32_t width, 27244 uint32_t height, 27245 uint32_t gridSize, 27246 float32_t threshold, 27247 uint32_t nEdgePixelsMax, 27248 uint32_t* __restrict nEdgePixels, 27249 uint32_t* __restrict coordEdgePixels ); 27250 27251 27252 //------------------------------------------------------------------------------ 27292 27301 //------------------------------------------------------------------------------ 27302 27303 FASTCV_API fcvStatus 27304 fcvGLBPu8(const uint8_t *__restrict src, 27305 uint32_t srcWidth, 27306 uint32_t srcHeight, 27307 uint32_t srcStride, 27308 uint32_t radius, 27309 uint32_t neighbors, 27310 uint8_t *__restrict dst, 27311 uint32_t dstStride); 27312 27313 27314 //--------------------------------------------------------------------------- 27356 //--------------------------------------------------------------------------- 27357 27358 FASTCV_API fcvStatus 27359 fcvCornerRefineSubPixu8( const uint8_t * __restrict src, 27360 uint32_t srcWidth, 27361 uint32_t srcHeight, 27362 uint32_t srcStride, 27363 uint32_t blockWidth, 27364 uint32_t blockHeight, 27365 uint32_t maxIterations, 27366 float32_t stopCriteria, 27367 const uint32_t*__restrict xyInitial, 27368 uint32_t nCorners, 27369 float32_t * __restrict xyOut); 27370 27371 //--------------------------------------------------------------------------- 27410 //--------------------------------------------------------------------------- 27411 27412 FASTCV_API fcvStatus 27413 fcvGoodFeatureToTracku8( const uint8_t * __restrict src, 27414 uint32_t srcWidth, 27415 uint32_t srcHeight, 27416 uint32_t srcStride, 27417 float32_t distanceMin, 27418 uint32_t border, 27419 float32_t barrier, 27420 uint32_t * __restrict xy, 27421 uint32_t maxnumcorners, 27422 uint32_t * __restrict numcorners); 27423 27424 27425 //------------------------------------------------------------------------------ 27470 //------------------------------------------------------------------------------ 27471 27472 FASTCV_API fcvStatus 27473 fcvFindMultipleMaximau8(const uint8_t *__restrict src, 27474 uint32_t srcWidth, 27475 uint32_t srcHeight, 27476 uint32_t srcStride, 27477 const float32_t* __restrict pos, 27478 const float32_t* __restrict normal, 27479 uint32_t maxDistance, 27480 uint32_t maxNumMaxima, 27481 int32_t minGradient, 27482 float32_t maxAngleDiff, 27483 float32_t* __restrict maxima, 27484 uint32_t* __restrict numMaxima); 27485 27486 //------------------------------------------------------------------------------ 27530 //------------------------------------------------------------------------------ 27531 27532 FASTCV_API fcvStatus 27533 fcvImageDetectLineSegmentsu8(const fcvPyramidLevel_v2* __restrict srcPyr, 27534 uint32_t pyrLevel, 27535 uint32_t doBlurImage, 27536 float32_t maxLineAngle, 27537 uint32_t minLineLength, 27538 uint32_t minMagnitude, 27539 uint32_t maxLineNum, 27540 uint32_t* __restrict indexBuffer, 27541 fcvLineSegment* __restrict lineSegments, 27542 uint32_t* __restrict numLineSegments); 27543 27544 //--------------------------------------------------------------------------- 27582 //------------------------------------------------------------------------------ 27583 27584 FASTCV_API void 27585 fcvSumOfSquaredDiffsu8( const uint8_t* __restrict a, 27586 float32_t invLenA, 27587 uint32_t dim, 27588 const uint8_t* const * __restrict bList, 27589 const float32_t* __restrict invLenB, 27590 uint32_t numB, 27591 float32_t* __restrict distances ); 27592 27593 27594 //--------------------------------------------------------------------------- 27630 //------------------------------------------------------------------------------ 27631 27632 FASTCV_API void 27633 fcvSumOfSquaredDiffsf32( const float32_t* __restrict a, 27634 float32_t invLenA, 27635 uint32_t dim, 27636 const float32_t* const * __restrict bList, 27637 const float32_t* __restrict invLenB, 27638 uint32_t numB, 27639 float32_t* __restrict distances ); 27640 27641 //--------------------------------------------------------------------------- 27694 //--------------------------------------------------------------------------- 27695 27696 FASTCV_API int 27697 fcvClusterEuclideanu8( const uint8_t* __restrict points, 27698 int32_t numPoints, 27699 int32_t dim, 27700 int32_t pointStride, 27701 int32_t numPointsUsed, 27702 int32_t numClusters, 27703 float32_t* __restrict clusterCenters, 27704 int32_t clusterCenterStride, 27705 float32_t* __restrict newClusterCenters, 27706 uint32_t* __restrict clusterMemberCounts, 27707 uint32_t* __restrict clusterBindings, 27708 float32_t* sumOfClusterDistances ); 27709 27710 //--------------------------------------------------------------------------- 27739 //--------------------------------------------------------------------------- 27740 27741 FASTCV_API void 27742 fcvTransposeu8( const uint8_t * __restrict src, 27743 uint32_t srcWidth, 27744 uint32_t srcHeight, 27745 uint32_t srcStride, 27746 uint8_t * __restrict dst, 27747 uint32_t dstStride ); 27748 27749 //--------------------------------------------------------------------------- 27778 //--------------------------------------------------------------------------- 27779 27780 FASTCV_API void 27781 fcvTransposeu16( const uint16_t * __restrict src, 27782 uint32_t srcWidth, 27783 uint32_t srcHeight, 27784 uint32_t srcStride, 27785 uint16_t * __restrict dst, 27786 uint32_t dstStride ); 27787 27788 //--------------------------------------------------------------------------- 27817 //--------------------------------------------------------------------------- 27818 27819 FASTCV_API void 27820 fcvTransposef32( const float32_t * __restrict src, 27821 uint32_t srcWidth, 27822 uint32_t srcHeight, 27823 uint32_t srcStride, 27824 float32_t * __restrict dst, 27825 uint32_t dstStride ); 27826 27827 //--------------------------------------------------------------------------- 27861 //--------------------------------------------------------------------------- 27862 27863 FASTCV_API void 27864 fcvFlipu8( const uint8_t * src, 27865 uint32_t srcWidth, 27866 uint32_t srcHeight, 27867 uint32_t srcStride, 27868 uint8_t * dst, 27869 uint32_t dstStride, 27870 fcvFlipDir dir ); 27871 27872 //--------------------------------------------------------------------------- 27906 //--------------------------------------------------------------------------- 27907 27908 FASTCV_API void 27909 fcvFlipu16( const uint16_t * src, 27910 uint32_t srcWidth, 27911 uint32_t srcHeight, 27912 uint32_t srcStride, 27913 uint16_t * dst, 27914 uint32_t dstStride, 27915 fcvFlipDir dir ); 27916 27917 //------------------------------------------------------------------------------ 27955 //------------------------------------------------------------------------------ 27956 FASTCV_API fcvStatus 27957 fcvFlipRGB888u8(const uint8_t * src, 27958 uint32_t srcWidth, 27959 uint32_t srcHeight, 27960 uint32_t srcStride, 27961 uint8_t * dst, 27962 uint32_t dstStride, 27963 fcvFlipDir dir); 27964 27965 //--------------------------------------------------------------------------- 27998 //--------------------------------------------------------------------------- 27999 28000 FASTCV_API fcvStatus 28001 fcvRotateImageu8( const uint8_t * src, 28002 uint32_t srcWidth, 28003 uint32_t srcHeight, 28004 uint32_t srcStride, 28005 uint8_t * dst, 28006 uint32_t dstStride, 28007 fcvRotateDegree degree ); 28008 28009 //--------------------------------------------------------------------------- 28043 //--------------------------------------------------------------------------- 28044 28045 FASTCV_API fcvStatus 28046 fcvRotateImageInterleavedu8( const uint8_t * src, 28047 uint32_t srcWidth, 28048 uint32_t srcHeight, 28049 uint32_t srcStride, 28050 uint8_t * dst, 28051 uint32_t dstStride, 28052 fcvRotateDegree degree ); 28053 28054 //--------------------------------------------------------------------------- 28092 //--------------------------------------------------------------------------- 28093 28094 FASTCV_API void 28095 fcvElementMultiplyu8u16( const uint8_t * src1, 28096 uint32_t width, 28097 uint32_t height, 28098 uint32_t src1Stride, 28099 const uint8_t * src2, 28100 uint32_t src2Stride, 28101 uint16_t * __restrict dst, 28102 uint32_t dstStride ); 28103 28104 //--------------------------------------------------------------------------- 28142 //--------------------------------------------------------------------------- 28143 28144 FASTCV_API void 28145 fcvElementMultiplyf32( const float32_t * src1, 28146 uint32_t width, 28147 uint32_t height, 28148 uint32_t src1Stride, 28149 const float32_t * src2, 28150 uint32_t src2Stride, 28151 float32_t * __restrict dst, 28152 uint32_t dstStride ); 28153 28154 //--------------------------------------------------------------------------- 28196 //--------------------------------------------------------------------------- 28197 28198 FASTCV_API void 28199 fcvMatrixMultiplys8s32( const int8_t * __restrict src1, 28200 uint32_t src1Width, 28201 uint32_t src1Height, 28202 uint32_t src1Stride, 28203 const int8_t * __restrict src2, 28204 uint32_t src2Width, 28205 uint32_t src2Stride, 28206 int32_t * __restrict dst, 28207 uint32_t dstStride ); 28208 28209 //--------------------------------------------------------------------------- 28250 //--------------------------------------------------------------------------- 28251 28252 FASTCV_API void 28253 fcvMatrixMultiplyf32( const float32_t * __restrict src1, 28254 uint32_t src1Width, 28255 uint32_t src1Height, 28256 uint32_t src1Stride, 28257 const float32_t * __restrict src2, 28258 uint32_t src2Width, 28259 uint32_t src2Stride, 28260 float32_t * __restrict dst, 28261 uint32_t dstStride ); 28262 28263 //--------------------------------------------------------------------------- 28294 //--------------------------------------------------------------------------- 28295 28296 FASTCV_API uint32_t 28297 fcvBlockDotProductu8( const uint8_t * __restrict src1, 28298 uint32_t blockWidth, 28299 uint32_t blockHeight, 28300 uint32_t src1Stride, 28301 const uint8_t * __restrict src2, 28302 uint32_t src2Stride ); 28303 28304 //--------------------------------------------------------------------------- 28334 //--------------------------------------------------------------------------- 28335 28336 FASTCV_API float32_t 28337 fcvBlockDotProductf32( const float32_t * __restrict src1, 28338 uint32_t blockWidth, 28339 uint32_t blockHeight, 28340 uint32_t src1Stride, 28341 const float32_t * __restrict src2, 28342 uint32_t src2Stride ); 28343 28344 //--------------------------------------------------------------------------- 28382 //--------------------------------------------------------------------------- 28383 28384 FASTCV_API void 28385 fcvAddu8u16( const uint8_t * __restrict src1, 28386 uint32_t width, 28387 uint32_t height, 28388 uint32_t src1Stride, 28389 const uint8_t * __restrict src2, 28390 uint32_t src2Stride, 28391 uint16_t * __restrict dst, 28392 uint32_t dstStride ); 28393 28394 //--------------------------------------------------------------------------- 28433 //--------------------------------------------------------------------------- 28434 28435 FASTCV_API void 28436 fcvAdds16( const int16_t * __restrict src1, 28437 uint32_t width, 28438 uint32_t height, 28439 uint32_t src1Stride, 28440 const int16_t * __restrict src2, 28441 uint32_t src2Stride, 28442 int16_t * __restrict dst, 28443 uint32_t dstStride ); 28444 28445 //--------------------------------------------------------------------------- 28483 //--------------------------------------------------------------------------- 28484 28485 FASTCV_API void 28486 fcvAddf32( const float32_t * __restrict src1, 28487 uint32_t width, 28488 uint32_t height, 28489 uint32_t src1Stride, 28490 const float32_t * __restrict src2, 28491 uint32_t src2Stride, 28492 float32_t * __restrict dst, 28493 uint32_t dstStride ); 28494 28495 28496 //------------------------------------------------------------------------------ 28543 //------------------------------------------------------------------------------ 28544 28545 FASTCV_API void 28546 fcvIntegrateImageu8u64( const uint8_t* __restrict src, 28547 uint32_t srcWidth, 28548 uint32_t srcHeight, 28549 uint32_t srcStride, 28550 uint32_t* __restrict dstIntgrl, 28551 uint64_t* __restrict dstIntgrlSqrd, 28552 uint32_t dstIntgrlStride, 28553 uint32_t dstIntgrlSqrdStride); 28554 28555 28556 28557 28558 //------------------------------------------------------------------------------ 28588 //------------------------------------------------------------------------------ 28589 28590 28591 FASTCV_API void 28592 fcvImageHistogramEqualizeu8( const uint8_t * __restrict src, 28593 uint32_t srcWidth, 28594 uint32_t srcHeight, 28595 uint32_t srcStride, 28596 uint8_t * __restrict dst, 28597 uint32_t dstStride); 28598 28599 //------------------------------------------------------------------------------ 28640 //------------------------------------------------------------------------------ 28641 FASTCV_API void 28642 fcvImageSpatialHistogramu8(const uint8_t *__restrict src, 28643 uint32_t srcWidth, 28644 uint32_t srcHeight, 28645 uint32_t srcStride, 28646 uint32_t numPatterns, 28647 uint32_t grid_x, 28648 uint32_t grid_y, 28649 float32_t*__restrict histogram); 28650 28651 //------------------------------------------------------------------------------ 28703 //------------------------------------------------------------------------------ 28704 28705 FASTCV_API fcvStatus 28706 fcvFilterSobel3x3u8s16( const uint8_t* __restrict src, 28707 uint32_t srcWidth, 28708 uint32_t srcHeight, 28709 uint32_t srcStride, 28710 int16_t* __restrict dx, 28711 int16_t* __restrict dy, 28712 uint32_t dxyStride, 28713 fcvBorderType borderType, 28714 uint8_t borderValue); 28715 28716 //------------------------------------------------------------------------------ 28766 //------------------------------------------------------------------------------ 28767 28768 FASTCV_API fcvStatus 28769 fcvFilterSobel5x5u8s16( const uint8_t* __restrict src, 28770 uint32_t srcWidth, 28771 uint32_t srcHeight, 28772 uint32_t srcStride, 28773 int16_t* __restrict dx, 28774 int16_t* __restrict dy, 28775 uint32_t dxyStride, 28776 fcvBorderType borderType, 28777 uint8_t borderValue); 28778 28779 28780 //------------------------------------------------------------------------------ 28830 //------------------------------------------------------------------------------ 28831 28832 FASTCV_API fcvStatus 28833 fcvFilterSobel7x7u8s16( const uint8_t* __restrict src, 28834 uint32_t srcWidth, 28835 uint32_t srcHeight, 28836 uint32_t srcStride, 28837 int16_t* __restrict dx, 28838 int16_t* __restrict dy, 28839 uint32_t dxyStride, 28840 fcvBorderType borderType, 28841 uint8_t borderValue); 28842 28843 //------------------------------------------------------------------------------ 28908 //------------------------------------------------------------------------------ 28909 28910 FASTCV_API fcvStatus 28911 fcvFilterCannyu8( const uint8_t* __restrict src, 28912 uint32_t srcWidth, 28913 uint32_t srcHeight, 28914 uint32_t srcStride, 28915 uint8_t kernelSize, 28916 int32_t lowThresh, 28917 int32_t highThresh, 28918 fcvNormType normType, 28919 uint8_t* __restrict dst, 28920 uint32_t dstStride, 28921 int16_t* __restrict gx, 28922 int16_t* __restrict gy, 28923 uint32_t gradStride); 28924 28925 28926 //--------------------------------------------------------------------------- 28963 //--------------------------------------------------------------------------- 28964 28965 FASTCV_API fcvStatus 28966 fcvConvertDepthu8s16(const uint8_t *__restrict src, 28967 uint32_t srcWidth, 28968 uint32_t srcHeight, 28969 uint32_t srcStride, 28970 uint8_t shift, 28971 int16_t *__restrict dst, 28972 uint32_t dstStride ); 28973 28974 //--------------------------------------------------------------------------- 29014 //--------------------------------------------------------------------------- 29015 29016 FASTCV_API fcvStatus 29017 fcvConvertDepths16u8(const int16_t *__restrict src, 29018 uint32_t srcWidth, 29019 uint32_t srcHeight, 29020 uint32_t srcStride, 29021 uint8_t shift, 29022 fcvConvertPolicy policy, 29023 uint8_t *__restrict dst, 29024 uint32_t dstStride ); 29025 29026 29027 //--------------------------------------------------------------------------- 29067 //--------------------------------------------------------------------------- 29068 29069 FASTCV_API fcvStatus 29070 fcvBilateralFilterRecursiveu8(const uint8_t* __restrict src, 29071 uint32_t srcWidth, 29072 uint32_t srcHeight, 29073 uint32_t srcStride, 29074 uint8_t* __restrict dst, 29075 uint32_t dstStride, 29076 float32_t sigmaColor, 29077 float32_t sigmaSpace ); 29078 29079 //--------------------------------------------------------------------------- 29125 //--------------------------------------------------------------------------- 29126 29127 FASTCV_API fcvStatus 29128 fcvImageSegmentationSeedRegionGrows16( const int16_t* __restrict src, 29129 uint32_t srcWidth, 29130 uint32_t srcHeight, 29131 uint32_t srcStride, 29132 uint32_t numChannel, 29133 uint32_t threshGrow, 29134 const uint32_t* __restrict pointVector, 29135 uint32_t numSeed, 29136 uint8_t mode, 29137 uint32_t* __restrict segLabel, 29138 uint32_t segLabelStride ); 29139 29140 29141 //------------------------------------------------------------------------------ 29187 //------------------------------------------------------------------------------ 29188 FASTCV_API fcvStatus 29189 fcvNormalizeLocalBoxu8( const uint8_t * __restrict src, 29190 uint32_t srcWidth, 29191 uint32_t srcHeight, 29192 uint32_t srcStride, 29193 uint32_t patchWidth, 29194 uint32_t patchHeight, 29195 uint32_t useStdDev, 29196 int8_t * __restrict dst, 29197 uint32_t dstStride); 29198 29199 //------------------------------------------------------------------------------ 29246 //------------------------------------------------------------------------------ 29247 FASTCV_API fcvStatus 29248 fcvNormalizeLocalBoxf32( const float32_t * __restrict src, 29249 uint32_t srcWidth, 29250 uint32_t srcHeight, 29251 uint32_t srcStride, 29252 uint32_t patchWidth, 29253 uint32_t patchHeight, 29254 uint32_t useStdDev, 29255 float32_t * __restrict dst, 29256 uint32_t dstStride); 29257 29258 //--------------------------------------------------------------------------- 29303 //--------------------------------------------------------------------------- 29304 29305 FASTCV_API fcvStatus 29306 fcvChannelCombine2Planesu8( const uint8_t *__restrict src1, 29307 uint32_t width, 29308 uint32_t height, 29309 uint32_t src1Stride, 29310 const uint8_t *__restrict src2, 29311 uint32_t src2Stride, 29312 uint8_t *__restrict dst, 29313 uint32_t dstStride ); 29314 29315 //--------------------------------------------------------------------------- 29369 //--------------------------------------------------------------------------- 29370 29371 FASTCV_API fcvStatus 29372 fcvChannelCombine3Planesu8(const uint8_t *__restrict src1, 29373 uint32_t width, 29374 uint32_t height, 29375 uint32_t src1Stride, 29376 const uint8_t *__restrict src2, 29377 uint32_t src2Stride, 29378 const uint8_t *__restrict src3, 29379 uint32_t src3Stride, 29380 uint8_t *__restrict dst, 29381 uint32_t dstStride ); 29382 29383 //--------------------------------------------------------------------------- 29447 //--------------------------------------------------------------------------- 29448 29449 FASTCV_API fcvStatus 29450 fcvChannelCombine4Planesu8(const uint8_t *__restrict src1, 29451 uint32_t width, 29452 uint32_t height, 29453 uint32_t src1Stride, 29454 const uint8_t *__restrict src2, 29455 uint32_t src2Stride, 29456 const uint8_t *__restrict src3, 29457 uint32_t src3Stride, 29458 const uint8_t *__restrict src4, 29459 uint32_t src4Stride, 29460 uint8_t *__restrict dst, 29461 uint32_t dstStride ); 29462 29463 //--------------------------------------------------------------------------- 29522 //--------------------------------------------------------------------------- 29523 29524 FASTCV_API fcvStatus 29525 fcvChannelExtractu8( const uint8_t *__restrict src1, 29526 uint32_t srcWidth, 29527 uint32_t srcHeight, 29528 uint32_t src1Stride, 29529 const uint8_t *__restrict src2, 29530 uint32_t src2Stride, 29531 const uint8_t *__restrict src3, 29532 uint32_t src3Stride, 29533 fcvChannelType srcChannel, 29534 fcvImageFormat srcFormat, 29535 uint8_t *__restrict dst, 29536 uint32_t dstStride ); 29537 29538 29539 //------------------------------------------------------------------------------ 29585 //------------------------------------------------------------------------------ 29586 29587 FASTCV_API fcvStatus 29588 fcvFilterMedianMxNs16( const int16_t * __restrict src, 29589 uint32_t srcWidth, 29590 uint32_t srcHeight, 29591 uint32_t srcStride, 29592 uint32_t M, 29593 uint32_t N, 29594 int16_t* __restrict dst, 29595 uint32_t dstStride ); 29596 29597 //--------------------------------------------------------------------------- 29661 //--------------------------------------------------------------------------- 29662 29663 FASTCV_API fcvStatus 29664 fcvFilterConvolveMxNu8s16( const int16_t* __restrict kernel, 29665 uint32_t M, 29666 uint32_t N, 29667 int8_t shift, 29668 const uint8_t* __restrict src, 29669 uint32_t srcWidth, 29670 uint32_t srcHeight, 29671 uint32_t srcStride, 29672 int16_t* __restrict dst, 29673 uint32_t dstStride, 29674 fcvBorderType borderType, 29675 uint8_t borderValue ); 29676 29677 //--------------------------------------------------------------------------- 29741 //--------------------------------------------------------------------------- 29742 29743 FASTCV_API fcvStatus 29744 fcvFilterConvolveMxNu8(const int16_t* __restrict kernel, 29745 uint32_t M, 29746 uint32_t N, 29747 int8_t shift, 29748 const uint8_t* __restrict src, 29749 uint32_t srcWidth, 29750 uint32_t srcHeight, 29751 uint32_t srcStride, 29752 uint8_t* __restrict dst, 29753 uint32_t dstStride, 29754 fcvBorderType borderType, 29755 uint8_t borderValue); 29756 29757 29758 //--------------------------------------------------------------------------- 29800 //--------------------------------------------------------------------------- 29801 29802 FASTCV_API fcvStatus 29803 fcvBoxFilter3x3u8_v2( const uint8_t* __restrict src, 29804 uint32_t srcWidth, 29805 uint32_t srcHeight, 29806 uint32_t srcStride, 29807 uint8_t* __restrict dst, 29808 uint32_t dstStride, 29809 fcvBorderType borderType, 29810 uint8_t borderValue); 29811 29812 //------------------------------------------------------------------------------ 29867 //------------------------------------------------------------------------------ 29868 29869 FASTCV_API fcvStatus 29870 fcvFilterErode3x3u8_v3( const uint8_t* __restrict src, 29871 uint32_t srcWidth, 29872 uint32_t srcHeight, 29873 uint32_t srcStride, 29874 uint8_t* __restrict dst, 29875 uint32_t dstStride, 29876 fcvBorderType borderType, 29877 uint8_t borderValue); 29878 29879 //------------------------------------------------------------------------------ 29916 //------------------------------------------------------------------------------ 29917 29918 FASTCV_API fcvStatus 29919 fcvFilterErodeNxNu8( const uint8_t* __restrict src, 29920 uint32_t srcWidth, 29921 uint32_t srcHeight, 29922 uint32_t srcStride, 29923 uint32_t N, 29924 uint8_t* __restrict dst, 29925 uint32_t dstStride); 29926 29927 29928 //------------------------------------------------------------------------------ 29983 //------------------------------------------------------------------------------ 29984 29985 FASTCV_API fcvStatus 29986 fcvFilterDilate3x3u8_v3( const uint8_t* __restrict src, 29987 uint32_t srcWidth, 29988 uint32_t srcHeight, 29989 uint32_t srcStride, 29990 uint8_t* __restrict dst, 29991 uint32_t dstStride, 29992 fcvBorderType borderType, 29993 uint8_t borderValue); 29994 29995 //------------------------------------------------------------------------------ 30037 //------------------------------------------------------------------------------ 30038 30039 FASTCV_API fcvStatus 30040 fcvFilterDilateNxNu8( const uint8_t* __restrict src, 30041 uint32_t srcWidth, 30042 uint32_t srcHeight, 30043 uint32_t srcStride, 30044 uint32_t N, 30045 uint8_t* __restrict dst, 30046 uint32_t dstStride); 30047 30048 //------------------------------------------------------------------------------ 30109 //------------------------------------------------------------------------------ 30110 30111 FASTCV_API fcvStatus 30112 fcvFilterGaussian3x3u8_v3( const uint8_t* __restrict src, 30113 uint32_t srcWidth, 30114 uint32_t srcHeight, 30115 uint32_t srcStride, 30116 uint8_t* __restrict dst, 30117 uint32_t dstStride, 30118 fcvBorderType borderType, 30119 uint8_t borderValue); 30120 30121 //------------------------------------------------------------------------------ 30183 //------------------------------------------------------------------------------ 30184 30185 FASTCV_API fcvStatus 30186 fcvFilterMedian3x3u8_v3( const uint8_t* __restrict src, 30187 uint32_t srcWidth, 30188 uint32_t srcHeight, 30189 uint32_t srcStride, 30190 uint8_t* __restrict dst, 30191 uint32_t dstStride, 30192 fcvBorderType borderType, 30193 uint8_t borderValue); 30194 30195 //------------------------------------------------------------------------------ 30247 //------------------------------------------------------------------------------ 30248 30249 FASTCV_API fcvStatus 30250 fcvImageSpatialHistogramu8_v2( const uint8_t *__restrict src, 30251 uint32_t srcWidth, 30252 uint32_t srcHeight, 30253 uint32_t srcStride, 30254 uint32_t numPatterns, 30255 uint32_t grid_x, 30256 uint32_t grid_y, 30257 float32_t*__restrict histogram, 30258 float32_t normalize_factor); 30259 30260 //------------------------------------------------------------------------------ 30300 //------------------------------------------------------------------------------ 30301 30302 FASTCV_API void 30303 fcvScaleDownBLu8( const uint8_t* __restrict src, 30304 uint32_t srcWidth, 30305 uint32_t srcHeight, 30306 uint32_t srcStride, 30307 uint8_t* __restrict dst, 30308 uint32_t dstWidth, 30309 uint32_t dstHeight, 30310 uint32_t dstStride); 30311 30312 //--------------------------------------------------------------------------- 30352 //--------------------------------------------------------------------------- 30353 30354 FASTCV_API fcvStatus 30355 fcvTableLookupu8( const uint8_t *__restrict src, 30356 uint32_t srcWidth, 30357 uint32_t srcHeight, 30358 uint32_t srcStride, 30359 const uint8_t *__restrict lut, 30360 uint8_t *__restrict dst, 30361 uint32_t dstStride ); 30362 30363 //------------------------------------------------------------------------------ 30441 //------------------------------------------------------------------------------ 30442 30443 FASTCV_API fcvStatus 30444 fcvWarpPerspectiveu8_v3( const uint8_t *__restrict src, 30445 uint32_t srcWidth, 30446 uint32_t srcHeight, 30447 uint32_t srcStride, 30448 uint8_t *__restrict dst, 30449 uint32_t dstWidth, 30450 uint32_t dstHeight, 30451 uint32_t dstStride, 30452 float *__restrict projectionMatrix, 30453 fcvInterpolationType interpolation ); 30454 30455 //------------------------------------------------------------------------------ 30541 //------------------------------------------------------------------------------ 30542 30543 FASTCV_API fcvStatus 30544 fcvWarpPerspectiveu8_v4( const uint8_t *__restrict src, 30545 uint32_t srcWidth, 30546 uint32_t srcHeight, 30547 uint32_t srcStride, 30548 uint8_t *__restrict dst, 30549 uint32_t dstWidth, 30550 uint32_t dstHeight, 30551 uint32_t dstStride, 30552 float *__restrict projectionMatrix, 30553 fcvInterpolationType interpolation, 30554 fcvBorderType borderType, 30555 uint8_t borderValue 30556 ); 30557 30558 //--------------------------------------------------------------------------- 30625 //--------------------------------------------------------------------------- 30626 30627 FASTCV_API fcvStatus 30628 fcvRemapu8(const uint8_t* __restrict src, 30629 uint32_t srcWidth, 30630 uint32_t srcHeight, 30631 uint32_t srcStride, 30632 uint8_t* __restrict dst, 30633 uint32_t dstWidth, 30634 uint32_t dstHeight, 30635 uint32_t dstStride, 30636 const float32_t* __restrict mapX, 30637 const float32_t* __restrict mapY, 30638 uint32_t mapStride, 30639 fcvInterpolationType interpolation 30640 ); 30641 30642 //--------------------------------------------------------------------------- 30728 //--------------------------------------------------------------------------- 30729 30730 FASTCV_API fcvStatus 30731 fcvRemapu8_v2(const uint8_t* __restrict src, 30732 uint32_t srcWidth, 30733 uint32_t srcHeight, 30734 uint32_t srcStride, 30735 uint8_t* __restrict dst, 30736 uint32_t dstWidth, 30737 uint32_t dstHeight, 30738 uint32_t dstStride, 30739 const float32_t* __restrict mapX, 30740 const float32_t* __restrict mapY, 30741 uint32_t mapStride, 30742 fcvInterpolationType interpolation, 30743 fcvBorderType borderType, 30744 uint8_t borderValue 30745 ); 30746 30747 //--------------------------------------------------------------------------- 30790 //--------------------------------------------------------------------------- 30791 30792 FASTCV_API fcvStatus 30793 fcvMagnitudes16( const int16_t *__restrict src1, 30794 uint32_t width, 30795 uint32_t height, 30796 uint32_t src1Stride, 30797 const int16_t *__restrict src2, 30798 uint32_t src2Stride, 30799 int16_t *__restrict dst, 30800 uint32_t dstStride ); 30801 30802 //--------------------------------------------------------------------------- 30845 //--------------------------------------------------------------------------- 30846 30847 FASTCV_API fcvStatus 30848 fcvPhases16 ( const int16_t *__restrict src1, 30849 uint32_t width, 30850 uint32_t height, 30851 uint32_t src1Stride, 30852 const int16_t *__restrict src2, 30853 uint32_t src2Stride, 30854 uint8_t *__restrict dst, 30855 uint32_t dstStride ); 30856 30857 30858 //-------------------------------------------------------------------------------- 30896 //--------------------------------------------------------------------------- 30897 30898 FASTCV_API fcvStatus 30899 fcvFFTu8(const uint8_t* __restrict src, 30900 uint32_t srcWidth, 30901 uint32_t srcHeight, 30902 uint32_t srcStride, 30903 float32_t* __restrict dst, 30904 uint32_t dstStride); 30905 30906 //--------------------------------------------------------------------------- 30949 //--------------------------------------------------------------------------- 30950 30951 FASTCV_API fcvStatus 30952 fcvIFFTf32( const float32_t* __restrict src, 30953 uint32_t srcWidth, 30954 uint32_t srcHeight, 30955 uint32_t srcStride, 30956 uint8_t* __restrict dst, 30957 uint32_t dstStride ); 30958 30959 //--------------------------------------------------------------------------- 31019 //------------------------------------------------------------------------------ 31020 31021 FASTCV_API fcvStatus 31022 fcvScaleu8( const uint8_t* __restrict src, 31023 uint32_t srcWidth, 31024 uint32_t srcHeight, 31025 uint32_t srcStride, 31026 uint8_t* __restrict dst, 31027 uint32_t dstWidth, 31028 uint32_t dstHeight, 31029 uint32_t dstStride, 31030 fcvInterpolationType interpolation); 31031 31032 //--------------------------------------------------------------------------- 31112 //------------------------------------------------------------------------------ 31113 31114 FASTCV_API fcvStatus 31115 fcvScaleu8_v2( const uint8_t* __restrict src, 31116 uint32_t srcWidth, 31117 uint32_t srcHeight, 31118 uint32_t srcStride, 31119 uint8_t* __restrict dst, 31120 uint32_t dstWidth, 31121 uint32_t dstHeight, 31122 uint32_t dstStride, 31123 fcvInterpolationType interpolation, 31124 fcvBorderType borderType, 31125 uint8_t borderValue); 31126 31127 //------------------------------------------------------------------------------ 31189 //------------------------------------------------------------------------------ 31190 31191 FASTCV_API fcvStatus 31192 fcv2PlaneWarpPerspectiveu8( const uint8_t* __restrict src1, 31193 const uint8_t* __restrict src2, 31194 uint32_t srcWidth, 31195 uint32_t srcHeight, 31196 uint32_t src1Stride, 31197 uint32_t src2Stride, 31198 uint8_t* __restrict dst1, 31199 uint8_t* __restrict dst2, 31200 uint32_t dstWidth, 31201 uint32_t dstHeight, 31202 uint32_t dst1Stride, 31203 uint32_t dst2Stride, 31204 float32_t* __restrict warpmatrix ); 31205 31206 //------------------------------------------------------------------------------ 31243 //------------------------------------------------------------------------------ 31244 31245 FASTCV_API fcvStatus 31246 fcvScaleDownBy2Gaussian3x3u8(const uint8_t* __restrict src, 31247 uint32_t srcWidth, 31248 uint32_t srcHeight, 31249 uint32_t srcStride, 31250 uint8_t* __restrict dst, 31251 uint32_t dstStride); 31252 31253 //--------------------------------------------------------------------------- 31289 //------------------------------------------------------------------------------ 31290 31291 FASTCV_API void 31292 fcvSumOfSquaredDiffss8( const int8_t* __restrict a, 31293 float32_t invLenA, 31294 uint32_t dim, 31295 const int8_t* const * __restrict bList, 31296 const float32_t* __restrict invLenB, 31297 uint32_t numB, 31298 float32_t* __restrict distances ); 31299 31300 31301 31302 //------------------------------------------------------------------------------ 31341 //------------------------------------------------------------------------------ 31342 31343 FASTCV_API fcvStatus 31344 fcvAddScalarf32(const float32_t * __restrict src, 31345 uint32_t srcWidth, 31346 uint32_t srcHeight, 31347 uint32_t srcStride, 31348 float32_t scalar, 31349 float32_t * __restrict dst, 31350 uint32_t dstStride); 31351 31352 //------------------------------------------------------------------------------ 31397 //------------------------------------------------------------------------------ 31398 31399 FASTCV_API fcvStatus 31400 fcvAddScalars16(const int16_t * __restrict src, 31401 uint32_t srcWidth, 31402 uint32_t srcHeight, 31403 uint32_t srcStride, 31404 int16_t scalar, 31405 int16_t * __restrict dst, 31406 uint32_t dstStride); 31407 31408 //------------------------------------------------------------------------------ 31447 //------------------------------------------------------------------------------ 31448 31449 FASTCV_API fcvStatus 31450 fcvMultiplyScalarf32(const float32_t * __restrict src, 31451 uint32_t srcWidth, 31452 uint32_t srcHeight, 31453 uint32_t srcStride, 31454 float32_t scalar, 31455 float32_t * __restrict dst, 31456 uint32_t dstStride); 31457 31458 //------------------------------------------------------------------------------ 31510 //------------------------------------------------------------------------------ 31511 31512 FASTCV_API fcvStatus 31513 fcvMultiplyScalars16( const int16_t * __restrict src, 31514 uint32_t srcWidth, 31515 uint32_t srcHeight, 31516 uint32_t srcStride, 31517 int8_t scalar, 31518 int8_t shift, 31519 int16_t * __restrict dst, 31520 uint32_t dstStride); 31521 31522 //------------------------------------------------------------------------------ 31577 //------------------------------------------------------------------------------ 31578 31579 FASTCV_API fcvStatus 31580 fcvMinMaxLocu8(const uint8_t *__restrict src, 31581 uint32_t srcWidth, 31582 uint32_t srcHeight, 31583 uint32_t srcStride, 31584 uint8_t *__restrict minVal, 31585 uint8_t *__restrict maxVal, 31586 uint32_t *__restrict minLocX, 31587 uint32_t *__restrict minLocY, 31588 uint32_t *__restrict maxLocX, 31589 uint32_t *__restrict maxLocY); 31590 31591 //------------------------------------------------------------------------------ 31646 //------------------------------------------------------------------------------ 31647 31648 FASTCV_API fcvStatus 31649 fcvMinMaxLocu16(const uint16_t *__restrict src, 31650 uint32_t srcWidth, 31651 uint32_t srcHeight, 31652 uint32_t srcStride, 31653 uint16_t *__restrict minVal, 31654 uint16_t *__restrict maxVal, 31655 uint32_t *__restrict minLocX, 31656 uint32_t *__restrict minLocY, 31657 uint32_t *__restrict maxLocX, 31658 uint32_t *__restrict maxLocY); 31659 31660 //------------------------------------------------------------------------------ 31715 //------------------------------------------------------------------------------ 31716 31717 FASTCV_API fcvStatus 31718 fcvMinMaxLocs16(const int16_t *__restrict src, 31719 uint32_t srcWidth, 31720 uint32_t srcHeight, 31721 uint32_t srcStride, 31722 int16_t *__restrict minVal, 31723 int16_t *__restrict maxVal, 31724 uint32_t *__restrict minLocX, 31725 uint32_t *__restrict minLocY, 31726 uint32_t *__restrict maxLocX, 31727 uint32_t *__restrict maxLocY); 31728 31729 //------------------------------------------------------------------------------ 31784 //------------------------------------------------------------------------------ 31785 31786 FASTCV_API fcvStatus 31787 fcvMinMaxLocu32(const uint32_t *__restrict src, 31788 uint32_t srcWidth, 31789 uint32_t srcHeight, 31790 uint32_t srcStride, 31791 uint32_t *__restrict minVal, 31792 uint32_t *__restrict maxVal, 31793 uint32_t *__restrict minLocX, 31794 uint32_t *__restrict minLocY, 31795 uint32_t *__restrict maxLocX, 31796 uint32_t *__restrict maxLocY); 31797 31798 //------------------------------------------------------------------------------ 31853 //------------------------------------------------------------------------------ 31854 31855 FASTCV_API fcvStatus 31856 fcvMinMaxLocs32(const int32_t *__restrict src, 31857 uint32_t srcWidth, 31858 uint32_t srcHeight, 31859 uint32_t srcStride, 31860 int32_t *__restrict minVal, 31861 int32_t *__restrict maxVal, 31862 uint32_t *__restrict minLocX, 31863 uint32_t *__restrict minLocY, 31864 uint32_t *__restrict maxLocX, 31865 uint32_t *__restrict maxLocY); 31866 31867 //------------------------------------------------------------------------------ 31921 //------------------------------------------------------------------------------ 31922 31923 FASTCV_API fcvStatus 31924 fcvMinMaxLocf32(const float32_t *__restrict src, 31925 uint32_t srcWidth, 31926 uint32_t srcHeight, 31927 uint32_t srcStride, 31928 float32_t *__restrict minVal, 31929 float32_t *__restrict maxVal, 31930 uint32_t *__restrict minLocX, 31931 uint32_t *__restrict minLocY, 31932 uint32_t *__restrict maxLocX, 31933 uint32_t *__restrict maxLocY); 31934 31935 31936 //------------------------------------------------------------------------------ 32012 //------------------------------------------------------------------------------ 32013 FASTCV_API fcvStatus 32014 fcvMinMaxLocf32_v2(const float32_t *__restrict src, 32015 uint32_t srcWidth, 32016 uint32_t srcHeight, 32017 uint32_t srcStride, 32018 float32_t *__restrict minVal, 32019 float32_t *__restrict maxVal, 32020 uint32_t *__restrict minLocX, 32021 uint32_t *__restrict minLocY, 32022 uint32_t *__restrict maxLocX, 32023 uint32_t *__restrict maxLocY, 32024 uint32_t *__restrict minCount, 32025 uint32_t *__restrict maxCount, 32026 uint32_t nMinLocSize, 32027 uint32_t nMaxLocSize); 32028 32029 32030 //------------------------------------------------------------------------------ 32106 //------------------------------------------------------------------------------ 32107 32108 FASTCV_API fcvStatus 32109 fcvMinMaxLocu8_v2(const uint8_t *__restrict src, 32110 uint32_t srcWidth, 32111 uint32_t srcHeight, 32112 uint32_t srcStride, 32113 uint8_t *__restrict minVal, 32114 uint8_t *__restrict maxVal, 32115 uint32_t *__restrict minLocX, 32116 uint32_t *__restrict minLocY, 32117 uint32_t *__restrict maxLocX, 32118 uint32_t *__restrict maxLocY, 32119 uint32_t *__restrict minCount, 32120 uint32_t *__restrict maxCount, 32121 uint32_t nMinLocSize, 32122 uint32_t nMaxLocSize); 32123 32124 //------------------------------------------------------------------------------ 32200 //------------------------------------------------------------------------------ 32201 FASTCV_API fcvStatus 32202 fcvMinMaxLocu16_v2(const uint16_t *__restrict src, 32203 uint32_t srcWidth, 32204 uint32_t srcHeight, 32205 uint32_t srcStride, 32206 uint16_t *__restrict minVal, 32207 uint16_t *__restrict maxVal, 32208 uint32_t *__restrict minLocX, 32209 uint32_t *__restrict minLocY, 32210 uint32_t *__restrict maxLocX, 32211 uint32_t *__restrict maxLocY, 32212 uint32_t *__restrict minCount, 32213 uint32_t *__restrict maxCount, 32214 uint32_t nMinLocSize, 32215 uint32_t nMaxLocSize); 32216 //------------------------------------------------------------------------------ 32292 //------------------------------------------------------------------------------ 32293 FASTCV_API fcvStatus 32294 fcvMinMaxLocs16_v2(const int16_t *__restrict src, 32295 uint32_t srcWidth, 32296 uint32_t srcHeight, 32297 uint32_t srcStride, 32298 int16_t *__restrict minVal, 32299 int16_t *__restrict maxVal, 32300 uint32_t *__restrict minLocX, 32301 uint32_t *__restrict minLocY, 32302 uint32_t *__restrict maxLocX, 32303 uint32_t *__restrict maxLocY, 32304 uint32_t *__restrict minCount, 32305 uint32_t *__restrict maxCount, 32306 uint32_t nMinLocSize, 32307 uint32_t nMaxLocSize); 32308 32309 //------------------------------------------------------------------------------ 32385 //------------------------------------------------------------------------------ 32386 FASTCV_API fcvStatus 32387 fcvMinMaxLocu32_v2(const uint32_t *__restrict src, 32388 uint32_t srcWidth, 32389 uint32_t srcHeight, 32390 uint32_t srcStride, 32391 uint32_t *__restrict minVal, 32392 uint32_t *__restrict maxVal, 32393 uint32_t *__restrict minLocX, 32394 uint32_t *__restrict minLocY, 32395 uint32_t *__restrict maxLocX, 32396 uint32_t *__restrict maxLocY, 32397 uint32_t *__restrict minCount, 32398 uint32_t *__restrict maxCount, 32399 uint32_t nMinLocSize, 32400 uint32_t nMaxLocSize); 32401 32402 //------------------------------------------------------------------------------ 32478 //------------------------------------------------------------------------------ 32479 FASTCV_API fcvStatus 32480 fcvMinMaxLocs32_v2(const int32_t *__restrict src, 32481 uint32_t srcWidth, 32482 uint32_t srcHeight, 32483 uint32_t srcStride, 32484 int32_t *__restrict minVal, 32485 int32_t *__restrict maxVal, 32486 uint32_t *__restrict minLocX, 32487 uint32_t *__restrict minLocY, 32488 uint32_t *__restrict maxLocX, 32489 uint32_t *__restrict maxLocY, 32490 uint32_t *__restrict minCount, 32491 uint32_t *__restrict maxCount, 32492 uint32_t nMinLocSize, 32493 uint32_t nMaxLocSize); 32494 32495 //------------------------------------------------------------------------------ 32532 //------------------------------------------------------------------------------ 32533 32534 FASTCV_API fcvStatus 32535 fcvTransposeRGB888u8(const uint8_t * __restrict src, 32536 uint32_t srcWidth, 32537 uint32_t srcHeight, 32538 uint32_t srcStride, 32539 uint8_t * __restrict dst, 32540 uint32_t dstStride); 32541 32542 //------------------------------------------------------------------------------ 32570 //------------------------------------------------------------------------------ 32571 32572 FASTCV_API fcvStatus 32573 fcvCrossProduct3x1f32(const float32_t * __restrict a, 32574 const float32_t * __restrict b, 32575 float32_t * __restrict c, 32576 uint32_t N); 32577 32578 //------------------------------------------------------------------------------ 32616 //------------------------------------------------------------------------------ 32617 32618 FASTCV_API fcvStatus 32619 fcvSolveLUf32(float32_t* __restrict A, 32620 float32_t* __restrict b, 32621 uint32_t N, 32622 uint8_t* __restrict pivot, 32623 float32_t* __restrict x); 32624 32625 32626 //--------------------------------------------------------------------------- 32668 //--------------------------------------------------------------------------- 32669 32670 FASTCV_API fcvStatus 32671 fcvBitwiseAndu8(const uint8_t * src1, 32672 uint32_t width, 32673 uint32_t height, 32674 uint32_t src1Stride, 32675 const uint8_t *__restrict src2, 32676 uint32_t src2Stride, 32677 uint8_t * dst, 32678 uint32_t dstStride ); 32679 32680 //--------------------------------------------------------------------------- 32722 //--------------------------------------------------------------------------- 32723 32724 FASTCV_API fcvStatus 32725 fcvBitwiseXoru8( const uint8_t * src1, 32726 uint32_t width, 32727 uint32_t height, 32728 uint32_t src1Stride, 32729 const uint8_t *__restrict src2, 32730 uint32_t src2Stride, 32731 uint8_t * dst, 32732 uint32_t dstStride ); 32733 32734 //--------------------------------------------------------------------------- 32776 //--------------------------------------------------------------------------- 32777 32778 FASTCV_API fcvStatus 32779 fcvBitwiseNotu8(const uint8_t * src, 32780 uint32_t width, 32781 uint32_t height, 32782 uint32_t srcStride, 32783 uint8_t * dst, 32784 uint32_t dstStride ); 32785 32786 //--------------------------------------------------------------------------- 32831 //--------------------------------------------------------------------------- 32832 32833 FASTCV_API fcvStatus 32834 fcvAddu8(const uint8_t * src1, 32835 uint32_t width, 32836 uint32_t height, 32837 uint32_t src1Stride, 32838 const uint8_t * __restrict src2, 32839 uint32_t src2Stride, 32840 fcvConvertPolicy policy, 32841 uint8_t * dst, 32842 uint32_t dstStride ); 32843 32844 //--------------------------------------------------------------------------- 32889 //--------------------------------------------------------------------------- 32890 32891 FASTCV_API fcvStatus 32892 fcvAdds16_v2( const int16_t * src1, 32893 uint32_t width, 32894 uint32_t height, 32895 uint32_t src1Stride, 32896 const int16_t * __restrict src2, 32897 uint32_t src2Stride, 32898 fcvConvertPolicy policy, 32899 int16_t * dst, 32900 uint32_t dstStride ); 32901 32902 //--------------------------------------------------------------------------- 32947 //--------------------------------------------------------------------------- 32948 32949 FASTCV_API fcvStatus 32950 fcvAddu16u8u16 (const uint16_t * src1, 32951 uint32_t width, 32952 uint32_t height, 32953 uint32_t src1Stride, 32954 const uint8_t * __restrict src2, 32955 uint32_t src2Stride, 32956 fcvConvertPolicy policy, 32957 uint16_t * dst, 32958 uint32_t dstStride ); 32959 32960 //--------------------------------------------------------------------------- 33005 //--------------------------------------------------------------------------- 33006 33007 FASTCV_API fcvStatus 33008 fcvSubtractu8 ( const uint8_t * src1, 33009 uint32_t width, 33010 uint32_t height, 33011 uint32_t src1Stride, 33012 const uint8_t * __restrict src2, 33013 uint32_t src2Stride, 33014 fcvConvertPolicy policy, 33015 uint8_t * dst, 33016 uint32_t dstStride ); 33017 33018 //--------------------------------------------------------------------------- 33063 //--------------------------------------------------------------------------- 33064 33065 FASTCV_API fcvStatus 33066 fcvSubtracts16 (const int16_t * src1, 33067 uint32_t width, 33068 uint32_t height, 33069 uint32_t src1Stride, 33070 const int16_t * __restrict src2, 33071 uint32_t src2Stride, 33072 fcvConvertPolicy policy, 33073 int16_t * dst, 33074 uint32_t dstStride ); 33075 33076 //--------------------------------------------------------------------------- 33116 33118 //--------------------------------------------------------------------------- 33119 33120 FASTCV_API fcvStatus 33121 fcvSubtractu8s16 ( const uint8_t * __restrict src1, 33122 uint32_t width, 33123 uint32_t height, 33124 uint32_t src1Stride, 33125 const uint8_t * __restrict src2, 33126 uint32_t src2Stride, 33127 int16_t * __restrict dst, 33128 uint32_t dstStride ); 33129 33130 //--------------------------------------------------------------------------- 33180 //--------------------------------------------------------------------------- 33181 33182 FASTCV_API fcvStatus 33183 fcvElementMultiplys16( const int16_t * src1, 33184 uint32_t width, 33185 uint32_t height, 33186 uint32_t src1Stride, 33187 const int16_t * src2, 33188 uint32_t src2Stride, 33189 int8_t scaleFactor, 33190 fcvConvertPolicy policy, 33191 int16_t *__restrict dst, 33192 uint32_t dstStride ); 33193 33194 //--------------------------------------------------------------------------- 33244 //--------------------------------------------------------------------------- 33245 33246 FASTCV_API fcvStatus 33247 fcvElementMultiplyu8s16( const uint8_t * src1, 33248 uint32_t width, 33249 uint32_t height, 33250 uint32_t src1Stride, 33251 const uint8_t * src2, 33252 uint32_t src2Stride, 33253 int8_t scaleFactor, 33254 fcvConvertPolicy policy, 33255 int16_t *__restrict dst, 33256 uint32_t dstStride ); 33257 33258 //--------------------------------------------------------------------------- 33308 //--------------------------------------------------------------------------- 33309 33310 FASTCV_API fcvStatus 33311 fcvElementMultiplyu8( const uint8_t * src1, 33312 uint32_t width, 33313 uint32_t height, 33314 uint32_t src1Stride, 33315 const uint8_t * src2, 33316 uint32_t src2Stride, 33317 int8_t scaleFactor, 33318 fcvConvertPolicy policy, 33319 uint8_t *__restrict dst, 33320 uint32_t dstStride ); 33321 33322 //--------------------------------------------------------------------------- 33375 //--------------------------------------------------------------------------- 33376 33377 FASTCV_API fcvStatus 33378 fcvAddWeightedu8(const uint8_t * src1, 33379 uint32_t srcWidth, 33380 uint32_t srcHeight, 33381 uint32_t src1Stride, 33382 const uint8_t *__restrict src2, 33383 uint32_t src2Stride, 33384 float32_t alpha, 33385 float32_t beta, 33386 uint8_t * dst, 33387 uint32_t dstStride); 33388 33389 33390 //--------------------------------------------------------------------------- 33437 //--------------------------------------------------------------------------- 33438 33439 FASTCV_API fcvStatus 33440 fcvAddSquaredu8u16(const uint8_t *__restrict src1, 33441 uint32_t width, 33442 uint32_t height, 33443 uint32_t src1Stride, 33444 const uint16_t * src2, 33445 uint32_t src2Stride, 33446 int8_t scaleFactor, 33447 uint16_t * dst, 33448 uint32_t dstStride); 33449 33450 //------------------------------------------------------------------------------ 33485 //------------------------------------------------------------------------------ 33486 33487 FASTCV_API void 33488 fcvColorCbCrSwapu8( const uint8_t* __restrict src, 33489 uint32_t srcWidth, 33490 uint32_t srcHeight, 33491 uint32_t srcStride, 33492 uint8_t* __restrict dst, 33493 uint32_t dstStride ); 33494 33495 33496 //------------------------------------------------------------------------------ 33531 //------------------------------------------------------------------------------ 33532 FASTCV_API fcvStatus 33533 fcvColorRGB888ToHSV888u8( const uint8_t* __restrict src, 33534 uint32_t srcWidth, 33535 uint32_t srcHeight, 33536 uint32_t srcStride, 33537 uint8_t* __restrict dst, 33538 uint32_t dstStride); 33539 33540 33541 //------------------------------------------------------------------------------/ 33611 //------------------------------------------------------------------------------/ 33612 33613 FASTCV_API fcvStatus 33614 fcvSVMPredict2Classf32( fcvSVMKernelType kernelType, 33615 uint32_t degree, 33616 float32_t gamma, 33617 float32_t coef0, 33618 const float32_t* __restrict sv, 33619 uint32_t svLen, 33620 uint32_t svNum, 33621 uint32_t svStride, 33622 const float32_t* __restrict svCoef, 33623 float32_t rho, 33624 const float32_t* __restrict vec, 33625 uint32_t vecNum, 33626 uint32_t vecStride, 33627 float32_t* __restrict confidence ); 33628 33629 33630 // ----------------------------------------------------------------------------- 33728 // ----------------------------------------------------------------------------- 33729 33730 FASTCV_API fcvStatus 33731 fcvTrackLKOpticalFlowu8_v3 ( const uint8_t *__restrict src1, 33732 const uint8_t *__restrict src2, 33733 uint32_t width, 33734 uint32_t height, 33735 uint32_t stride, 33736 const fcvPyramidLevel_v2 * __restrict src1Pyr, 33737 const fcvPyramidLevel_v2 * __restrict src2Pyr, 33738 const float32_t * __restrict featureXY, 33739 const float32_t * __restrict featureXY_estimate, 33740 float32_t * __restrict featureXY_out, 33741 int32_t * __restrict featureStatus, 33742 int32_t featureLen, 33743 int32_t windowWidth, 33744 int32_t windowHeight, 33745 int32_t nPyramidLevels, 33746 fcvTerminationCriteria termCriteria, 33747 int32_t maxIterations, 33748 float32_t maxEpsilon, 33749 int32_t use_initial_estimate); 33750 33751 //------------------------------------------------------------------------------ 33821 //------------------------------------------------------------------------------ 33822 33823 FASTCV_API fcvStatus 33824 fcvUndistortDisparityConvertDepthf32(const float32_t* __restrict src, 33825 uint32_t srcWidth, 33826 uint32_t srcHeight, 33827 uint32_t srcStride, 33828 const uint8_t* __restrict mask, 33829 uint32_t maskStride, 33830 const float32_t* __restrict pixelDistortion, 33831 uint32_t pixelDistortionStride, 33832 uint32_t convertDepth, 33833 const float32_t* __restrict imageDistortion, 33834 const float32_t* __restrict depthParam, 33835 float32_t* __restrict dst, 33836 uint32_t dstStride); 33837 33838 33839 //------------------------------------------------------------------------------ 33886 //------------------------------------------------------------------------------ 33887 33888 FASTCV_API fcvStatus 33889 fcvRegisterDepthImagef32(const float32_t* __restrict src, 33890 uint32_t srcWidth, 33891 uint32_t srcHeight, 33892 uint32_t srcStride, 33893 const float32_t* __restrict Kdinv, 33894 const float32_t* __restrict Kc, 33895 const float32_t* __restrict Rd2c, 33896 const float32_t* __restrict Td2c, 33897 float32_t* __restrict dst, 33898 uint32_t dstStride); 33899 33900 //------------------------------------------------------------------------------ 33921 // 33936 //------------------------------------------------------------------------------ 33937 FASTCV_API fcvStatus 33938 fcvConvertDepthImageToPointCloudf32(const float32_t* __restrict src, 33939 uint32_t srcWidth, 33940 uint32_t srcHeight, 33941 uint32_t srcStride, 33942 const float32_t* __restrict Kdinv, 33943 float32_t* __restrict dst, 33944 uint32_t dstStride); 33945 33946 // ----------------------------------------------------------------------------- 34006 // ----------------------------------------------------------------------------- 34007 34008 FASTCV_API fcvStatus 34009 fcvExtractHOGu16(const uint16_t* __restrict strength, 34010 uint32_t width, 34011 uint32_t height, 34012 uint32_t strengthStride, 34013 const uint16_t* __restrict orientation, 34014 uint32_t orientationStride, 34015 uint32_t cellSize, 34016 uint32_t blockSize, 34017 uint32_t blockStep, 34018 uint32_t binSize, 34019 fcvHOGNormMethod normMethod, 34020 uint16_t* __restrict hogVector, 34021 uint32_t flen, 34022 void* handle); 34023 34024 // ----------------------------------------------------------------------------- 34061 // ----------------------------------------------------------------------------- 34062 34063 FASTCV_API fcvStatus 34064 fcvHOGInit(uint32_t width, 34065 uint32_t height, 34066 uint32_t cellSize, 34067 uint32_t blockSize, 34068 uint32_t blockStep, 34069 uint32_t binSize, 34070 fcvHOGNormMethod normMethod, 34071 uint32_t *vecLength, 34072 void **hogHandle 34073 ); 34074 //------------------------------------------------------------------------------ 34079 //------------------------------------------------------------------------------ 34080 34081 FASTCV_API void fcvHOGDeInit(void* hogHandle); 34082 34083 34084 34085 #ifdef __cplusplus 34086 }//extern "C" 34087 #endif 34088 34089 #endif