- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在检测图像中的循环
这是我的代码:
import cv2
import cv2.cv as cv
import numpy as np
img = cv2.imread('a1.png',0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img,cv.CV_HOUGH_GRADIENT,1,80,
param1=50,param2=20,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
当它在图像中找不到任何圆圈时会发生什么?我认为它会将 null 或 none 返回给圆圈。但是我发现了错误
OpenCV 错误:cvGetMat 中的错误标志(参数或结构字段)(无法识别或不支持的数组类型),文件/build/opencv-U1UwfN/opencv-2.4.9.1+dfsg1/modules/core/src/array.cpp,第 2482 行
而且我想让检测一直运行。所以我像这样使用 try catch:
try:
circles = cv2.HoughCircles(img,cv.CV_HOUGH_GRADIENT,1,80,
param1=50,param2=20,minRadius=0,maxRadius=0)
except :
print("no cars!")
exit()
else:
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
但是还是不行。我已经测试了是否有可以检测到的循环。它有效。
那么,如何调整参数来寻找环路呢?我已经为图像尝试了很多参数。而且我想继续检测程序何时运行。里面用try catch好不好?或者我应该用别的东西
最佳答案
我发现了错误。这些是文件名中的一些空格。
如果没有找到循环,它将返回:
追溯(最近的调用最后): 文件“circle.py”,第 11 行,位于 圆圈 = np.uint16(np.around(圆圈)) 文件“/home/pi/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py”,第 2789 行,在 return _wrapfunc(a, 'round', decimals=decimals, out=out) 文件“/home/pi/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py”,第 67 行,在 _wrapfunc 返回 _wrapit(obj,方法,*args,**kwds) 文件“/home/pi/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py”,第 47 行,在 _wrapit 结果 = getattr(asarray(obj), 方法)(*args, **kwds)AttributeError: 'NoneType' 对象没有属性 'rint'
并且可以使用try catch让检测继续进行
关于python - cv2.HoughCircles 找不到循环时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48179663/
目录 1. 效果图 2. 源码 参考 这篇博客将学习如何使用霍夫圆变换在图像中找到圆圈,OpenCV使用cv2.HoughCircles()实现霍夫圆变
我正在尝试使用 android-opencv 2.3.1 来识别图像中的圆圈(硬币)。然而,执行方法 Imgproc.cvtColor 时发生错误(org.opencv.cvException)。 F
有没有一种方法可以使圆检测无参数? - 为什么 cv2.HoughCircles() 中的参数在更改后有时不会受到影响?我有一个 for 循环来改变参数,但它不会一直影响结果。 Hough Circl
通过将图像转换为灰度然后对其进行模糊处理来处理图像后,我尝试使用这些参数应用霍夫圆变换: CV_HOUGH_GRADIENT dp = 1 最小距离 = 1 参数_1 = 70 参数_2 = 100
我正在使用 Xcode 和 C++ 我已经从 OpenCV documentation 中复制了 HoughCircles 代码: #include #include #include usin
我试图在我的图像中检测包含圆点的圆圈,但不幸的是我无法这样做。我正在使用 opencv HoughTransform,但找不到使它起作用的参数。 src = imread("encoded.jpg",
我试图使用 OpenCV HoughCircles 函数,但我得到了这个错误。 这是我的代码: rows = image.shape[0] circles = cv2.HoughCircles(out
我正在使用 float32 类型的 128 x 128 数组。这些数组是从二进制文件中提取的,我试图在每个数组中定位磁盘。 当我尝试使用 HoughCircles 示例代码时: img = Image
我正在编写一个脚本来自动检测一组照片上的一些圆圈。我可能已经阅读了有关 HoughCircles on Stack 的所有问题,推荐的方法通常似乎是蛮力半径间隔和累加器阈值(即 param2)。半径循
我试图在图像中定位一些彩色球,为了减少误报的风险,我首先根据当前正在搜索的球的颜色将图像缩小为二值图像。 OpenCV 的 HoughCircles 无法在二值图像中找到任何圆圈, 同时在转换为灰度的
我正在检测图像中的循环 这是我的代码: import cv2 import cv2.cv as cv import numpy as np img = cv2.imread('a1.png',0) i
我使用 OpenCV 帮助我检测从 iPhone 相机拍摄的图像中的硬币。我正在使用 HoughCircles 方法帮助我找到它们,但结果并不乐观。 cv::Mat greyMat; cv::
我刚刚在 opencv 上学习了一个关于圆圈检测的例子 http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_circle/hough
我无法在图像上绘制圆圈。你能检查一下吗?问题出在绘制圆圈时,我无法检索在图像上找到的圆圈的半径和中心。提前致谢。 代码:(Python) import cv,cv2 import numpy as n
我在 Anaconda Navigator 上使用“OpenCV 版本:3.4.0”和 Python 3.6 以及 Spyder IDE (Spyder 3.2.4)。 当我使用这些参数调用 Houg
我正在实现一个函数来检测图像中的圆圈。我正在使用 Java 的 OpenCV 来识别圆圈。灰度图像确实显示了一个圆圈。 这是我的代码: Mat gray = new Mat(); Imgproc.cv
我需要进行快速准确的圆检测,所以我认为使用 OpenCV 的 Hough Circle 是一个不错的选择。不幸的是,无论我给它的图像有多好以及我调整了多少参数,它都拒绝检测图像中的所有圆圈。这是我的输
我正在尝试使用 OpenCV,更具体地说是它的 HoughCircles 来检测和测量瞳孔和虹膜,目前我一直在使用函数中的一些变量,因为它要么返回 0 个圆圈,要么返回过多的圆圈.下面是我正在使用的代
我想使用 OpenCV 和 C++ 检测图像中的圆圈。我可以通过引用 official documentation 来做到这一点调整OpenCV Team编写的那段代码的参数。 所以,我正在使用的代码
我有一个包含 5 个油滴的视频,我正在尝试使用 cv2.HoughCircles 来找到它们。 这是我的代码: import cv, cv2 import numpy as np foreground
我是一名优秀的程序员,十分优秀!