- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我指的是这个link用于实验。
这是原图:
我的测试代码:
import cv2
import numpy as np
img = cv2.imread('E:/image/sudoku.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
lines = cv2.HoughLines(edges,1,np.pi/180,200)
for rho,theta in lines[0]:
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
cv2.imwrite('E:/image/myhoughlines.jpg',img)
cv2.imshow('1',img)
cv2.waitKey(0)
我的代码运行结果:
但是我想要这样的效果:
哪里错了?
最佳答案
我知道哪里错了!官网的代码少了一个循环。代码改成这样:
import cv2
import numpy as np
img = cv2.imread('E:/image/sudoku.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
lines = cv2.HoughLines(edges,1,np.pi/180,200)
for i in range(len(lines)):
for rho,theta in lines[i]:
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
cv2.imwrite('E:/image/myhoughlines.jpg',img)
cv2.imshow('1',img)
cv2.waitKey(0)
关于python - 使用cv2.HoughLines()的效果是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48494568/
请问有没有办法只检测接近水平的霍夫线,或者忽略那些接近垂直的霍夫线?我现在的 HoughLine 代码如下所示: HoughLinesP(imagec, lines, 80, CV_PI/2, CV_
我在 VS 2010 中使用 OpenCV 2.4.3。我尝试在 VS2012 中编译 Houghline 的示例代码,它运行良好。但是使用VS2010+OpenCV 2.4.3(因为我想使用Qt),
我正在尝试使用 houghLines 和 Canny 边缘检测器检测图像中的线条,但每次我获取 exe 时都停止工作,这真的很烦人。我正在使用最新的预编译 exe 和 visual studio 作为
我被难住了。它是黑色背景上的一个简单的白色矩形。 Houghlines 找不到顶线。它可以找到所有其他的,只是找不到顶部。 有人吗? https://www.screencast.com/t/bNu4
我在我的代码中卡住了一点。首先简要说明一下我在做什么:作为输入,有一张地板的图像。使用 Canny 和 HoughLinesP 算法,我想将整面墙分割成许多“小”部分,正如您在此处看到的,同时 是理想
使用 Hough lines 检测图像中的线条后,如何使用它来计算引用图像线条的角度(旋转)变化? 最佳答案 读者须知:这是一个后续问题,请参阅这些背景信息: How to select maximu
因此,我正在编写这段代码以从图像中的某些图形中提取数据。这些图像都是从一本书中扫描出来的。由于我们在这里讨论的是 100 多张图像,因此我当然想自动化该过程。我的第一步是确保所有图像都对齐。因为这本书
我正在关注文档/tutorial openCV 来检测图像中的线条。然而,我只得到了图像中四条相似线条中的一条。这是result 这是我的代码: Mat im = Imgcodecs.imread("
我指的是这个link用于实验。 这是原图: 我的测试代码: import cv2 import numpy as np img = cv2.imread('E:/image/sudoku.png')
在下图中,您可以看到我能够很好地识别水平线,但垂直线就不太好。特别是,没有看到网格的中间线,并且边线被 overdraw (即相互连接)。 这是创建它的代码: img = cv2.imread('./
工作完成 我尝试通过以下步骤检测和读取车牌: 1)使用houghlines检测四边形(这一步已经遇到这个问题,sorry) 2)修正这个四边形的透视为矩形 3)对该矩形进行OCR 你可以看到我的代码的
我是图像处理的新手,正在研究文档图像中的线条检测。我读了 Hough 线变换的理论,但我不明白为什么我必须像许多教程中所说的那样在 opencv 中调用该函数之前使用 Canny。在这种情况下寻找边缘
我正在做一个需要检测屋顶的项目。目前,我正在检测斜线。经过一番尝试,我想出了一个检测屋顶的解决方案。但是当我用各种类型的屋顶平面(复杂的)对其进行测试时,检测并不准确。 这是我使用的代码, impor
我已将我的 OpenCV 开发从 Python 转移到 Java,以便在 Android 设备上使用它。第一步是移植一个相当简单的 Canny/HoughLines 算法。通过一些研究,我得出结论:
我有一个关于 HoughLines 的 opencv 库的问题。以下格式来自官网: C++: void HoughLines(InputArray image, OutputArray lines,
我一直在 OpenCV 中使用 houghlines,但我似乎无法获得更准确的线读数,有时会有两条重复的线相互重叠。我查看了 opencv 网站上的教程,但它给出了类似的结果。 最佳答案 要删除那些重
我在 visual studio express 2012 中使用 opencv 2.4.10 在 32 位操作系统上的 windows 7 上使用 c++ 进行编码,我正在创建一个程序,该程序将从相
--请参阅下面的更新/答案。用户错误!-- 我正在尝试了解如何在 Imgproc.HoughLines() 中设置参数以找到较短的行。我试过这样的东西,但根本不起作用: Imgproc.HoughLi
我正在尝试在 cv::gpu::GpuMat 结构上使用 Hough 变换 检测一些线。我尝试同时使用 gpu::HoughLines 和 gpu::HoughLinesP 但即使阈值极低,我也没有得
我有这个源图像: 我的目标是移除底线,同时保持字母/数字不变。 这是我使用的代码: import cv2 import numpy as np img = cv2.imread('src.png')
我是一名优秀的程序员,十分优秀!