![]() |
OpenCV 4.12.0
開源計算機視覺
|
#include <limits>#include <cstring>#include <algorithm>#include "opencv2/core/utility.hpp"#include "opencv2/core/saturate.hpp"類 | |
| 結構體 | cv::v_reg< _Tp, n > |
名稱空間 | |
| 名稱空間 | cv |
宏 | |
| #define | OPENCV_HAL_IMPL_ARITHM_OP(func, bin_op, cast_op, _Tp2) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_INIT_VAL(_Tpvec, _Tp, prefix, suffix) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_INIT_ZERO(_Tpvec, prefix, suffix) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_PACK(_Tp, _Tpn, pack_suffix, cast) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_PACK_STORE(_Tp, _Tpn, pack_suffix, cast) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_REINTERPRET(_Tp, suffix) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_RSHIFTR(_Tp) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_RSHR_PACK(_Tp, _Tpn, pack_suffix, cast) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_RSHR_PACK_STORE(_Tp, _Tpn, pack_suffix, cast) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_SHIFTL(_Tp) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_C_SHIFTR(_Tp) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_CMP_OP(cmp_op, func) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_MATH_FUNC(func, cfunc, _Tp2) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_MINMAX_FUNC(func, cfunc) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_REDUCE_MINMAX_FUNC(func, cfunc) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_ROTATE_SHIFT_OP(suffix, opA, opB) |
| 助手宏。 | |
| #define | OPENCV_HAL_IMPL_SHIFT_OP(shift_op, func) |
| 助手宏。 | |
| #define | OPENCV_HAL_MATH_HAVE_EXP 1 |
型別定義 | |
| typedef v_reg< float, 16 > | cv::v_float32x16 |
| 十六個32位浮點值(單精度) | |
| typedef v_reg< float, 4 > | cv::v_float32x4 |
| 四個32位浮點值(單精度) | |
| typedef v_reg< float, 8 > | cv::v_float32x8 |
| 八個32位浮點值(單精度) | |
| typedef v_reg< double, 2 > | cv::v_float64x2 |
| 兩個64位浮點值(雙精度) | |
| typedef v_reg< double, 4 > | cv::v_float64x4 |
| 四個64位浮點值(雙精度) | |
| typedef v_reg< double, 8 > | cv::v_float64x8 |
| 八個64位浮點值(雙精度) | |
| typedef v_reg< short, 16 > | cv::v_int16x16 |
| 十六個16位有符號整數值。 | |
| typedef v_reg< short, 32 > | cv::v_int16x32 |
| 三十二個16位有符號整數值。 | |
| typedef v_reg< short, 8 > | cv::v_int16x8 |
| 八個16位有符號整數值。 | |
| typedef v_reg< int, 16 > | cv::v_int32x16 |
| 十六個32位有符號整數值。 | |
| typedef v_reg< int, 4 > | cv::v_int32x4 |
| 四個32位有符號整數值。 | |
| typedef v_reg< int, 8 > | cv::v_int32x8 |
| 八個32位有符號整數值。 | |
| typedef v_reg< int64, 2 > | cv::v_int64x2 |
| 兩個64位有符號整數值。 | |
| typedef v_reg< int64, 4 > | cv::v_int64x4 |
| 四個64位有符號整數值。 | |
| typedef v_reg< int64, 8 > | cv::v_int64x8 |
| 八個64位有符號整數值。 | |
| typedef v_reg< schar, 16 > | cv::v_int8x16 |
| 十六個8位有符號整數值。 | |
| typedef v_reg< schar, 32 > | cv::v_int8x32 |
| 三十二個8位有符號整數值。 | |
| typedef v_reg< schar, 64 > | cv::v_int8x64 |
| 六十四個8位有符號整數值。 | |
| typedef v_reg< ushort, 16 > | cv::v_uint16x16 |
| 十六個16位無符號整數值。 | |
| typedef v_reg< ushort, 32 > | cv::v_uint16x32 |
| 三十二個16位無符號整數值。 | |
| typedef v_reg< ushort, 8 > | cv::v_uint16x8 |
| 八個16位無符號整數值。 | |
| typedef v_reg< unsigned, 16 > | cv::v_uint32x16 |
| 十六個32位無符號整數值。 | |
| typedef v_reg< unsigned, 4 > | cv::v_uint32x4 |
| 四個32位無符號整數值。 | |
| typedef v_reg< unsigned, 8 > | cv::v_uint32x8 |
| 八個32位無符號整數值。 | |
| typedef v_reg< uint64, 2 > | cv::v_uint64x2 |
| 兩個64位無符號整數值。 | |
| typedef v_reg< uint64, 4 > | cv::v_uint64x4 |
| 四個64位無符號整數值。 | |
| typedef v_reg< uint64, 8 > | cv::v_uint64x8 |
| 八個64位無符號整數值。 | |
| typedef v_reg< uchar, 16 > | cv::v_uint8x16 |
| 十六個8位無符號整數值。 | |
| typedef v_reg< uchar, 32 > | cv::v_uint8x32 |
| 三十二個8位無符號整數值。 | |
| typedef v_reg< uchar, 64 > | cv::v_uint8x64 |
| 六十四個8位無符號整數值。 | |
列舉 | |
| 列舉 | { cv::simd128_width = 16 , cv::simd256_width = 32 , cv::simd512_width = 64 , cv::simdmax_width = simd512_width } |
函式 | |
| void | cv::v256_cleanup () |
| template<typename _Tp > | |
| v_reg< _Tp, simd256_width/sizeof(_Tp)> | cv::v256_load (const _Tp *ptr) |
| 從記憶體載入256位長度暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd256_width/sizeof(_Tp)> | cv::v256_load_aligned (const _Tp *ptr) |
| 從記憶體載入暫存器內容(對齊) | |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, simd256_width/sizeof(typename V_TypeTraits< _Tp >::w_type)> | cv::v256_load_expand (const _Tp *ptr) |
| 從記憶體載入暫存器內容並雙重擴充套件。 | |
| v_reg< float, simd256_width/sizeof(float)> | cv::v256_load_expand (const hfloat *ptr) |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, simd256_width/sizeof(typename V_TypeTraits< _Tp >::q_type)> | cv::v256_load_expand_q (const _Tp *ptr) |
| 從記憶體載入暫存器內容並四重擴充套件。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd256_width/sizeof(_Tp)> | cv::v256_load_halves (const _Tp *loptr, const _Tp *hiptr) |
| 從兩個記憶體塊載入暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd256_width/sizeof(_Tp)> | cv::v256_load_low (const _Tp *ptr) |
| 載入128位資料到低位部分(高位部分未定義)。 | |
| void | cv::v512_cleanup () |
| template<typename _Tp > | |
| v_reg< _Tp, simd512_width/sizeof(_Tp)> | cv::v512_load (const _Tp *ptr) |
| 從記憶體載入512位長度暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd512_width/sizeof(_Tp)> | cv::v512_load_aligned (const _Tp *ptr) |
| 從記憶體載入暫存器內容(對齊) | |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, simd512_width/sizeof(typename V_TypeTraits< _Tp >::w_type)> | cv::v512_load_expand (const _Tp *ptr) |
| 從記憶體載入暫存器內容並雙重擴充套件。 | |
| v_reg< float, simd512_width/sizeof(float)> | cv::v512_load_expand (const hfloat *ptr) |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, simd512_width/sizeof(typename V_TypeTraits< _Tp >::q_type)> | cv::v512_load_expand_q (const _Tp *ptr) |
| 從記憶體載入暫存器內容並四重擴充套件。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd512_width/sizeof(_Tp)> | cv::v512_load_halves (const _Tp *loptr, const _Tp *hiptr) |
| 從兩個記憶體塊載入暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd512_width/sizeof(_Tp)> | cv::v512_load_low (const _Tp *ptr) |
| 載入256位資料到低位部分(高位部分未定義)。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_abs (const v_reg< _Tp, n > &a) |
| 元素的絕對值。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_absdiff (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 絕對差。 | |
| template<int n> | |
| v_reg< double, n > | cv::v_absdiff (const v_reg< double, n > &a, const v_reg< double, n > &b) |
| template<int n> | |
| v_reg< float, n > | cv::v_absdiff (const v_reg< float, n > &a, const v_reg< float, n > &b) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_absdiffs (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 飽和絕對差。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_add (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 新增值。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_add_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 無飽和新增值。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_and (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 按位與。 | |
| template<int i, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_broadcast_element (const v_reg< _Tp, n > &a) |
| 廣播向量的第i個元素。 | |
| template<int n> | |
| v_reg< int, n *2 > | cv::v_ceil (const v_reg< double, n > &a) |
| template<int n> | |
| v_reg< int, n > | cv::v_ceil (const v_reg< float, n > &a) |
| 向上取整元素。 | |
| template<typename _Tp , int n> | |
| bool | cv::v_check_all (const v_reg< _Tp, n > &a) |
| 檢查所有打包值是否都小於零。 | |
| template<typename _Tp , int n> | |
| bool | cv::v_check_any (const v_reg< _Tp, n > &a) |
| 檢查是否有任何打包值小於零。 | |
| void | cv::v_cleanup () |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_combine_high (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 從兩個向量的最後元素組合向量。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_combine_low (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 從兩個向量的第一個元素組合向量。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_cos (const v_reg< _Tp, n > &a) |
| 元素的餘弦 \( cos(x) \)。 | |
| template<int n> | |
| v_reg< float, n *2 > | cv::v_cvt_f32 (const v_reg< double, n > &a) |
| 將下半部分轉換為浮點數。 | |
| template<int n> | |
| v_reg< float, n *2 > | cv::v_cvt_f32 (const v_reg< double, n > &a, const v_reg< double, n > &b) |
| 轉換為浮點數。 | |
| template<int n> | |
| v_reg< float, n > | cv::v_cvt_f32 (const v_reg< int, n > &a) |
| 轉換為浮點數。 | |
| template<int n> | |
| v_reg< double,(n/2)> | cv::v_cvt_f64 (const v_reg< float, n > &a) |
| 將下半部分轉換為雙精度浮點數。 | |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_cvt_f64 (const v_reg< int, n > &a) |
| 將下半部分轉換為雙精度浮點數。 | |
| template<int n> | |
| v_reg< double, n > | cv::v_cvt_f64 (const v_reg< int64, n > &a) |
| 轉換為雙精度浮點數。 | |
| template<int n> | |
| v_reg< double,(n/2)> | cv::v_cvt_f64_high (const v_reg< float, n > &a) |
| 將向量高位部分轉換為雙精度浮點數。 | |
| template<int n> | |
| v_reg< double,(n/2)> | cv::v_cvt_f64_high (const v_reg< int, n > &a) |
| 將向量高位部分轉換為雙精度浮點數。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_div (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 除法。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 元素的點積。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c) |
| 元素的點積。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 元素的點積並擴充套件。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > &c) |
| 元素的點積。 | |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_dotprod_expand (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_dotprod_expand (const v_reg< int, n > &a, const v_reg< int, n > &b, const v_reg< double, n/2 > &c) |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 快速元素的點積並擴充套件。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > &c) |
| 快速元素的點積。 | |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_dotprod_expand_fast (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_dotprod_expand_fast (const v_reg< int, n > &a, const v_reg< int, n > &b, const v_reg< double, n/2 > &c) |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 快速元素的點積。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c) |
| 快速元素的點積。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_eq (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 相等比較。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_erf (const v_reg< _Tp, n > &a) |
| 誤差函式。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_exp (const v_reg< _Tp, n > &a) |
| 元素的指數 \( e^x \)。 | |
| template<typename _Tp , int n> | |
| void | cv::v_expand (const v_reg< _Tp, n > &a, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &b0, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &b1) |
| 將值擴充套件到更寬的打包型別。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_expand_high (const v_reg< _Tp, n > &a) |
| 將更高值擴充套件到更寬的打包型別。 | |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_expand_low (const v_reg< _Tp, n > &a) |
| 將更低值擴充套件到更寬的打包型別。 | |
| template<int s, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_extract (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 向量提取。 | |
| template<int s, typename _Tp , int n> | |
| _Tp | cv::v_extract_n (const v_reg< _Tp, n > &v) |
| 向量提取。 | |
| template<int n> | |
| v_reg< int, n *2 > | cv::v_floor (const v_reg< double, n > &a) |
| template<int n> | |
| v_reg< int, n > | cv::v_floor (const v_reg< float, n > &a) |
| 向下取整元素。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_fma (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c) |
| 乘加運算。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_ge (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 大於或等於比較。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_gt (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 大於比較。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_interleave_pairs (const v_reg< _Tp, n > &vec) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_interleave_quads (const v_reg< _Tp, n > &vec) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_invsqrt (const v_reg< _Tp, n > &a) |
| 平方根倒數。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_le (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 小於或等於比較。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_load (const _Tp *ptr) |
| 從記憶體載入暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_load_aligned (const _Tp *ptr) |
| 從記憶體載入暫存器內容(對齊) | |
| template<typename _Tp , int n> | |
| void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b) |
| 載入和解交錯(2通道) | |
| template<typename _Tp , int n> | |
| void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b, v_reg< _Tp, n > &c) |
| 載入和解交錯(3通道) | |
| template<typename _Tp , int n> | |
| void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b, v_reg< _Tp, n > &c, v_reg< _Tp, n > &d) |
| 載入和解交錯(4通道) | |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::w_type, simd128_width/sizeof(typename V_TypeTraits< _Tp >::w_type)> | cv::v_load_expand (const _Tp *ptr) |
| 從記憶體載入暫存器內容並雙重擴充套件。 | |
| v_reg< float, simd128_width/sizeof(float)> | cv::v_load_expand (const hfloat *ptr) |
| template<typename _Tp > | |
| v_reg< typename V_TypeTraits< _Tp >::q_type, simd128_width/sizeof(typename V_TypeTraits< _Tp >::q_type)> | cv::v_load_expand_q (const _Tp *ptr) |
| 從記憶體載入暫存器內容並四重擴充套件。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_load_halves (const _Tp *loptr, const _Tp *hiptr) |
| 從兩個記憶體塊載入暫存器內容。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_load_low (const _Tp *ptr) |
| 載入64位資料到低位部分(高位部分未定義)。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_log (const v_reg< _Tp, n > &a) |
| 元素的自然對數 \( \log(x) \)。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_lt (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 小於比較。 | |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_lut (const _Tp *tab, const int *idx) |
| template<int n> | |
| v_reg< double, n/2 > | cv::v_lut (const double *tab, const v_reg< int, n > &idx) |
| template<int n> | |
| v_reg< float, n > | cv::v_lut (const float *tab, const v_reg< int, n > &idx) |
| template<int n> | |
| v_reg< int, n > | cv::v_lut (const int *tab, const v_reg< int, n > &idx) |
| template<int n> | |
| v_reg< unsigned, n > | cv::v_lut (const unsigned *tab, const v_reg< int, n > &idx) |
| template<int n> | |
| void | cv::v_lut_deinterleave (const double *tab, const v_reg< int, n *2 > &idx, v_reg< double, n > &x, v_reg< double, n > &y) |
| template<int n> | |
| void | cv::v_lut_deinterleave (const float *tab, const v_reg< int, n > &idx, v_reg< float, n > &x, v_reg< float, n > &y) |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_lut_pairs (const _Tp *tab, const int *idx) |
| template<typename _Tp > | |
| v_reg< _Tp, simd128_width/sizeof(_Tp)> | cv::v_lut_quads (const _Tp *tab, const int *idx) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_magnitude (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 幅值。 | |
| template<int n> | |
| v_reg< float, n > | cv::v_matmul (const v_reg< float, n > &v, const v_reg< float, n > &a, const v_reg< float, n > &b, const v_reg< float, n > &c, const v_reg< float, n > &d) |
| 矩陣乘法。 | |
| template<int n> | |
| v_reg< float, n > | cv::v_matmuladd (const v_reg< float, n > &v, const v_reg< float, n > &a, const v_reg< float, n > &b, const v_reg< float, n > &c, const v_reg< float, n > &d) |
| 矩陣乘加。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_max (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 為每對選擇最大值。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_min (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 為每對選擇最小值。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_mul (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 乘法。 | |
| template<typename _Tp , int n> | |
| void | cv::v_mul_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &d) |
| 乘法並擴充套件。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_mul_hi (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 乘法並提取高位部分。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_mul_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 無飽和乘法。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_muladd (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c) |
| v_fma 的同義詞。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_ne (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 不相等比較。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_not (const v_reg< _Tp, n > &a) |
| 按位非。 | |
| template<int n> | |
| v_reg< double, n > | cv::v_not_nan (const v_reg< double, n > &a) |
| template<int n> | |
| v_reg< float, n > | cv::v_not_nan (const v_reg< float, n > &a) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_or (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 按位或。 | |
| template<int n> | |
| void | cv::v_pack_store (hfloat *ptr, const v_reg< float, n > &v) |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_pack_triplets (const v_reg< _Tp, n > &vec) |
| template<typename _Tp , int n> | |
| v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_popcount (const v_reg< _Tp, n > &a) |
| 計算向量通道中的1位,並將結果作為相應的無符號型別返回。 | |
| template<typename _Tp , int n> | |
| void | cv::v_recombine (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, v_reg< _Tp, n > &low, v_reg< _Tp, n > &high) |
| 將兩個向量從另外兩個向量的低部和高部組合起來。 | |
| template<typename _Tp , int n> | |
| _Tp | cv::v_reduce_max (const v_reg< _Tp, n > &a) |
| 查詢一個最大值。 | |
| template<typename _Tp , int n> | |
| _Tp | cv::v_reduce_min (const v_reg< _Tp, n > &a) |
| 查詢一個最小值。 | |
| template<typename _Tp , int n> | |
| V_TypeTraits< typenameV_TypeTraits< _Tp >::abs_type >::sum_type | cv::v_reduce_sad (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 值的絕對差之和。 | |
| template<typename _Tp , int n> | |
| V_TypeTraits< _Tp >::sum_type | cv::v_reduce_sum (const v_reg< _Tp, n > &a) |
| 對打包值求和。 | |
| template<int n> | |
| v_reg< float, n > | cv::v_reduce_sum4 (const v_reg< float, n > &a, const v_reg< float, n > &b, const v_reg< float, n > &c, const v_reg< float, n > &d) |
| 將每個輸入向量的所有元素求和,返回和的向量。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_reverse (const v_reg< _Tp, n > &a) |
| 向量反序。 | |
| template<int imm, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_rotate_left (const v_reg< _Tp, n > &a) |
| 向量內元素左移。 | |
| template<int imm, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_rotate_left (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| template<int imm, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_rotate_right (const v_reg< _Tp, n > &a) |
| 向量內元素右移。 | |
| template<int imm, typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_rotate_right (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| template<int n> | |
| v_reg< int, n *2 > | cv::v_round (const v_reg< double, n > &a) |
| template<int n> | |
| v_reg< int, n *2 > | cv::v_round (const v_reg< double, n > &a, const v_reg< double, n > &b) |
| template<int n> | |
| v_reg< int, n > | cv::v_round (const v_reg< float, n > &a) |
| 四捨五入元素。 | |
| template<typename _Tp , int n> | |
| int | cv::v_scan_forward (const v_reg< _Tp, n > &a) |
| 獲取第一個負通道索引。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_select (const v_reg< _Tp, n > &mask, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 逐元素選擇(混合操作) | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_shl (const v_reg< _Tp, n > &a, int imm) |
| 按位左移。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_shr (const v_reg< _Tp, n > &a, int imm) |
| 按位右移。 | |
| template<typename _Tp , int n> | |
| int | cv::v_signmask (const v_reg< _Tp, n > &a) |
| 獲取負值掩碼。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_sin (const v_reg< _Tp, n > &a) |
| 元素的正弦 \( sin(x) \)。 | |
| template<typename _Tp , int n> | |
| void | cv::v_sincos (const v_reg< _Tp, n > &x, v_reg< _Tp, n > &s, v_reg< _Tp, n > &c) |
| 同時計算元素的正弦 \( sin(x) \) 和餘弦 \( cos(x) \)。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_sqr_magnitude (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 幅值的平方。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_sqrt (const v_reg< _Tp, n > &a) |
| 元素的平方根。 | |
| template<typename _Tp , int n> | |
| void | cv::v_store (_Tp *ptr, const v_reg< _Tp, n > &a) |
| 將資料儲存到記憶體。 | |
| template<typename _Tp , int n> | |
| void | cv::v_store (_Tp *ptr, const v_reg< _Tp, n > &a, hal::StoreMode) |
| template<typename _Tp , int n> | |
| void | cv::v_store_aligned (_Tp *ptr, const v_reg< _Tp, n > &a) |
| 將資料儲存到記憶體(對齊) | |
| template<typename _Tp , int n> | |
| void | cv::v_store_aligned (_Tp *ptr, const v_reg< _Tp, n > &a, hal::StoreMode) |
| template<typename _Tp , int n> | |
| void | cv::v_store_aligned_nocache (_Tp *ptr, const v_reg< _Tp, n > &a) |
| template<typename _Tp , int n> | |
| void | cv::v_store_high (_Tp *ptr, const v_reg< _Tp, n > &a) |
| 將資料儲存到記憶體(高位半部) | |
| template<typename _Tp , int n> | |
| void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c, const v_reg< _Tp, n > &d, hal::StoreMode=hal::STORE_UNALIGNED) |
| 交錯並存儲(4通道) | |
| template<typename _Tp , int n> | |
| void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c, hal::StoreMode=hal::STORE_UNALIGNED) |
| 交錯並存儲(3通道) | |
| template<typename _Tp , int n> | |
| void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, hal::StoreMode=hal::STORE_UNALIGNED) |
| 交錯並存儲(2通道) | |
| template<typename _Tp , int n> | |
| void | cv::v_store_low (_Tp *ptr, const v_reg< _Tp, n > &a) |
| 將資料儲存到記憶體(低位半部) | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_sub (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 減法。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_sub_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 無飽和減法。 | |
| template<typename _Tp , int n> | |
| void | cv::v_transpose4x4 (v_reg< _Tp, n > &a0, const v_reg< _Tp, n > &a1, const v_reg< _Tp, n > &a2, const v_reg< _Tp, n > &a3, v_reg< _Tp, n > &b0, v_reg< _Tp, n > &b1, v_reg< _Tp, n > &b2, v_reg< _Tp, n > &b3) |
| 轉置4x4矩陣。 | |
| template<int n> | |
| v_reg< int, n *2 > | cv::v_trunc (const v_reg< double, n > &a) |
| template<int n> | |
| v_reg< int, n > | cv::v_trunc (const v_reg< float, n > &a) |
| 截斷元素。 | |
| template<typename _Tp , int n> | |
| v_reg< _Tp, n > | cv::v_xor (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b) |
| 按位異或。 | |
| template<typename _Tp , int n> | |
| void | cv::v_zip (const v_reg< _Tp, n > &a0, const v_reg< _Tp, n > &a1, v_reg< _Tp, n > &b0, v_reg< _Tp, n > &b1) |
| 交錯兩個向量。 | |
初始化為零 | |
建立具有零元素的新向量 | |
| v_float32x8 | cv::v256_setzero_f32 () |
| v_float64x4 | cv::v256_setzero_f64 () |
| v_int16x16 | cv::v256_setzero_s16 () |
| v_int32x8 | cv::v256_setzero_s32 () |
| v_int64x4 | cv::v256_setzero_s64 () |
| v_int8x32 | cv::v256_setzero_s8 () |
| v_uint16x16 | cv::v256_setzero_u16 () |
| v_uint32x8 | cv::v256_setzero_u32 () |
| v_uint64x4 | cv::v256_setzero_u64 () |
| v_uint8x32 | cv::v256_setzero_u8 () |
| v_float32x16 | cv::v512_setzero_f32 () |
| v_float64x8 | cv::v512_setzero_f64 () |
| v_int16x32 | cv::v512_setzero_s16 () |
| v_int32x16 | cv::v512_setzero_s32 () |
| v_int64x8 | cv::v512_setzero_s64 () |
| v_int8x64 | cv::v512_setzero_s8 () |
| v_uint16x32 | cv::v512_setzero_u16 () |
| v_uint32x16 | cv::v512_setzero_u32 () |
| v_uint64x8 | cv::v512_setzero_u64 () |
| v_uint8x64 | cv::v512_setzero_u8 () |
| template<> | |
| v_uint8x16 | cv::v_setzero_ () |
| template<> | |
| v_int8x16 | cv::v_setzero_ () |
| template<> | |
| v_uint16x8 | cv::v_setzero_ () |
| template<> | |
| v_int16x8 | cv::v_setzero_ () |
| template<> | |
| v_uint32x4 | cv::v_setzero_ () |
| template<> | |
| v_int32x4 | cv::v_setzero_ () |
| template<> | |
| v_float32x4 | cv::v_setzero_ () |
| template<> | |
| v_float64x2 | cv::v_setzero_ () |
| template<> | |
| v_uint64x2 | cv::v_setzero_ () |
| template<> | |
| v_int64x2 | cv::v_setzero_ () |
| template<> | |
| v_uint8x32 | cv::v_setzero_ () |
| template<> | |
| v_int8x32 | cv::v_setzero_ () |
| template<> | |
| v_uint16x16 | cv::v_setzero_ () |
| template<> | |
| v_int16x16 | cv::v_setzero_ () |
| template<> | |
| v_uint32x8 | cv::v_setzero_ () |
| template<> | |
| v_int32x8 | cv::v_setzero_ () |
| template<> | |
| v_float32x8 | cv::v_setzero_ () |
| template<> | |
| v_float64x4 | cv::v_setzero_ () |
| template<> | |
| v_uint64x4 | cv::v_setzero_ () |
| template<> | |
| v_int64x4 | cv::v_setzero_ () |
| template<> | |
| v_uint8x64 | cv::v_setzero_ () |
| template<> | |
| v_int8x64 | cv::v_setzero_ () |
| template<> | |
| v_uint16x32 | cv::v_setzero_ () |
| template<> | |
| v_int16x32 | cv::v_setzero_ () |
| template<> | |
| v_uint32x16 | cv::v_setzero_ () |
| template<> | |
| v_int32x16 | cv::v_setzero_ () |
| template<> | |
| v_float32x16 | cv::v_setzero_ () |
| template<> | |
| v_float64x8 | cv::v_setzero_ () |
| template<> | |
| v_uint64x8 | cv::v_setzero_ () |
| template<> | |
| v_int64x8 | cv::v_setzero_ () |
| v_float32x4 | cv::v_setzero_f32 () |
| v_float64x2 | cv::v_setzero_f64 () |
| v_int16x8 | cv::v_setzero_s16 () |
| v_int32x4 | cv::v_setzero_s32 () |
| v_int64x2 | cv::v_setzero_s64 () |
| v_int8x16 | cv::v_setzero_s8 () |
| v_uint16x8 | cv::v_setzero_u16 () |
| v_uint32x4 | cv::v_setzero_u32 () |
| v_uint64x2 | cv::v_setzero_u64 () |
| v_uint8x16 | cv::v_setzero_u8 () |
初始化為指定值 | |
建立元素設定為特定值的新向量 | |
| v_float32x8 | cv::v256_setall_f32 (float val) |
| v_float64x4 | cv::v256_setall_f64 (double val) |
| v_int16x16 | cv::v256_setall_s16 (short val) |
| v_int32x8 | cv::v256_setall_s32 (int val) |
| v_int64x4 | cv::v256_setall_s64 (int64 val) |
| v_int8x32 | cv::v256_setall_s8 (schar val) |
| v_uint16x16 | cv::v256_setall_u16 (ushort val) |
| v_uint32x8 | cv::v256_setall_u32 (unsigned val) |
| v_uint64x4 | cv::v256_setall_u64 (uint64 val) |
| v_uint8x32 | cv::v256_setall_u8 (uchar val) |
| v_float32x16 | cv::v512_setall_f32 (float val) |
| v_float64x8 | cv::v512_setall_f64 (double val) |
| v_int16x32 | cv::v512_setall_s16 (short val) |
| v_int32x16 | cv::v512_setall_s32 (int val) |
| v_int64x8 | cv::v512_setall_s64 (int64 val) |
| v_int8x64 | cv::v512_setall_s8 (schar val) |
| v_uint16x32 | cv::v512_setall_u16 (ushort val) |
| v_uint32x16 | cv::v512_setall_u32 (unsigned val) |
| v_uint64x8 | cv::v512_setall_u64 (uint64 val) |
| v_uint8x64 | cv::v512_setall_u8 (uchar val) |
| template<> | |
| v_float64x2 | cv::v_setall_ (double val) |
| template<> | |
| v_float64x4 | cv::v_setall_ (double val) |
| template<> | |
| v_float64x8 | cv::v_setall_ (double val) |
| template<> | |
| v_float32x4 | cv::v_setall_ (float val) |
| template<> | |
| v_float32x8 | cv::v_setall_ (float val) |
| template<> | |
| v_float32x16 | cv::v_setall_ (float val) |
| template<> | |
| v_int32x4 | cv::v_setall_ (int val) |
| template<> | |
| v_int32x8 | cv::v_setall_ (int val) |
| template<> | |
| v_int32x16 | cv::v_setall_ (int val) |
| template<> | |
| v_int64x2 | cv::v_setall_ (int64 val) |
| template<> | |
| v_int64x4 | cv::v_setall_ (int64 val) |
| template<> | |
| v_int64x8 | cv::v_setall_ (int64 val) |
| template<> | |
| v_int8x16 | cv::v_setall_ (schar val) |
| template<> | |
| v_int8x32 | cv::v_setall_ (schar val) |
| template<> | |
| v_int8x64 | cv::v_setall_ (schar val) |
| template<> | |
| v_int16x8 | cv::v_setall_ (short val) |
| template<> | |
| v_int16x16 | cv::v_setall_ (short val) |
| template<> | |
| v_int16x32 | cv::v_setall_ (short val) |
| template<> | |
| v_uint8x16 | cv::v_setall_ (uchar val) |
| template<> | |
| v_uint8x32 | cv::v_setall_ (uchar val) |
| template<> | |
| v_uint8x64 | cv::v_setall_ (uchar val) |
| template<> | |
| v_uint64x2 | cv::v_setall_ (uint64 val) |
| template<> | |
| v_uint64x4 | cv::v_setall_ (uint64 val) |
| template<> | |
| v_uint64x8 | cv::v_setall_ (uint64 val) |
| template<> | |
| v_uint32x4 | cv::v_setall_ (unsigned val) |
| template<> | |
| v_uint32x8 | cv::v_setall_ (unsigned val) |
| template<> | |
| v_uint32x16 | cv::v_setall_ (unsigned val) |
| template<> | |
| v_uint16x8 | cv::v_setall_ (ushort val) |
| template<> | |
| v_uint16x16 | cv::v_setall_ (ushort val) |
| template<> | |
| v_uint16x32 | cv::v_setall_ (ushort val) |
| v_float32x4 | cv::v_setall_f32 (float val) |
| v_float64x2 | cv::v_setall_f64 (double val) |
| v_int16x8 | cv::v_setall_s16 (short val) |
| v_int32x4 | cv::v_setall_s32 (int val) |
| v_int64x2 | cv::v_setall_s64 (int64 val) |
| v_int8x16 | cv::v_setall_s8 (schar val) |
| v_uint16x8 | cv::v_setall_u16 (ushort val) |
| v_uint32x4 | cv::v_setall_u32 (unsigned val) |
| v_uint64x2 | cv::v_setall_u64 (uint64 val) |
| v_uint8x16 | cv::v_setall_u8 (uchar val) |
重新解釋 | |
在不修改底層資料的情況下,將向量轉換為不同的型別。 | |
| template<typename _Tp0 , int n0> | |
| v_reg< float, n0 *sizeof(_Tp0)/sizeof(float)> | cv::v_reinterpret_as_f32 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< double, n0 *sizeof(_Tp0)/sizeof(double)> | cv::v_reinterpret_as_f64 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< short, n0 *sizeof(_Tp0)/sizeof(short)> | cv::v_reinterpret_as_s16 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< int, n0 *sizeof(_Tp0)/sizeof(int)> | cv::v_reinterpret_as_s32 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< int64, n0 *sizeof(_Tp0)/sizeof(int64)> | cv::v_reinterpret_as_s64 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< schar, n0 *sizeof(_Tp0)/sizeof(schar)> | cv::v_reinterpret_as_s8 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< ushort, n0 *sizeof(_Tp0)/sizeof(ushort)> | cv::v_reinterpret_as_u16 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< unsigned, n0 *sizeof(_Tp0)/sizeof(unsigned)> | cv::v_reinterpret_as_u32 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< uint64, n0 *sizeof(_Tp0)/sizeof(uint64)> | cv::v_reinterpret_as_u64 (const v_reg< _Tp0, n0 > &a) |
| template<typename _Tp0 , int n0> | |
| v_reg< uchar, n0 *sizeof(_Tp0)/sizeof(uchar)> | cv::v_reinterpret_as_u8 (const v_reg< _Tp0, n0 > &a) |
左移 | |
左移 | |
| template<int shift, int n> | |
| v_reg< int, n > | cv::v_shl (const v_reg< int, n > &a) |
| template<int shift, int n> | |
| v_reg< int64, n > | cv::v_shl (const v_reg< int64, n > &a) |
| template<int shift, int n> | |
| v_reg< short, n > | cv::v_shl (const v_reg< short, n > &a) |
| template<int shift, int n> | |
| v_reg< uint64, n > | cv::v_shl (const v_reg< uint64, n > &a) |
| template<int shift, int n> | |
| v_reg< unsigned, n > | cv::v_shl (const v_reg< unsigned, n > &a) |
| template<int shift, int n> | |
| v_reg< ushort, n > | cv::v_shl (const v_reg< ushort, n > &a) |
右移 | |
右移 | |
| template<int shift, int n> | |
| v_reg< int, n > | cv::v_shr (const v_reg< int, n > &a) |
| template<int shift, int n> | |
| v_reg< int64, n > | cv::v_shr (const v_reg< int64, n > &a) |
| template<int shift, int n> | |
| v_reg< short, n > | cv::v_shr (const v_reg< short, n > &a) |
| template<int shift, int n> | |
| v_reg< uint64, n > | cv::v_shr (const v_reg< uint64, n > &a) |
| template<int shift, int n> | |
| v_reg< unsigned, n > | cv::v_shr (const v_reg< unsigned, n > &a) |
| template<int shift, int n> | |
| v_reg< ushort, n > | cv::v_shr (const v_reg< ushort, n > &a) |
舍入移位 | |
舍入右移 | |
| template<int shift, int n> | |
| v_reg< int, n > | cv::v_rshr (const v_reg< int, n > &a) |
| template<int shift, int n> | |
| v_reg< int64, n > | cv::v_rshr (const v_reg< int64, n > &a) |
| template<int shift, int n> | |
| v_reg< short, n > | cv::v_rshr (const v_reg< short, n > &a) |
| template<int shift, int n> | |
| v_reg< uint64, n > | cv::v_rshr (const v_reg< uint64, n > &a) |
| template<int shift, int n> | |
| v_reg< unsigned, n > | cv::v_rshr (const v_reg< unsigned, n > &a) |
| template<int shift, int n> | |
| v_reg< ushort, n > | cv::v_rshr (const v_reg< ushort, n > &a) |
打包 | |
將兩個向量的值打包成一個 返回向量型別具有比輸入向量型別多兩倍的元素。帶 *u* 字尾的變體也會轉換為相應的無符號型別。
| |
| template<int n> | |
| v_reg< short, 2 *n > | cv::v_pack (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int n> | |
| v_reg< int, 2 *n > | cv::v_pack (const v_reg< int64, n > &a, const v_reg< int64, n > &b) |
| template<int n> | |
| v_reg< schar, 2 *n > | cv::v_pack (const v_reg< short, n > &a, const v_reg< short, n > &b) |
| template<int n> | |
| v_reg< unsigned, 2 *n > | cv::v_pack (const v_reg< uint64, n > &a, const v_reg< uint64, n > &b) |
| template<int n> | |
| v_reg< ushort, 2 *n > | cv::v_pack (const v_reg< unsigned, n > &a, const v_reg< unsigned, n > &b) |
| template<int n> | |
| v_reg< uchar, 2 *n > | cv::v_pack (const v_reg< ushort, n > &a, const v_reg< ushort, n > &b) |
| template<int n> | |
| v_reg< ushort, 2 *n > | cv::v_pack_u (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int n> | |
| v_reg< uchar, 2 *n > | cv::v_pack_u (const v_reg< short, n > &a, const v_reg< short, n > &b) |
帶舍入移位的打包 | |
將兩個向量的值打包成一個,並帶舍入移位 輸入向量中的值將右移 *n* 位並進行四捨五入,轉換為較窄的型別,並返回到結果向量中。帶 *u* 字尾的變體轉換為無符號型別。
| |
| template<int shift, int n> | |
| v_reg< short, 2 *n > | cv::v_rshr_pack (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int shift, int n> | |
| v_reg< int, 2 *n > | cv::v_rshr_pack (const v_reg< int64, n > &a, const v_reg< int64, n > &b) |
| template<int shift, int n> | |
| v_reg< schar, 2 *n > | cv::v_rshr_pack (const v_reg< short, n > &a, const v_reg< short, n > &b) |
| template<int shift, int n> | |
| v_reg< unsigned, 2 *n > | cv::v_rshr_pack (const v_reg< uint64, n > &a, const v_reg< uint64, n > &b) |
| template<int shift, int n> | |
| v_reg< ushort, 2 *n > | cv::v_rshr_pack (const v_reg< unsigned, n > &a, const v_reg< unsigned, n > &b) |
| template<int shift, int n> | |
| v_reg< uchar, 2 *n > | cv::v_rshr_pack (const v_reg< ushort, n > &a, const v_reg< ushort, n > &b) |
| template<int shift, int n> | |
| v_reg< ushort, 2 *n > | cv::v_rshr_pack_u (const v_reg< int, n > &a, const v_reg< int, n > &b) |
| template<int shift, int n> | |
| v_reg< uchar, 2 *n > | cv::v_rshr_pack_u (const v_reg< short, n > &a, const v_reg< short, n > &b) |
打包並存儲 | |
將輸入向量的值打包並存儲到記憶體中 值將被轉換為較窄的型別並存儲到記憶體中。帶 *u* 字尾的變體轉換為相應的無符號型別。
| |
| template<int n> | |
| void | cv::v_pack_store (int *ptr, const v_reg< int64, n > &a) |
| template<int n> | |
| void | cv::v_pack_store (schar *ptr, const v_reg< short, n > &a) |
| template<int n> | |
| void | cv::v_pack_store (short *ptr, const v_reg< int, n > &a) |
| template<int n> | |
| void | cv::v_pack_store (uchar *ptr, const v_reg< ushort, n > &a) |
| template<int n> | |
| void | cv::v_pack_store (unsigned *ptr, const v_reg< uint64, n > &a) |
| template<int n> | |
| void | cv::v_pack_store (ushort *ptr, const v_reg< unsigned, n > &a) |
| template<int n> | |
| void | cv::v_pack_u_store (uchar *ptr, const v_reg< short, n > &a) |
| template<int n> | |
| void | cv::v_pack_u_store (ushort *ptr, const v_reg< int, n > &a) |
帶舍入移位的打包和儲存 | |
將輸入向量的值打包並存儲到記憶體中 值將右移 *n* 位並進行四捨五入,轉換為較窄的型別並存儲到記憶體中。帶 *u* 字尾的變體轉換為無符號型別。
| |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (int *ptr, const v_reg< int64, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (schar *ptr, const v_reg< short, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (short *ptr, const v_reg< int, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (uchar *ptr, const v_reg< ushort, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (unsigned *ptr, const v_reg< uint64, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_store (ushort *ptr, const v_reg< unsigned, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_u_store (uchar *ptr, const v_reg< short, n > &a) |
| template<int shift, int n> | |
| void | cv::v_rshr_pack_u_store (ushort *ptr, const v_reg< int, n > &a) |
打包布林值 | |
將多個向量中的布林值打包到一個無符號 8 位整數向量中
| |
| template<int n> | |
| v_reg< uchar, 8 *n > | cv::v_pack_b (const v_reg< uint64, n > &a, const v_reg< uint64, n > &b, const v_reg< uint64, n > &c, const v_reg< uint64, n > &d, const v_reg< uint64, n > &e, const v_reg< uint64, n > &f, const v_reg< uint64, n > &g, const v_reg< uint64, n > &h) |
| template<int n> | |
| v_reg< uchar, 4 *n > | cv::v_pack_b (const v_reg< unsigned, n > &a, const v_reg< unsigned, n > &b, const v_reg< unsigned, n > &c, const v_reg< unsigned, n > &d) |
| template<int n> | |
| v_reg< uchar, 2 *n > | cv::v_pack_b (const v_reg< ushort, n > &a, const v_reg< ushort, n > &b) |
| !適用於 16 位布林值 | |
變數 | |
| static const unsigned char | cv::popCountTable [] |