- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在图像上应用 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)
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'
.
是的,您应该检查您的图像是否存在并成功加载!
请注意,另一个不好的做法是:你的变量名canny
与您的函数名称相同canny()
.所以当你调用canny = canny(img)
, 函数 canny()
对象被变量 canny
替换.如果您调用canny()
下一次,它会像这样失败:TypeError: 'numpy.ndarray' object is not callable
.
然后使用不同的名称。
>>> 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/
我想将UMat转换为其他类型。 我已经尝试过使用UMat方法convertTo,但出现以下错误: AttributeError: 'cv2.UMat' object has no attribute
对于 cv::Mat 可以使用 ~ 来比较 cv::bitwise_not 或 > 2矩阵。 但是cv::UMat似乎没有这些运算符,可以理解你可以简单地做 cv::bitwise_not(umat,
我尝试使用 OpenCV Transparent API UMat我的桌面 Java 应用程序中的硬件加速类,但我找不到 UMat类实现。我正在使用 OpenCV version 4.1 , 其中 T
我在为作业编写的某些代码时遇到麻烦。 我认为mask = source[B-R].point(lambda i: i < -26)不能分配给函数cv2.dilate(mask, kernel,iter
我必须先将视频转换为灰度格式,然后转换为hsv,但出现此错误: Traceback (most recent call last): File "c:/Users/eycan/Desktop/se
我一直在使用 OpenCV 调整大量 (100k+) 图像 (16-24MP) 的大小。不知何故,使用 CPU 似乎总是快 30-50% 左右。当我运行 ryzen 1700x 和 1080ti 时,
我运行了下面的代码来检查 GPU 和 CPU 使用率之间的性能差异。我正在计算 cv::cvtColor() 函数的平均时间。我进行了四个函数调用: Just_mat()(不为 Mat 对象使用 Op
我正在尝试在图像上应用 canny 函数,这是完整的代码,但只有当我将步骤放在函数中时它才会显示错误,但在将所有代码留在任何函数之外时不会显示。代码: import cv2 import numpy
我试图找出图像中有多少像素具有不同图像的相同像素的颜色范围。我使用的两个图像都是 rgb。我想用这样的东西来做到这一点,但我坚持 获取参数的 Expected Ptr。 difference = cv
我正在使用 pyzbar 库来解码二维码。现在我正在尝试使用 uMat 来加快这个过程。问题是 pyzbar 解码不能接受 umat 变量。 File "C:\Python\lib\site-pack
我正在尝试将同态滤波器应用于我的视频播放器程序。 当我使用 UMat 编写代码时,我发现了一些与使用现有 Mat 的代码不兼容的地方。 在Mat代码中 cv::Mat temp; someImage.
我有列表,这个列表来自 dlib 检测器: dets = detector(frame, 0) dets = [list(rect_to_bb(dets[0]))] print(dets) [[277
我正在升级到 OpenCV 3 并使用 UMat T_API OpenCL 容器而不是 Mat。 似乎像 rectangle(Mat img, ...) 这样的绘图函数没有 UMat 重载。我想尽可能
Processed_image() 函数返回一个 cv2.Umat 类型的值,该值将从3 维(h, ch, w) 到 4 维(h, ch, w, 1) 所以 i 需要转换到 numpy 数组或者如果可
我正在使用pyautogui库拍摄屏幕截图,该屏幕截图存储为PIL.Image.Image。 当我尝试使用cv2的cvtColor()函数进行转换时,出现TypeError: TypeError: E
我一直在查看 simple opencl example 的源代码更好地理解如何编写 opencv 代码。 似乎kernel definition具有由 9 个参数组成的参数列表: "__kernel
我是 OpenCV 的新手。我在 visual studio 2013 和 opencv 3.1 中使用 c++ 。我想计算 Canny 边,这是我的代码: UMat getImage() {
我在 OpenGL 中渲染并获取纹理,我已将其绑定(bind)到 FrameBuffer、OpenCL cl_mem,在 OpenCL 中进行一些修改,然后将修改后的图像返回到 FrameBuffer
我已经安装了 CUDA。 我想使用 GPU 来加速 opencv。 哪些方法或对象可以加速? 我正在使用 opencv3 和 python3。 最佳答案 只需使用 Umats 而不是 mats,它就会
我已经阅读了文档,但没有得到关于 UMat 的清晰详细描述;但是我认为它与GPU和CPU有关。请帮帮我。谢谢。 最佳答案 也许本文档的第 3 部分会有所帮助:[链接现已断开] https://soft
我是一名优秀的程序员,十分优秀!