Python 无法将正确形状的像素转换为图像,从cv代码转换为cv2代码

Python 无法将正确形状的像素转换为图像,从cv代码转换为cv2代码,python,c++,opencv,Python,C++,Opencv,最近,我试图为我的工作做一些图像处理。 不幸的是,我一直试图用CV2支持将我的旧C++代码应用到带有Pvthon代码的CV支持中。 它不能很好地工作。。。有人能帮我吗 原始C++代码: #define IMAGE_WIDE 40 #define IMAGE_LENGTH 30 #define CHANNELS 3 DNN_image_out = cvCreateImage(cvSize(IMAGE_WIDE, IMAGE_LENGTH), IPL_DEPTH_8U, 3); fo

最近,我试图为我的工作做一些图像处理。 不幸的是,我一直试图用CV2支持将我的旧C++代码应用到带有Pvthon代码的CV支持中。 它不能很好地工作。。。有人能帮我吗

原始C++代码:

#define IMAGE_WIDE  40
#define IMAGE_LENGTH    30
#define CHANNELS    3

DNN_image_out = cvCreateImage(cvSize(IMAGE_WIDE, IMAGE_LENGTH), IPL_DEPTH_8U, 3);
for(int k = 0; k < IMAGE_LENGTH; k++){  //縦
        for(int l = 0; l < IMAGE_WIDE; l++){    //横
            DNN_image_out[i]->imageData[(k * IMAGE_WIDE + l)*3 +0] = DNN_image_tmp[(k * IMAGE_WIDE + l)*3 + 0 ];
            DNN_image_out[i]->imageData[(k * IMAGE_WIDE + l)*3 +1] = DNN_image_tmp[(k * IMAGE_WIDE + l)*3 + 1 ];
            DNN_image_out[i]->imageData[(k * IMAGE_WIDE + l)*3 +2] = DNN_image_tmp[(k * IMAGE_WIDE + l)*3 + 2 ];
        }
    }

我的逻辑错了吗?或者我应该在python代码中更改什么?

您可以简单地使用
cv2.split
,而不需要自定义函数,也不需要
重塑

B,G,R = cv2.split(img)
然后最终使用:

Color_img  = cv2.merge((B,G,R))
请记住,在OpenCV中,通道默认为B、G、R,而不是R、G、B

Color_img  = cv2.merge((B,G,R))