#define ENABLE_DVPP_INTERFACE
#include "acl/acl.h"
#include "AclLiteResource.h"
#include "AclLiteImageProc.h"
#include "AclLiteUtils.h"
#include "AclLiteError.h"
using namespace std;
int main(int argc, char *argv[])
{
AclLiteError ret;
aclrtRunMode runMode_;
AclLiteResource resource;
ret = resource.Init();
if (ret)
{
ACLLITE_LOG_ERROR("Resource inited failed, error code: %d", ret);
return ret;
}
ret = aclrtGetRunMode(&runMode_);
if (ret) {
ACLLITE_LOG_ERROR("acl get run mode failed");
return ret;
}
AclLiteImageProc imgProc;
ret = imgProc.Init();
if (ret)
{
ACLLITE_LOG_ERROR("ImageProc inited failed, error code: %d", ret);
return ret;
}
ImageData image;
ret = ReadJpeg(image, "/root/load_pre_model/416bf.jpg");
if (ret)
{
ACLLITE_LOG_ERROR("Read jpg image failed, error code: %d", ret);
return ret;
}
ImageData deviceImage;
void* buffer = CopyDataToDevice(image.data.get(), image.size, runMode_, MEMORY_DEVICE);
if (buffer == nullptr)
{
ACLLITE_LOG_ERROR("Copy jpg image to device failed, error code: %d", ret);
return ret;
}
deviceImage.width = 1920;
deviceImage.height = 1080;
deviceImage.size = image.size;
deviceImage.data.reset((uint8_t*)buffer, [](uint8_t* p) { aclrtFree((void *)p); });
ImageData yuvImage;
ret = imgProc.JpegD(yuvImage, deviceImage);
if (ret)
{
ACLLITE_LOG_ERROR("Convert jpg image to yuv image failed, error code: %d", ret);
return ret;
}
imgProc.DestroyResource();
resource.Release();
return 0;
}
程序输出:
[INFO] Acl init ok
[INFO] Open device 0 ok
[INFO] Use default context currently
[INFO] dvpp init resource ok
[ERROR] Sync stream failed, error: 507018
[ERROR] Convert jpg image to yuv image failed, error code: 506
[INFO] destroy context ok
[INFO] Reset device 0 ok
[INFO] Finalize acl ok
我参考了Ascend Sample下的gesturedetection样例,写了一个JpegD的小程序,但是运行过程中一直报错,请问我该怎么办?
项目代码:
#define ENABLE_DVPP_INTERFACE #include "acl/acl.h" #include "AclLiteResource.h" #include "AclLiteImageProc.h" #include "AclLiteUtils.h" #include "AclLiteError.h" using namespace std; int main(int argc, char *argv[]) { AclLiteError ret; aclrtRunMode runMode_; AclLiteResource resource; ret = resource.Init(); if (ret) { ACLLITE_LOG_ERROR("Resource inited failed, error code: %d", ret); return ret; } ret = aclrtGetRunMode(&runMode_); if (ret) { ACLLITE_LOG_ERROR("acl get run mode failed"); return ret; } AclLiteImageProc imgProc; ret = imgProc.Init(); if (ret) { ACLLITE_LOG_ERROR("ImageProc inited failed, error code: %d", ret); return ret; } ImageData image; ret = ReadJpeg(image, "/root/load_pre_model/416bf.jpg"); if (ret) { ACLLITE_LOG_ERROR("Read jpg image failed, error code: %d", ret); return ret; } ImageData deviceImage; void* buffer = CopyDataToDevice(image.data.get(), image.size, runMode_, MEMORY_DEVICE); if (buffer == nullptr) { ACLLITE_LOG_ERROR("Copy jpg image to device failed, error code: %d", ret); return ret; } deviceImage.width = 1920; deviceImage.height = 1080; deviceImage.size = image.size; deviceImage.data.reset((uint8_t*)buffer, [](uint8_t* p) { aclrtFree((void *)p); }); ImageData yuvImage; ret = imgProc.JpegD(yuvImage, deviceImage); if (ret) { ACLLITE_LOG_ERROR("Convert jpg image to yuv image failed, error code: %d", ret); return ret; } imgProc.DestroyResource(); resource.Release(); return 0; }程序输出: