opencv相关后端
速览
以下后端输入范围max()
均为1.
名称 | 初始化参数 | 输入[类型] | 输出[类型] | 备注 |
---|---|---|---|---|
DecodeMat | 无 | data[str/bytes] | result[cv::Mat] color[str] | |
cvtColorMat | color | data[cv::Mat] color[str] | result[cv::Mat] | |
ResizeMat | resize_h,resize_w | data[cv::Mat] | result[cv::Mat] | |
PillowResizeMat | resize_h,resize_w | data[cv::Mat] | result[cv::Mat] | CV_8UC3 |
ResizePadMat | max_h,max_w,pad_value | data[cv::Mat] | - result[cv::Mat] - inverse_trans [std::function<std::pair<float, float>(float x, float y)>] | CV_8UC3 |
Mat2Tensor | device=cpu,gpu | data[cv::Mat] | result[at::Tensor] | Mat2CpuTensor Mat2GpuTensor |
SaveMat | save_dir | data[cv::Mat] | result[cv::Mat] | |
AlignMat | align,resize_h,max_w | data[cv::Mat] | result[cv::Mat],resize_h[int],resize_w[int] | max()=UINT32_MAX |
DynamicResizeMat | data[cv::Mat],resize_h,resize_w[int] | result[cv::Mat] | ||
PerspectiveTransformMat | data[cv::Mat],TASK_BOX_KEY | result[cv::Mat] |
DecodeMat
- 调用opencv,以
IMREAD_COLOR
模式将图片解码为cv::Mat
. 此时输出图片会被转化为3通道BGR
图片. - 如果解码出的图片为空,则输出无
result
键值; color
固定的为 "bgr".
cvtColorMat
- 初始化时的
color
为目标颜色空间;输入中读取的color
为数据的颜色空间;两者不同时,将进行颜色空间转换, 否则,返回输入值; - color 目前支持“rgb” 和 “bgr”
- 进行颜色空间转换时,输入的数据需要为三通道数据,否则将抛出异常。
ResizeMat
- 调用opencv默认的插值方式进行resize操作;
- resize_h 和 resize_w 需要为整数,有效范围为[1, 1024 * 1024]
PillowResizeMat
- 输入的
cv::Mat
类型需要是CV_8UC3 - resize_h 和 resize_w 需要为整数,有效范围为[1, 1024 * 1024]
- 严格保持和pillow的双线性插值结果一致(在大量数据上进行了验证)
ResizePadMat
- 保持长宽比resize, 左上角对齐以常数pad_value进行pad.
- 输入的
cv::Mat
类型需要是CV_8UC3 - max_h 和 max_w 需要为整数,有效范围为[1, 1024 * 1024]
- pad_value 支持整数。
- inverse_trans: 用于将新坐标映射到原始坐标.
Mat2Tensor
- 将
cv::Mat
转为at::Tensor
,保持数据类型不变 - 输出形状1chw
- 数据进行深拷贝
- 类似于SyncTensor, 会同步当前流
警告
请插入流管理操作:
Sequential[Mat2Tensor,SyncTensor]
或者SyncTensor[Mat2Tensor]
,
否则Mat2Tensor
将使用默认cuda流。
Mat2CpuTensor
- 将
cv::Mat
转为at::Tensor(cpu)
,保持数据类型不变 - 输出形状1chw
- 数据进行深拷贝
Mat2GpuTensor
- 将
cv::Mat
转为at::Tensor(gpu)
,保持数据类型不变 - 输出形状1chw
SaveMat
- save_dir:文件保存目录,需要提前创建;
- 文件名后缀是
.png
,名称唯一
AlignMat
计算输入图片在以下条件限制下的目标长宽:
- 基本保持长宽比
- 目标高度固定为resize_h
- 目标宽度不大于max_w
- 长宽对齐于align
初始化
参数
- resize_h - 目标长度。
- max_w - 最大宽度。
- align - default=32, 目标长和宽需要是此参数的倍数。
前向
参数
- data - 输入数据,需要是
cv::Mat
类型。 - result - 输出,result=data。
- resize_h - 输出,目标高度
- resize_w 输出,目标宽度
min()/max()
[1,UINT32_MAX]
DynamicResizeMat
根据前向输入数据提供的resize_h
与resize_w
,对目标图像进行resize操作。
PerspectiveTransformMat
执行透视变换
前向
参数
- data - 输入数据,需要是
cv::Mat
类型。 - TASK_BOX_KEY - 原坐标,类型是
std::vector<std::vector<int>>
,外部和内部长度分别是4,2,代表四个点,每个点的坐标两个值。顺序为[左上角,右上角,右下角,左下角]。 - result - 输出。