OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项

详细描述

枚举

枚举  cv::cann::InterpolationFlags {
  cv::cann::INTER_NEAREST = 0 ,
  cv::cann::INTER_LINEAR = 1 ,
  cv::cann::INTER_CUBIC = 2 ,
  cv::cann::INTER_AREA = 3 ,
  cv::cann::INTER_MAX = 7
}
 插值算法 更多...
 

函数

void cv::cann::copyMakeBorder (const AscendMat &src, AscendMat &dst, int top, int bottom, int left, int right, int borderType, const Scalar &value=Scalar())
 
void cv::cann::copyMakeBorder (const InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar &value=Scalar())
 在输入图像的副本周围形成一个指定边框类型的边框并填充它。
 
AscendMat cv::cann::crop (const AscendMat &src, const Rect &rect, AscendStream &stream=AscendStream::Null())
 
AscendMat cv::cann::crop (InputArray src, const Rect &rect, AscendStream &stream=AscendStream::Null())
 裁剪一个二维数组。该函数根据给定的 cv::Rect 裁剪矩阵。输出矩阵的深度必须与输入矩阵相同,大小由给定的矩形大小指定。
 
void cv::cann::cropResize (const AscendMat &src, AscendMat &dst, const Rect &rect, Size dsize, double fx, double fy, int interpolation)
 
void cv::cann::cropResize (const InputArray src, OutputArray dst, const Rect &rect, Size dsize, double fx, double fy, int interpolation)
 从大图像中裁剪子图像,并将其调整到特定大小。
 
void cv::cann::cropResizeMakeBorder (const AscendMat &src, AscendMat &dst, const Rect &rect, Size dsize, double fx, double fy, int interpolation, int top, int left, const int borderType, Scalar value=Scalar())
 
void cv::cann::cropResizeMakeBorder (const InputArray src, OutputArray dst, const Rect &rect, Size dsize, double fx, double fy, int interpolation, int top, int left, const int borderType, Scalar value=Scalar())
 从大图像中裁剪子图像,将其调整到特定大小,并形成顶部/左侧边框,然后用指定的边框类型填充。
 
void cv::cann::flip (const AscendMat &src, AscendMat &dst, int flipCode, AscendStream &stream=AscendStream::Null())
 
void cv::cann::flip (InputArray src, OutputArray dst, int flipCode, AscendStream &stream=AscendStream::Null())
 围绕垂直、水平或两个轴翻转二维矩阵。
 
void cv::cann::merge (const AscendMat *src, size_t n, AscendMat &dst, AscendStream &stream=AscendStream::Null())
 将多个单通道矩阵合并为一个多通道矩阵。
 
