我很难用C++编写这行python代码:
Python:
frame_nn = cv2.cvtColor(padded, cv2.COLOR_BGR2RGB).transpose(2,0,1).astype(np.float32)[None,]
我已经得到的:
cv::cvtColor(image_pd, image_pd, cv::COLOR_BGR2RGB);
image_pd.convertTo(image_f, CV_32F);
如何在C++中转换三维最大/图像?基本上,image = numpy.transpose(image, (2, 0, 1))
在C++中的等效性是什么?
发布于 2022-06-01 16:01:25
若要从HWC转换为CHW通道命令,可以使用此命令(从blobFromImage())
窃取)。
int siz[] = {3, img.rows, img.cols};
Mat chw(3, siz, CV_8U);
vector<Mat> planes = {
Mat(img.rows, img.cols, CV_8U, img.ptr(0)), // swap 0 and 2 and you can avoid the bgr->rgb conversion !
Mat(img.rows, img.cols, CV_8U, img.ptr(1)),
Mat(img.rows, img.cols, CV_8U, img.ptr(2))
};
split(img, planes);
chw.convertTo(chw, CV_32F);
从4.6.0开始编辑,也可以使用transposeND()
Mat src=...
Mat dst;
transposeND(src, {2,0,1}, dst);
https://stackoverflow.com/questions/72462193
复制相似问题