3D数组作为cv :: mat和numpy

时间:2018-04-18 20:31:57

标签: python numpy opencv c++11

当我使用cv :: Mat是否与np.array((3,2,3))相同?

cv::Mat mat_32f_C3(mat.rows, mat.cols, CV_32FC3);
mat_32f_C3.at<cv::Vec3f>(0,0) = cv::Vec3f(1,1,1); 
mat_32f_C3.at<cv::Vec3f>(0,1) = cv::Vec3f(2,2,2);
mat_32f_C3.at<cv::Vec3f>(1,0) = cv::Vec3f(3,3,3);
mat_32f_C3.at<cv::Vec3f>(1,1) = cv::Vec3f(4,4,4);
mat_32f_C3.at<cv::Vec3f>(2,0) = cv::Vec3f(5,5,5);
mat_32f_C3.at<cv::Vec3f>(2,1) = cv::Vec3f(6,6,6);

我不确定cv::Vec3f是否在彩色图像中表示RGB。

在python中我会写

broadcast = np.zeros((3,2,3))
i1 = np.arange(1, 7, 1).reshape((3,2))
result = i1 + broadcast

output array([[[[1., 2.],
         [3., 4.],
         [5., 6.]],
        [[1., 2.],
         [3., 4.],
         [5., 6.]],
        [[1., 2.],
         [3., 4.],
         [5., 6.]]]])

这些例子是否相同?

0 个答案:

没有答案