Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:SKPCA平均值转换为opencv2 RGB图像_Python_Opencv_Scikit Learn_Pca - Fatal编程技术网

Python:SKPCA平均值转换为opencv2 RGB图像

Python:SKPCA平均值转换为opencv2 RGB图像,python,opencv,scikit-learn,pca,Python,Opencv,Scikit Learn,Pca,我正在尝试将PCA平均值转换为RGB,但我得到了错误:cv2.error:/build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/color.cpp:3642:error:(-215)depth==CV|8U||depth==cvu 16U||depth==CV 32F函数cvtColor此错误是由行mean=cv2.cvtColor引起的 我的代码: def featureExtract(self, images, dim, k = 4):

我正在尝试将PCA平均值转换为RGB,但我得到了错误:
cv2.error:/build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/color.cpp:3642:error:(-215)depth==CV|8U||depth==cvu 16U||depth==CV 32F函数cvtColor
此错误是由行
mean=cv2.cvtColor引起的

我的代码:

def featureExtract(self, images, dim, k = 4):
    faces_rowvecs = []
    nDim = None
    for image in images:
        image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)
        nDim = image.shape 
        faces_rowvecs.append(image.flatten("C").copy())
    faceData = np.vstack(faces_rowvecs)
    pca = PCA(n_components=k)
    pca.fit(faceData)

    mean = pca.mean_
    mean = mean.reshape(nDim[0],nDim[1], nDim[2])
    mean = cv2.normalize(mean, dim, norm_type=cv2.NORM_MINMAX)
    mean= cv2.cvtColor(mean, cv2.COLOR_RGB2BGR)

您的
均值
矩阵不是
uint8
uint16
类型,也不是
float32
。试着使用类似这样的方法:
mean=cv2.normalize(mean,dim,norm\u type=cv2.norm\u MINMAX,dtype=uint8)
然后调用
cvtColor
这很有效,但如果我想
cv2.imshow('image',mean)
则图像是黑色的。当我在
cv2.imshow('image',mean)
之前执行
cv2.cvtColor(mean,cv2.COLOR_RGB2BGR)
时,我看到了正确的图像。