python - 如何检测线条 - OpenCV
问题描述
我是 OpenCV 的新手,并试图以与检测到轮廓相同的格式检测图形中的线条。例如,需要处理以下图像: 原始图像
到目前为止,我已经能够如下检测轮廓: 检测到的轮廓
我想做的是检测实际线而不是内部和外部轮廓,但仍然以列表的形式获得结果。这可能吗?如果是这样,我想将此应用于具有多条线的图片,例如: 多线绘图
所有图纸将仅由线条组成,没有实体“块”
非常感谢!
解决方案
img = cv2.imread('image.png', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 200)
lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=0)
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(img, (x1, y1), (x2, y2), (51, 250, 250), 2)
cv2.imshow(img)
推荐阅读
- laravel - Laravel - 如何解决错误 500:当 $currentstatus = NULL 时出现内部服务器错误
- c++ - 未找到 stdatomic.h,用于 swift 和金属计算着色器
- rust - Rust - 创建使用从迭代器存储的部分数据的 hashmap
- vimeo - 为什么我的撇号嵌入 Vimeo 请求在托管环境中失败?
- java - scala中是否有任何简单的方法可以在编译期间将方法源代码存储到某个变量?
- javascript - JavaScript await 并不总是在 Firefox 上可靠运行
- javascript - 在 iFrame 中使用 javascript location.search
- php - 在电话号码 WooCommerce 中强制输入 8 位数字
- freeradius - 使用 MS_CHAP 针对 Active Directory 进行 Freeradius 身份验证
- r - 可以在基础 R 中重塑将多个时间变量转换为长格式的单个列吗?