void cv::cann::merge (const AscendMat *src, size_t n, OutputArray &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::merge (const std::vector< AscendMat > &src, AscendMat &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::merge (const std::vector< AscendMat > &src, OutputArray &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::resize (const AscendMat &src, AscendMat &dst, Size dsize, double fx, double fy, int interpolation, AscendStream &stream=AscendStream::Null())
 
void cv::cann::resize (InputArray src, OutputArray dst, Size dsize, double fx, double fy, int interpolation, AscendStream &stream=AscendStream::Null())
 将图像 src 调整到指定大小。
 
void cv::cann::rotate (const AscendMat &src, AscendMat &dst, int rotateMode, AscendStream &stream=AscendStream::Null())
 
void cv::cann::rotate (InputArray src, OutputArray dst, int rotateCode, AscendStream &stream=AscendStream::Null())
 以90度为倍数旋转二维数组。函数 cv::rotate 以三种不同的方式旋转数组:顺时针旋转90度 (rotateCode = ROTATE_90_CLOCKWISE)。顺时针旋转180度 (rotateCode = ROTATE_180)。顺时针旋转270度 (rotateCode = ROTATE_90_COUNTERCLOCKWISE)。
 
void cv::cann::split (const AscendMat &src, AscendMat *dst, AscendStream &stream=AscendStream::Null())
 将多通道矩阵的每个平面复制到一个数组中。
 
void cv::cann::split (const AscendMat &src, std::vector< AscendMat > &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::split (const InputArray src, AscendMat *dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::split (const InputArray src, std::vector< AscendMat > &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::transpose (const AscendMat &src, AscendMat &dst, AscendStream &stream=AscendStream::Null())
 
void cv::cann::transpose (InputArray src, OutputArray dst, AscendStream &stream=AscendStream::Null())
 转置矩阵。
 

枚举类型文档

◆ 插值标志

#include <opencv2/cann_interface.hpp>

插值算法

枚举器
INTER_NEAREST 

最近邻插值

INTER_LINEAR 

双线性插值

INTER_CUBIC 

双三次插值

INTER_AREA 

使用像素区域关系进行重采样。对于图像缩减(decimation),它可能是一种首选方法,因为它能产生无摩尔纹的结果。但当图像放大时,它与 INTER_NEAREST 方法相似。

INTER_MAX 

插值代码掩码

函数文档

◆ copyMakeBorder() [1/2]

void cv::cann::copyMakeBorder ( const AscendMat & src,
AscendMat & dst,
int top,
int bottom,
int ,
int ,
int borderType,
const Scalar & value = Scalar() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ copyMakeBorder() [2/2]

void cv::cann::copyMakeBorder ( const InputArray src,
OutputArray dst,
int top,
int bottom,
int ,
int ,
int borderType,
const Scalar & value = Scalar() )

#include <opencv2/cann_interface.hpp>

在输入图像的副本周围形成一个指定边框类型的边框并填充它。

参数
src源图像。
dst与 src 类型相同、大小为 Size(src.cols+left+right, src.rows+top+bottom) 的目标图像。
top顶部填充的像素数
bottom底部填充的像素数
左侧填充的像素数
右侧填充的像素数。参数,指定从源图像矩形向每个方向外推的像素数。例如,top=1, bottom=1, left=1, right=1 意味着需要构建1像素宽的边框。
borderType边框类型。仅支持 cv::BorderTypes::BORDER_CONSTANTcv::BorderTypes::BORDER_REPLICATE
如果 borderType==BORDER_CONSTANT,则为边框的 BGR 或 YUV 值。
注意
输入图像必须为 uint8 类型,且仅支持灰度图和 BGR 图像。输入和输出图像的分辨率必须在 [10*6, 4096*4096] 范围内。
仅支持以下设备:Atlas 推理系列产品、Atlas 200/500 A2 推理产品以及 Atlas A2 训练系列产品/Atlas 300I A2 推理产品。
另请参见
cv::copyMakeBorder, cv::borderInterpolate

◆ crop() [1/2]

AscendMat cv::cann::crop ( const AscendMat & src,
const Rect & rect,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ crop() [2/2]

AscendMat cv::cann::crop ( InputArray src,
const Rect & rect,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

裁剪一个二维数组。该函数根据给定的 cv::Rect 裁剪矩阵。输出矩阵的深度必须与输入矩阵相同,大小由给定的矩形大小指定。

参数
src输入数组。
rect用于裁剪数组的矩形
AscendStream 用于异步版本。
另请参见
cv::gapi::crop

◆ cropResize() [1/2]

void cv::cann::cropResize ( const AscendMat & src,
AscendMat & dst,
const Rect & rect,
Size dsize,
double fx,
double fy,
int interpolation )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ cropResize() [2/2]

void cv::cann::cropResize ( const InputArray src,
OutputArray dst,
const Rect & rect,
Size dsize,
double fx,
double fy,
int interpolation )

#include <opencv2/cann_interface.hpp>

从大图像中裁剪子图像,并将其调整到特定大小。

参数
src输入数组。
dst输出数组。其大小为 dsize(非零时)或由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
rect用于裁剪数组的矩形
dsize输出图像大小;如果为零,则按 cv::resize 的方式计算。
fx水平轴上的缩放因子;当其为 0 时,按如下方式计算

\[(𝚍𝚘𝚞𝚋𝚕𝚎)𝚍𝚜𝚒𝚣𝚎.𝚠𝚒𝚍𝚝𝚑/𝚜𝚛𝚌.𝚌𝚘𝚕𝚜\]

fy垂直轴上的缩放因子;当其为 0 时,按如下方式计算

\[(𝚍𝚘𝚞𝚋𝚕𝚎)𝚍𝚜𝚒𝚣𝚎.𝚑𝚎𝚒𝚐𝚑𝚝/𝚜𝚛𝚌.𝚛𝚘𝚠𝚜\]

interpolation插值方法,此处仅支持 INTER_NEAREST 和 INTER_LINEAR。(参见 cv.cann.InterpolationFlags
注意
输入图像必须为 uint8 类型,且仅支持灰度图和 BGR 图像。输入和输出图像的分辨率必须在 [10*6, 4096*4096] 范围内。
仅支持以下设备:Atlas 推理系列产品、Atlas 200/500 A2 推理产品以及 Atlas A2 训练系列产品/Atlas 300I A2 推理产品。
另请参见
cv::gapi::crop, cv::resize, cv::cann::resize

◆ cropResizeMakeBorder() [1/2]

void cv::cann::cropResizeMakeBorder ( const AscendMat & src,
AscendMat & dst,
const Rect & rect,
Size dsize,
double fx,
double fy,
int interpolation,
int top,
int ,
const int borderType,
Scalar value = Scalar() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ cropResizeMakeBorder() [2/2]

void cv::cann::cropResizeMakeBorder ( const InputArray src,
OutputArray dst,
const Rect & rect,
Size dsize,
double fx,
double fy,
int interpolation,
int top,
int ,
const int borderType,
Scalar value = Scalar() )

#include <opencv2/cann_interface.hpp>

从大图像中裁剪子图像,将其调整到特定大小,并形成顶部/左侧边框,然后用指定的边框类型填充。

参数
src输入数组。
dst输出数组;其大小为 Size(dsize.height + top, dsize.width + left)。
rect用于裁剪数组的矩形
dsize调整大小后的尺寸;
fx水平轴上的缩放因子;
fy垂直轴上的缩放因子;
interpolation插值方法,仅支持 INTER_NEAREST 和 INTER_LINEAR。(参见 cv.cann.InterpolationFlags
borderType边框外推方法,仅支持 cv::BorderTypes::BORDER_CONSTANTcv::BorderTypes::BORDER_REPLICATE
如果 borderType==BORDER_CONSTANT,则为边框的 BGR 或 YUV 值。
top顶部填充的像素数
左侧填充的像素数
注意
输入图像必须为 uint8 类型,且仅支持灰度图和 BGR 图像。输入和输出图像的分辨率必须在 [10*6, 4096*4096] 范围内。
仅支持以下设备:Atlas 推理系列产品、Atlas 200/500 A2 推理产品以及 Atlas A2 训练系列产品/Atlas 300I A2 推理产品。
另请参见
cv::gapi::crop, cv::resize, cv::cann::resize, cv::BorderTypes

◆ flip() [1/2]

void cv::cann::flip ( const AscendMat & src,
AscendMat & dst,
int flipCode,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ flip() [2/2]

void cv::cann::flip ( InputArray src,
OutputArray dst,
int flipCode,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

围绕垂直、水平或两个轴翻转二维矩阵。

参数
src源矩阵。
dst目标矩阵。
flipCode源的翻转模式
  • 0 绕 x 轴翻转。
  • > 0 绕 y 轴翻转。
  • < 0 绕两个轴翻转。
AscendStream 用于异步版本。
注意
src 必须是以下类型之一:float16,float,int64,int32,int16,uint16
另请参见
cv::flip cv::cuda::flip

◆ merge() [1/4]

void cv::cann::merge ( const AscendMat * src,
size_t n,
AscendMat & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

将多个单通道矩阵合并为一个多通道矩阵。

参数
src源矩阵的数组/向量。
n源矩阵的数量。
dst目标矩阵。
AscendStream 用于异步版本。
注意
src 必须是以下类型之一:float16, float32, double, int32, int16, int8, int64, uint8, uint16, uint32, uint64。
另请参见
cv::merge cv::cuda::merge

◆ merge() [2/4]

void cv::cann::merge ( const AscendMat * src,
size_t n,
OutputArray & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ merge() [3/4]

void cv::cann::merge ( const std::vector< AscendMat > & src,
AscendMat & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ merge() [4/4]

void cv::cann::merge ( const std::vector< AscendMat > & src,
OutputArray & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ resize() [1/2]

void cv::cann::resize ( const AscendMat & src,
AscendMat & dst,
Size dsize,
double fx,
double fy,
int interpolation,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ resize() [2/2]

void cv::cann::resize ( InputArray src,
OutputArray dst,
Size dsize,
double fx,
double fy,
int interpolation,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

将图像 src 调整到指定大小。

参数
src输入图像
dst输出图像;其大小为 dsize(非零时)或由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
dsize输出图像大小;如果它等于零,则计算为

\[𝚍𝚜𝚒𝚣𝚎 = 𝚂𝚒𝚣𝚎(𝚛𝚘𝚞𝚗𝚍(𝚏𝚡*𝚜𝚛𝚌.𝚌𝚘𝚕𝚜), 𝚛𝚘𝚞𝚗𝚍(𝚏𝚢*𝚜𝚛𝚌.𝚛𝚘𝚠𝚜))\]

dsize 或 fx 和 fy 必须都非零。
fx水平轴上的缩放因子;当其为 0 时,按如下方式计算

\[(𝚍𝚘𝚞𝚋𝚕𝚎)𝚍𝚜𝚒𝚣𝚎.𝚠𝚒𝚍𝚝𝚑/𝚜𝚛𝚌.𝚌𝚘𝚕𝚜\]

fy垂直轴上的缩放因子;当其为 0 时,按如下方式计算

\[(𝚍𝚘𝚞𝚋𝚕𝚎)𝚍𝚜𝚒𝚣𝚎.𝚑𝚎𝚒𝚐𝚑𝚝/𝚜𝚛𝚌.𝚛𝚘𝚠𝚜\]

interpolation插值方法(参见 cv.cann.InterpolationFlags
AscendStream 用于异步版本。
注意
输入数据类型有一些限制:使用最近邻或双线性插值进行重采样时:输入图像必须为 uint8 类型,且仅支持灰度图和 BGR 图像。输入和输出图像的分辨率必须在 [10*6, 4096*4096] 范围内。双三次插值:输入图像可以是不同类型,输出图像必须是 float 或 uint8 类型。像素区域插值:输入图像可以是不同类型,但输出图像始终是 float 类型。
使用最近邻或双线性插值进行重采样时,仅支持以下设备:Atlas 推理系列产品、Atlas 200/500 A2 推理产品以及 Atlas A2 训练系列产品/Atlas 300I A2 推理产品
另请参见
cv::resize

◆ rotate() [1/2]

void cv::cann::rotate ( const AscendMat & src,
AscendMat & dst,
int rotateMode,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ rotate() [2/2]

void cv::cann::rotate ( InputArray src,
OutputArray dst,
int rotateCode,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

以90度为倍数旋转二维数组。函数 cv::rotate 以三种不同的方式旋转数组:顺时针旋转90度 (rotateCode = ROTATE_90_CLOCKWISE)。顺时针旋转180度 (rotateCode = ROTATE_180)。顺时针旋转270度 (rotateCode = ROTATE_90_COUNTERCLOCKWISE)。

参数
src输入数组。
dst与 src 类型相同的输出数组。对于 ROTATE_180,大小不变;对于 ROTATE_90_CLOCKWISE 和 ROTATE_90_COUNTERCLOCKWISE,行和列会互换。
rotateCode一个枚举,用于指定如何旋转数组;参见枚举 RotateFlags
AscendStream 用于异步版本。
注意
src 必须是以下类型之一:float16,float,int64,int32,int16,uint16
另请参见
cv::rotate

◆ split() [1/4]

void cv::cann::split ( const AscendMat & src,
AscendMat * dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

将多通道矩阵的每个平面复制到一个数组中。

参数
src源矩阵。
dst单通道矩阵的目标数组/向量。
AscendStream 用于异步版本。
注意
src 必须是以下类型之一:float16, float32, double, int64, int32, uint8, uint16, uint32, uint64, int8, int16, bool
另请参见
cv::split cv::cuda::split

◆ split() [2/4]

void cv::cann::split ( const AscendMat & src,
std::vector< AscendMat > & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ split() [3/4]

void cv::cann::split ( const InputArray src,
AscendMat * dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ split() [4/4]

void cv::cann::split ( const InputArray src,
std::vector< AscendMat > & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ transpose() [1/2]

void cv::cann::transpose ( const AscendMat & src,
AscendMat & dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

这是一个重载的成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数不同。

◆ transpose() [2/2]

void cv::cann::transpose ( InputArray src,
OutputArray dst,
AscendStream & stream = AscendStream::Null() )

#include <opencv2/cann_interface.hpp>

转置矩阵。

参数
src源矩阵。
dst目标矩阵。
AscendStream 用于异步版本。
注意
src 必须是以下类型之一:float16,float,int8,int16,int32,int64,uint8,uint16,uint32,uint64,bool
另请参见
cv::transpose cv::cuda::transpose