【发布时间】:2015-08-22 18:15:44
【问题描述】:
我在opencv中加载深度图像
cv::Mat depth = cv::imread("blabla.png",CV_LOAD_IMAGE_UNCHANGED);
然后获取它的子图像
cv::Mat sub_image= depth(cv::Rect( roi_x,roi_y,roi_size,roi_size)).clone();
现在我想将该 sub_image 转换为矢量
我试试
std::vector<uchar> array;
array.assign(sub_image.datastart,sub_image.dataend);
在 StackOverflow 中找到了一个类似的问题,但它似乎无法正常工作。
赋值后数组的大小不是roi_size * roi_size, 而是 roi_size*roi_size*2
向量的类型有问题吗?我还尝试了其他各种类型,例如 double、float、int 等
深度图的类型是unsigned short吧??
编辑:
当我标准化深度图像时,数组正确填充(正确的大小 roi_size*roi_size)
cv::Mat depthView;
cv::normalize(depth, depthView, 0, 255, cv::NORM_MINMAX,CV_8UC1);
但这不是我想做的事
【问题讨论】:
-
已经试过了,没用