TypeError:应为str、bytes或os.PathLike对象,而不是numpy.ndarray

2024-05-15 03:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试这个代码

from PIL import Image

import numpy as np

from lsd import *

import cv2

im = cv2.imread('/home/lenovo/Downloads/python-lsd-master/test_data/chairs.pgm')

#fullName = '1.jpg'

folder, imgName = os.path.split(im)

src = cv2.imread(im, cv2.IMREAD_COLOR)

gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)

lines =lsd.__module__

#path1=os.path.normpath('/home/lenovo/pylsd/example/751626ntl.txt')

for i in range(lines.shape[0]):

    pt1 = (int(lines[i, 0]), int(lines[i, 1]))

    pt2 = (int(lines[i, 2]), int(lines[i, 3]))

    width = lines[i, 4]

    cv2.line(src, pt1, pt2, (0, 0, 255), int(np.ceil(width / 2)))

cv2.imwrite(os.path.join(folder, 'cv2_' + imgName.split('.')[0] + '.jpg'), src)

ValueError: TypeError: expected str, bytes or os.PathLike object, not numpy.ndarray

你能帮忙吗


Tags: pathfromimportsrcnumpyhomeosnp
1条回答
网友
1楼 · 发布于 2024-05-15 03:53:30

您首先在此处阅读图像:

im = cv2.imread('/home/lenovo/Downloads/python-lsd-master/test_data/chairs.pgm')

但是,您再次读取图像,但由于某种原因,这里没有提供函数期望的路径,而是提供了表示上一步加载的图像的数组:

src = cv2.imread(im, cv2.IMREAD_COLOR)

我相信这会导致错误。不知道你为什么要读两遍图像

相关问题 更多 >

    热门问题