转载请标明处:
作者:微微苏荷
近日,用QT和mxnet结合做一个图像识别的demo。遇到需要把图片从QImage转为vector单色分离的格式的要求,用来识别时输入。
经实践,找到3种方法,分享给大家:
需要注意的是,QImage的存储顺序是 BGRA(opencv也是这样反着的),不是正常口述RGBA.
另:mx_float == float
一.
int image_size = width * height * channels; //图像的宽/高/通道数(除去了A通道)
std::vector<mx_float> image_data = std::vector<mx_float>(image_size);
mx_float* ptr_image_r = image_data.data();
const uchar* pData= image.constBits(); // 获取图像原始数据
mx_float* ptr_image_g = image_data.data() + image_size / 3;
mx_float* ptr_image_b = image_data.data() + image_size / 3 *