我收到了错误
TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
我的代码如下
import os
import cv2
import random
from pathlib import Path
path = Path(__file__).parent
path = "../img_folder"
for f in path.iterdir():
print(f)
f = str(f)
img=cv2.imread(f)
line = random.randint(0, 50)
img[3, 3, :] = line
cv2.imwrite(path + "/" + "photo.png", img)
Traceback说cv2.imwrite~
的代码是错误的。我真的不明白为什么这是错的。这种类型的路径错误吗?或者我错了使用这种方法?我该如何解决这个问题?
答案 0 :(得分:0)
如果您查看类型错误,实际上是因为您尝试在+
类型和PosixPath
上使用str
运算符。在使用PosixPath
之前,您需要将imwrite
转换为字符串。
也许试试:
cv2.imwrite(str(path) + "/" + "photo.png", img)
或者,使用pathlib docs中描述的正确连接。
答案 1 :(得分:0)
You cannot using operan +
in PosixPath
, but using /
# before
cv2.imwrite(path + "/" + "photo.png", img)
# after
cv2.imwrite(path / "photo.png", img)
答案 2 :(得分:0)
首先将PosixPath对象(path
)转换为字符串:
str(path) + "/" + "photo.png"
答案 3 :(得分:0)
这对我有用:
cv2.imwrite(str(path) + "/" + "photo.png", img)