diff --git a/modules/core/src/hal_replacement.hpp b/modules/core/src/hal_replacement.hpp index f0fd12ca35..046b0678a4 100644 --- a/modules/core/src/hal_replacement.hpp +++ b/modules/core/src/hal_replacement.hpp @@ -831,7 +831,6 @@ inline int hal_ni_flip(int src_type, const uchar* src_data, size_t src_step, int #define cv_hal_flip hal_ni_flip //! @endcond - /** @brief rotate90 @param src_type source and destination image type @@ -854,6 +853,20 @@ inline int hal_ni_rotate90(int src_type, const uchar* src_data, size_t src_step, #define cv_hal_rotate90 hal_ni_rotate90 //! @endcond +/** + @brief Transpose2d + @param src_data,src_step Source image + @param dst_data,dst_step Destination image + @param src_width,src_height Source image dimensions + @param element_size Size of an element in bytes +*/ +inline int hal_ni_transpose2d(const uchar* src_data, size_t src_step, uchar* dst_data, size_t dst_step, int src_width, + int src_height, int element_size) { return CV_HAL_ERROR_NOT_IMPLEMENTED; } + +//! @cond IGNORED +#define cv_hal_transpose2d hal_ni_transpose2d +//! @endcond + //! @} diff --git a/modules/core/src/matrix_transform.cpp b/modules/core/src/matrix_transform.cpp index 5a80ac8ca7..bad17e7b6b 100644 --- a/modules/core/src/matrix_transform.cpp +++ b/modules/core/src/matrix_transform.cpp @@ -269,6 +269,8 @@ void transpose( InputArray _src, OutputArray _dst ) return; } + CALL_HAL(transpose2d, cv_hal_transpose2d, src.data, src.step, dst.data, dst.step, src.cols, src.rows, esz); + CV_IPP_RUN_FAST(ipp_transpose(src, dst)) if( dst.data == src.data )