TypeError:内置操作的错误参数类型

use*_*674 12 python opencv

我收到错误TypeError:内置操作的错误参数类型.我写

import os
import cv2
from pathlib import Path
path = Path(__file__).parent
path /= "../../img_folder"
for f in path.iterdir():
    print(f)
    img=cv2.imread(f)
Run Code Online (Sandbox Code Playgroud)

在img = cv2.imread(f)中,错误发生.这是一个Python错误或目录错误吗?在print(f)中,我认为可以获得正确的目录.我该如何解决这个问题?

nit*_*red 14

看起来像path.iterdir()返回类型的对象<class 'pathlib.PosixPath'>而不是str.并cv2.imread()接受字符串文件名.

所以这解决了它:

import os
import cv2
from pathlib import Path
path = Path(__file__).parent
path /= "../../img_folder"
for f in path.iterdir():
    print(f)    # <--- type: <class 'pathlib.PosixPath'>
    f = str(f)  # <--- convert to string
    img=cv2.imread(f)
Run Code Online (Sandbox Code Playgroud)