- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,
我正在尝试通过将OpenCV与Python一起构建模拟量规读取器。我使用了Hough Circles来减少编码。代码转载如下:
import cv2
import numpy as np
img = cv2.imread('gauge.jpg', 0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
height,width = img.shape
mask = np.zeros((height,width), np.uint8)
counter = 0
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,1,20,
param1=200,param2=100,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)
# Draw on mask
cv2.circle(mask,(i[0],i[1]),i[2],(255,255,255),-1)
masked_data = cv2.bitwise_and(cimg, cimg, mask=mask)
# Apply Threshold
_,thresh = cv2.threshold(mask,1,255,cv2.THRESH_BINARY)
# Find Contour
cnt = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[0]
#print len(contours)
x,y,w,h = cv2.boundingRect(cnt[0])
# Crop masked_data
crop = masked_data[y:y+h,x:x+w]
# Write Files
cv2.imwrite("output/crop"+str(counter)+".jpg", crop)
counter +=1
print counter
cv2.imshow('detected circles',cimg)
cv2.imwrite("output/circled_img.jpg", cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
最佳答案
在我看来,您在这里加类。在这条线
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,1,20, param1=200,param2=100,minRadius=0,maxRadius=0)
for c in circles[0, :]:
c = c.astype(int)
# get the actual cropped images here
crop = img_copy[c[1]-c[2]:c[1]+c[2], c[0]-c[2]:c[0]+c[2]]
# create a mask and add each circle in it
mask = np.zeros(crop.shape)
mask = cv2.circle(mask, (c[2], c[2]), c[2], (255, 255, 255), -1)
final_im = mask * crop
img = cv2.imread('/home/gorfanidis/misc/gauge2.jpg', 0)
img_copy = img.copy() # <- add this to have a copy of your original image
None
)或没有得到零结果(中心和半径为
0
),则可以检查以下两种情况:
if circles is not None: # checks that something actually was returned
for c in circles[0, :]:
c = c.astype(int)
if not c[2]: # just checks that radius is not zero to proceed
continue
...
关于python - OpenCV Crop Hough Circles Python无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036169/
我在 MATLAB 中找到了 Hough 变换的实现,地址是 Rosetta Code ,但我无法理解它。我还想修改它以显示原始图像和重建的线条(去霍夫)。 感谢任何有助于理解它和消除霍夫的帮助。谢谢
我在Hough Line转换方面遇到麻烦。我正在尝试确定厨房中的主要线条。我最初只是使用Canny,但它会拾取比我想要的更多的噪音,并且没有拾取墙壁和天花板的交集。但是,“霍夫线”变换仅识别一条根本不
我目前在HoughCircles上使用computer-vision,但无法使其正常工作。 如何解决此错误? Error : 'Traceback (most recent call last):
我正在尝试检测斯诺克 table 上的 22 个球。我有一张图像要测试,但程序 os 检测 2 个球,以及其他地方的随机圆圈。我的代码在圆检测算法下面。有谁知道应该调整哪些参数以获得我需要的检测?谢谢
OpenCV 中的 HoughLines 或 HoughLinesP 函数是否像 HoughCircles 函数那样返回累加器顺序的行列表?我想知道行的顺序。获取线条的累加器值也非常方便,因此可以使用
我想使用OpenCV Hough Circles的实现,但是我有一个问题: 该函数返回的圈子已经通过投票排序了吗? 由于霍夫变换基于投票机制,因此我想知道此圈子是按投票顺序从最高投票到最低投票,还是随
我正在尝试对实时视频源运行霍夫线变换。首先,提要通过一个精明的边缘检测器,它可以完美地工作并输出,然后我通过霍夫线变换运行图像,它导致“windows 触发了 openCv.exe 中的断点。”如果您
我有如下图片: 我正在尝试通过 HoughCircles 函数检测圆圈。在检测之前,我对图像进行阈值处理,并通过高斯技术对其进行模糊处理。结果如下: 倒置图像更大,因为我碰巧发现,如果我不以相同的纵横
我想找到下图中的圆圈。我尝试使用 OpenCV 的 Hough circle detection但它没有给出正确的结果。 还有其他方法可以找到圈子吗? 这里是示例代码 vector circles;
我正在尝试用我的函数重新创建 MATLAB 的 hough 函数。我的代码如下 function [H,T,R] = my_hough(x,dr,dtheta) rows = size(x,1
我正在尝试使用霍夫变换来检测圆圈。 使用我当前的代码,我可以检测到下面的代码 但我想在我检测到的圆圈内找到黑洞。然而,改变 houghcircle 方法的参数对我没有帮助。实际上它发现了不存在的圈子。
霍夫变换(Hough Transform)的主要思想: 一条直线在平面直角坐标系(x-y)中可以用y=ax+b式表示,对于直线上一个确定的点(x0,y0),总符合y0-ax0=b,而它可以表
我正在尝试从网络摄像头获取视频流,并使用HoughCircles()检测其中的圈子。但是,无论何时我尝试运行代码,视频都会花费一些时间来加载图像,或者根本不会加载图像。我们将非常感谢您提供有关如何获取
我正在编写代码以从图像中裁剪收据。我正在使用“opencv4nodejs”模块在javascript中开发解决方案,但我已经习惯了Python和C++。 我见过不同的方法,例如 this ,但如果检测
我目前正在与 Hough Circles 合作。有什么方法可以自动为霍夫圆找到合适的参数吗?现在,我只是手动更改值,直到它正确绘制圆圈。 最佳答案 我认为您还应该看看 http://www.cse.y
当我运行 cv2.HoughCircles() 时出现错误 Traceback (most recent call last): File "cv.py", line 1, in imp
我使用 HoughLinesP 来识别线条。但是,我的问题是我怎么知道什么时候没有检测到线。我尝试将矢量线与 null 进行比较,但没有任何反应。准确地说,这是我的代码: for(size_t k=0
我是 opencv 的新手。我想检测图像中非常小的线条并将它们存储为线条数组。我的图像中不会有超过 10 条线(对齐标记)。我已经使用 opencv 示例教程使用 canny 和 Hough 检测线条
我正在尝试使用 OpenCV 的 Hough Circles 函数从下图中检测圆 我的代码(OpenCV 和 Python) myImage = cv2.imread("C:\\sample.jpg"
我正在尝试实现 this paper 中介绍的广义 Hough 变换在 MATLAB 中。我也试过使用 this document理解算法。我一直在研究如何计算梯度角以找到要在 R 表中使用的 Φ。
我是一名优秀的程序员,十分优秀!