Python 我试图使用OpenCV在窗口中的相对路径中显示图像,但遇到类型错误

Python 我试图使用OpenCV在窗口中的相对路径中显示图像,但遇到类型错误,python,numpy,opencv,cv2,os.path,Python,Numpy,Opencv,Cv2,Os.path,显然,错误消息是一个类型错误,但当我打印它时,输出是“None” 我查找了一个错误,因为它不是Numpy数组,所以我将其转换为Numpy数组 此外,我还尝试使用相对或绝对路径来读取变量 Img_Folder=os.path.join(os.getcwd(),'Photo','GMD Miss') File\u List=os.listdir(Img\u文件夹) img=img\u文件夹+文件列表[0] img=np.数组(img) img=cv2.imread(img) cv2.imshow(“

显然,错误消息是一个类型错误,但当我打印它时,输出是“None

我查找了一个错误,因为它不是Numpy数组,所以我将其转换为Numpy数组

此外,我还尝试使用相对或绝对路径来读取变量

Img_Folder=os.path.join(os.getcwd(),'Photo','GMD Miss')
File\u List=os.listdir(Img\u文件夹)
img=img\u文件夹+文件列表[0]
img=np.数组(img)
img=cv2.imread(img)
cv2.imshow(“img”,img)
cv2.等待键(0)
cv2.destroyAllWindows()
因此,我得到了这个错误消息

TypeError:参数“mat”应为cv::UMat


您的代码有许多问题。主要的一个(问题是关于)来自以下行:
img=np.array(img)
。您正在从文件路径(没有意义,)构建np数组,然后将其传递给imread

你应该:

  • 检查:
    • 对于您使用的其他函数
  • 当您有疑问或出现问题时,请打印代码中的任何变量。这将为您节省大量时间,也将使您能够自己解决许多问题
  • 从代码中删除前面提到的行
示例

导入操作系统 >>>进口cv2 >>> >>>img\u file\u name=os.path.join(os.getcwd(),“.\\..\\c”,“2160-0.jpg”) >>>img_file_name#确保路径包含所有路径分隔符(在您的情况下不会出现这种情况,因为最后一个分隔符丢失,原因是:`img=img_Folder+file_List[0]`) 'C:\\WINDOWS\\system32\\\\\C\\2160-0.jpg' >>> >>>img=cv2.imread(img\u文件名) >>>类型(img),img.shape (, (316, 647, 3)) >>> >>>cv2.imshow(“图像”,img) >>>cv2.waitKey(0)#大写K >>> >>>cv2.destroyAllWindows() >>>