- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Emacs 的 python shell 中使用 OpenCV 的 cv2.Canny() 函数时遇到了一个非常奇怪的问题。当我运行 cv2.Canny(img, thresh1, thresh2)
时,我收到错误消息
OpenCV Error: Assertion failed (depth == CV_8U) in cv::Canny, file D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp, line 845 Traceback (most recent call last): File "", line 1, in File "../myscript.py", line 34, in lines = cv2.HoughLines(edges,1,np.pi/180,200) cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp:845: error: (-215) depth == CV_8U in function cv::Canny
我的电脑连D盘都没有,为什么源代码有这个问题?它应该已经被编译了..
我没有观察到 python-opencv 中的任何其他函数会导致此问题。我也尝试安装不同的版本,对于这个特定的函数调用,同样的错误,但是行号不同,因为 canny.cpp
文件是不同的版本。
但是,当我在 System Python Shell 中运行同一行时,一切都很好......
我的系统环境:
windows7 64bit
python 3.5
python-opencv: 3.1, or 3.2
emacs 25.1.1
最佳答案
问题是您的图片(或其中一张图片)不是 8 位格式(8 位格式意味着三个 channel 中的每一个都在 [0,255]
中)。
您可以通过添加以下内容来更改它:
img = img.astype(np.uint8)
在调用 cv2.Canny
之前。
关于运行 cv2.Canny() 时 Emacs 中的 python opencv 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403551/
我有一个脚本,该脚本用于根据颜色相似性为房间的墙壁重新着色。但是我需要根据边缘检测为墙壁重新着色。 import cv2 import numpy as np import sys from PIL
我想尝试 Canny 边缘检测器,但是当我尝试开始时收到未处理的异常: canny_project.exe 中 0x00007FF97F6C8B9C 处未处理的异常:Microsoft C++ 异常:
我想从二进制 canny 边缘图像中提取轮廓。 原图为: 应用 cvCanny() 和 cvDilate() 后,我得到以下图像: 我需要将封闭框(整个蓝色框)检测为轮廓。我应用 cvFindCont
我在 OpenCV Java 中使用 Canny 边缘算法找出了边缘。我需要从这张图片中提取脊髓。 能否请您建议下一步如何仅从此图像中提取脊髓? 这是原始图像: 最佳答案 要从图像中提取特定对象,您必
我正在使用 canny 边缘检测器来检测输入图像的边缘。 在每个输入图像中,可以有两个对象(主对象和其中的另一个对象),如示例图像所示。因此,我应该在这种情况下检测两条边 我根据输入图像自动确定阈值上
我使用 OpenCV 的时间相当短,对图像执行了 Canny 边缘检测,然后还执行了膨胀以进一步将对象(在我的例子中是正方形)与背景分开。 我现在的问题是使用一种算法来识别 2D 中的可抓取区域,该算
我有一张图片,我想检测它的边缘。我发现 Canny 已经被使用了很多(我不知道我是否有比这更好的选择)。我已将值设置如下: Imgproc.Canny(img, img, 10, 100, 3,t
我正在尝试寻找图像的轮廓,在此之前我正在应用 Canny 的边缘检测器。它为不同的图像提供不同的结果。对于一张图像,它在阈值下给出完美的轮廓 - min-40 max-240,而对于其他图像,它的阈值
当我使用 canny edge 算法时,它会按预期产生与粗彩色线相对的 2 条边,但我只想显示一条边,以使我的直线和曲线检测算法更简单,关于我怎样才能做到这一点? 代码如下: bool CannyEd
当使用 Imagemagick 转换工具的 -canny 选项时,这些参数指的是什么? -canny radiusxsigma{+lower-percent}{+upper-percent} 文档 (
我正在尝试创建一个程序,该程序将检测并去除图片中的边框,目标是检测图片中的文档并将其清理... 这是我的代码: import sys import cv2 import numpy as np imp
我知道在使用 Canny 检测边缘之前对图像应用高斯模糊非常重要。我的问题是: cv2.Canny() 自己做高斯模糊还是有必要在 cv2.Canny() 之前应用 cv2.GaussianBlur(
当我在图纸上运行 cv.Canny 边缘检测器时,它会检测到数百个密集填充在阴影区域中的小边缘。我怎样才能让它停止这样做,同时仍然检测到眼睛和 Nose 等较轻的特征?我也试过模糊。 这是一个示例,与
我正在尝试在此图像上运行精明边缘检测器: 使用此代码: def edges(img): from skimage import feature img = Image.open(img
我尝试过 OpenCV 中的 cvFindContours 函数,以在 Canny-edge-decctting 后获取单独的边缘。 我的问题是如何自己做与 cvFindcontours 相同的事情。
假设 Canny 边缘检测器成功检测到图像中的边缘。然后将边缘旋转 θ,其中原始边缘上的点 (x,y)(x,y) 与旋转边缘上的点 (x′,y) 之间的关系′)(x′,y′)定义为x′ = xcosθ
我想从 canny edge map 中找到并标记端点。 我试图通过只与一个邻居查看点来自己做,但此时的结果很奇怪。 OpenCV 中有查找端点的函数吗? 来自原始 Canny 的样本: 放大示例:
我正在尝试使用 Canny 过滤器检测图像的边缘。我已经能够检测到图像,但角落不是很尖锐(以红色圆圈突出显示)。令人惊讶的是,与其他角相比,第一个角很锋利并且没有烧坏。为什么会发生这种情况以及如何避免
我有 Canny 检测到的边缘。我想提取边缘的轮廓。 我已经检查了以下帖子。 OpenCV converting Canny edges to contours . 但它没有处理复杂的形状。例如,带矩
是否可以制作Canny忽略短边还是忽略低梯度边?在我的例子中,我将卡片放在木头上,并在 canny 之后看到木结构的许多边缘 canny 函数中的两个阈值有什么用? 最佳答案 Large intens
我是一名优秀的程序员,十分优秀!