gpt4 book ai didi

python - 参数 'src' 的预期 cv::UMat

转载 作者:行者123 更新时间:2023-12-02 17:31:47 25 4
gpt4 key购买 nike

我正在尝试在图像上应用 canny 函数,这是完整的代码,但只有当我将步骤放在函数中时它才会显示错误,但在将所有代码留在任何函数之外时不会显示。代码:

import cv2
import numpy as np

def canny(image):
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
canny = cv2.Canny(blur, 50, 150) #sick
return canny

sourceimage = cv2.imread('lane.jpg')
img = np.copy(sourceimage)
canny = canny(img)
cv2.imshow("result", canny)
cv2.waitKey(0)

这是我得到的错误:(python 3.6.8)
kream@KRIMZON:~/Desktop/finding-lanes-linux$ python3 lane.py
Traceback (most recent call last):
File "lane.py", line 12, in <module>
cannyer = canny(img)
File "lane.py", line 5, in canny
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
TypeError: Expected cv::UMat for argument 'src'
kream@KRIMZON:~/Desktop/finding-lanes-linux$

最佳答案

当我只运行代码时,它也会提示 Expected cv::UMat for argument 'src' . 因为没有lane.jpg在我的电脑中,所以 cv2.imread返回 NoneType , 和 np.copy返回 np.array(None, dtype=object) . 如果你只是将这样一个变量传递给 cv2,它会报错 Expected cv::UMat for argument 'xxx' .
enter image description here
是的,您应该检查您的图像是否存在并成功加载!

请注意,另一个不好的做法是:你的变量名canny与您的函数名称相同canny() .所以当你调用canny = canny(img) , 函数 canny()对象被变量 canny 替换.如果您调用canny()下一次,它会像这样失败:TypeError: 'numpy.ndarray' object is not callable .
enter image description here
然后使用不同的名称。

>>> src = cv2.imread("noexist.png")
>>> img = np.copy(src)
>>>
>>> type(src)
<class 'NoneType'>
>>> cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cv2.error: OpenCV(4.0.1) d:\build\opencv\opencv-4.0.1\modules\imgproc\src\color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

>>>
>>> img
array(None, dtype=object)
>>> cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Expected cv::UMat for argument 'src'
>>>
>>> img()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'numpy.ndarray' object is not callable

关于python - 参数 'src' 的预期 cv::UMat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55191842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com