- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是Python和OpenCV的新手。我正在尝试使用HoughLinesP函数从互联网上的代码检测单行,检测到3-4行。我尝试使用maxLineGap变量,但没有帮助。
输入图片:
输出图像:
import sys
import math
import cv2 as cv
import numpy as np
def main(argv):
default_file = "line.png"
filename = argv[0] if len(argv) > 0 else default_file
# Loads an image
src = cv.imread(filename, cv.IMREAD_GRAYSCALE)
# Check if image is loaded fine
if src is None:
print ('Error opening image!')
print ('Usage: hough_lines.py [image_name -- default ' + default_file + '] \n')
return -1
dst = cv.Canny(src, 50, 200, None, 3)
# Copy edges to the images that will display the results in BGR
cdst = cv.cvtColor(dst, cv.COLOR_GRAY2BGR)
cdstP = np.copy(cdst)
lines = cv.HoughLines(dst, 1, np.pi / 180, 150, None, 0, 0)
if lines is not None:
for i in range(0, len(lines)):
rho = lines[i][0][0]
theta = lines[i][0][1]
a = math.cos(theta)
b = math.sin(theta)
x0 = a * rho
y0 = b * rho
pt1 = (int(x0 + 1000*(-b)), int(y0 + 1000*(a)))
pt2 = (int(x0 - 1000*(-b)), int(y0 - 1000*(a)))
cv.line(cdst, pt1, pt2, (0,0,255), 3, cv.LINE_AA)
linesP = cv.HoughLinesP(dst, 1, np.pi / 180, 50, None, 50, 150)
no_of_Lines = 0
if linesP is not None:
for i in range(0, len(linesP)):
l = linesP[i][0]
no_of_Lines = no_of_Lines + 1
cv.line(cdstP, (l[0], l[1]), (l[2], l[3]), (0,0,255), 3, cv.LINE_AA)
print('Number of lines:' + str(no_of_Lines))
cv.imshow("Source", src)
cv.imshow("Detected Lines (in red) - Standard Hough Line Transform", cdst)
cv.imshow("Detected Lines (in red) - Probabilistic Line Transform", cdstP)
cv.waitKey()
return 0
if __name__ == "__main__":
main(sys.argv[1:])
最佳答案
您的Canny边缘检测器的输出有多条线。结果,函数cv.HoughLines()
返回多行。您需要对图像进行骨架化处理,以便将所有行合并为一个。
这是我所做的
由于这是简单的图像,因此我对Canny边缘输出执行了一些形态学操作。膨胀后侵 eclipse 。如果您注意到下面的代码,则我使用了更大的内核大小来执行侵 eclipse 操作,以便获得一条细线。
补充代码:
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (3, 3))
dilation = cv.dilate(dst, kernel, iterations = 1)
kernel1 = cv.getStructuringElement(cv.MORPH_ELLIPSE, (5, 5))
erosion = cv.erode(dilation, kernel1, iterations = 1)
Number of lines:1
关于opencv - HoughLinesP openCV函数中的多行检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49993616/
我正在尝试使用 OpenCV 进行一些图像处理。诚然,我是这个东西的菜鸟,但我觉得我的大脑有点绕着它。我使用蒙版来检测图像的较亮区域,然后运行精明检测器,最后运行 HoughLinesP 检测。代码如
我是Python和OpenCV的新手。我正在尝试使用HoughLinesP函数从互联网上的代码检测单行,检测到3-4行。我尝试使用maxLineGap变量,但没有帮助。 输入图片: 输出图像: imp
我正在使用 HoughLinesP opencv 函数进行边缘检测。我想使用轨迹栏来估计此函数参数的良好值。我有以下代码: def compute_edgelets(image): gray =
当在 OpenCV 中使用 HoughLinesP 函数时,是否可以对单独的线条进行分析(即可以“标记”帧中检测到的所有线条以供将来引用)。 我通过调整 canny 边缘检测器将检测到的线数减少到尽可
我正在开发一个使用 OMR(光学标记识别)来读取气泡表的应用程序,我正在使用 OpenCV API,但我在使用 HoughLinesP 时遇到了一些问题,当我使用它时会返回一个空图像给我。我使用And
我正在尝试对图像应用概率霍夫变换,但出现此编译器错误: invalid initialization of reference of type ‘cv::InputArray {aka const c
我尝试使用 OpenCV 和 C++ 从输入视频中检测街道的线条。我正在使用 HoughLinesP 并且我只想检测分隔街道的线,例如水平线或垂直线。 使用 HoughLinesP(dst, line
我用VS 15在OpenCV中实现了Houghlinesp,代码如下- #include "stdafx.h" #include "opencv2/highgui/highgui.hpp" #incl
考虑图像中的三个点 A、B、C。 下面是它们在尺寸为 300x300 的图像中的坐标。 我正在尝试使用以下 HoughLinesP 代码检测并绘制一条连接这三个点的线。 import cv2 impo
我有一个对象,我想定义它的精确中心。使用 OpenCV,我使用 Canny 检测边缘,然后执行 HoughLinesP 检测线:see this . 我使用 Hough 变换是因为对象不是完全矩形的,
我的任务是找到直线(startX、startY、endX、endY)和矩形(4 条直线)的坐标。这是输入文件: 我使用下一个代码: img = cv.imread(image_src) gray =
我很难在 Python 中使用 HoughLinesP 和 OpenCV 在此图像中找到棋盘上的线条。 为了理解HoughLinesP的参数,我想出了以下代码: import numpy as np
我正在尝试制作一个简单的应用程序来使用 OpenCV 检测线路 我的代码基于 opencv 示例代码 我只编辑了OnCameraFrame部分 这是我所拥有的: public Mat onCamera
我正在使用cv2.HoughLinesP(),它给了我它检测到的行。这些线在找到物体的角度时大多是准确的。然后,我想根据这些线旋转原始图像。 我的图片: 我的代码: import cv2 as cv
我目前正在研究计算机视觉并尝试使用 Hough-Transform 来寻找一些线条。它自身的操作正在运行,但即使是最小的示例代码也会产生释放错误。 #include #include #inclu
我在这学习link . 这是原图: 我的测试代码: import cv2 import numpy as np img = cv2.imread( 'E:/image/sudoku.png' ) gr
我正在使用适用于 Android 的 OpenCV 3.0。我有一张图像,我想在其中检测圆形表盘内手的角度。为此,我正在研究 HoughLinesP 来检测手。这是代码。 Mat imgSource
我正在尝试获得他们在 this 中获得的相同结果HoughLinesP 过滤器教程。我像这样拍摄了相同的图像和相同的阈值: import cv2 from line import Line impor
我正在尝试使用 OpenCV 和 Python 测量玻璃 channel 中的水位。我决定在选定的 ROI 中使用 HaughLines 并找到所述线条的中点,这样我就可以计算出我想要的线条之间的差异
它写在文档中: lines – Output vector of lines. Each line is represented by a 4-element vector (x_1, y_1, x_
我是一名优秀的程序员,十分优秀!