网站搭建平台选哪个,个人在湖北建设厅网站申请强制注销,搬瓦工可以长期做网站,开发定制软件系统记录一个Mat赋值报错问题#xff1a; 通常算法对软件的接口没有Mat类型#xff0c;需要传unsigned char*标定Mat的data#xff0c;宽度和高度三个信息#xff1a; 例如#xff0c;下面的接口定义了两张图像#xff0c;用于相机对图像处理后的返回结果#xff0c;接口信息…记录一个Mat赋值报错问题 通常算法对软件的接口没有Mat类型需要传unsigned char*标定Mat的data宽度和高度三个信息 例如下面的接口定义了两张图像用于相机对图像处理后的返回结果接口信息如下
//输入
struct OUTPUT_DATA {unsigned char *left_img_data;int left_img_width;int left_img_height;int left_img_channels;unsigned char *right_img_data;int right_img_width;int right_img_height;int right_img_channels;};OUTPUT_DATA 内部表示了两张图的信息也就是两个Mat的信息容易出错的是对unsigned char *的值赋值 主要步骤 1为结构体指针分配空间,表示一个结构体信息
OUTPUT_DATA *outnew OUTPUT_DATA ();
out-left_img_data new unsigned char[2048 * 2448 * 3];
out-right_img_data new unsigned char[2048 * 2448 * 3];
2当Mat的信息已经包含图像的时候 例如
Mat img1 imread(1.jpg);
Mat img2 imread(2.jpg);此时img1和img2包含了两张图的信息传递到外部式容易出差
错误赋值
out-left_img_data img1.data;
out-right_img_data img2.data;正确赋值
memcpy(out-left_img_data, img1.data,img1.cols * img1.rows * img1.channels());
//out-left_img_data img1.data;
out-left_img_width img1.cols;
out-left_img_height img1.rows;
out-left_img_channels img1.channels();
memcpy(out-right_img_data, img2.data,img2.cols * img2.rows * img2.channels());//out-left_img_data img1.data;
out-right_img_width img2.cols;
out-right_img_height img2.rows;
out-right_img_channels img2.channels();