首页 > 解决方案 > np.flatten() 返回全零?

问题描述

我有一个 RGB 图像,我想将其转换为灰度,并将图像展平为矢量。所以我写了以下代码:

import cv2
import numpy as np

path="F:\TestProject\DatasetFINAL\Subject01\A_01_+10.Jpg"
img=cv2.imread(path)
imgGray=cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
flatImg=imgGray.flatten()

但是当我写作时,print(flatImg)我得到: [0 0 0 ... 0 0 0] 我错过了什么吗?我也用过ravel(),但我仍然遇到同样的问题。这应该很简单。请帮忙。

编辑 :

这是图像: 这是图像

我之前没有包含它的原因是,当我打印imgGray这些值时,这些值并非全为零。

标签: pythonnumpyopencv

解决方案


您的代码完全正常工作。尝试检查图像的路径是否正确。此外,您可以在灰度模式下读取图像,而不是将 RGB 图像转换为灰度图像:

import cv2
import numpy as np
path="F:\TestProject\DatasetFINAL\Subject01\A_01_+10.Jpg"
imgGray=cv2.imread(path,cv2.IMREAD_GRAYSCALE)
flatImg=imgGray.flatten()

print(flatImg)

推荐阅读