#include "ImgUtils.h" #include "../dvpp/VpcUtils.h" ImgUtils::ImgUtils(/* args */) { } ImgUtils::~ImgUtils() { } DeviceMemory* ImgUtils::resize(DeviceMemory* memPtr, int out_width, int out_height) { DvppDataMemory* dvppMemPtr = dynamic_cast(memPtr); VpcUtils* pUtiles = VpcUtils::getInstance(dvppMemPtr->getDeviceId_i()); // 初始化工具类 if (pUtiles) { return pUtiles->resize(dvppMemPtr, out_width, out_height); } return nullptr; } DeviceMemory* ImgUtils::crop(DeviceMemory* memPtr, AreaInfo& area_info) { DvppDataMemory* dvppMemPtr = dynamic_cast(memPtr); VpcUtils* pUtiles = VpcUtils::getInstance(dvppMemPtr->getDeviceId_i()); // 初始化工具类 if (pUtiles) { return pUtiles->crop(dvppMemPtr, area_info); } return nullptr; } vector< DeviceMemory* > ImgUtils::crop_batch(DeviceMemory* memPtr, vector& vec_area_info) { vector< DeviceMemory* > vec_mem; DvppDataMemory* dvppMemPtr = dynamic_cast(memPtr); VpcUtils* pUtiles = VpcUtils::getInstance(dvppMemPtr->getDeviceId_i()); // 初始化工具类 if (pUtiles) { std::vector vec_dvpp_mem = pUtiles->crop_batch(dvppMemPtr, vec_area_info); for (size_t i = 0; i < vec_dvpp_mem.size(); i++) { vec_mem.push_back(vec_dvpp_mem[i]); } } return vec_mem; }