首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用python进行CV2图像处理时区分线条?

如何在使用python进行CV2图像处理时区分线条?
EN

Stack Overflow用户
提问于 2020-07-05 01:36:37
回答 1查看 75关注 0票数 0

我正在用python做一个化学项目的骨骼公式图像处理器。它还处于非常早期的阶段,但我被一个问题难住了。当我运行图像处理时,单行被计为多行;因为从单个笔行中提取了多行。因此,我需要一种方法来区分这些行,并使其能够在每个实际的笔行中注册一行,这样我就可以像在骨架公式中一样,将其准确地计算为CH3组。

下面是我当前的代码:

代码语言:javascript
复制
import cv2
import numpy as np
import math
 
 
image1 = cv2.imread('test2.jpeg')
gray = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)
canimg = cv2.Canny(gray, 50, 200)
 
lines = cv2.HoughLinesP(canimg, 1, np.pi/180.0, 80, np.array ([]), 70, 20)
N = lines.shape[0]
 
for i in range(N):
    x1 = lines[i][0][0]
    y1 = lines[i][0][1]    
    x2 = lines[i][0][2]
    y2 = lines[i][0][3]    
    cv2.line(image1,(x1,y1),(x2,y2),(255,0,0),2)

cv2.imshow('Lines Detected',image1)
cv2.imshow("Canny Detection", canimg)
cv2.waitKey(0)
cv2.destroyAllWindows()

如我的问题所示,请参阅附件中的图像。

任何链接/建议/评论/批评都能改善图像处理中的线条检测。

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 09:19:36

通过查看右上角的小地图,我假设此线条模式继续在您的图像中显示的内容的左侧和右侧。我认为找到一个健壮的方法并不容易,但这里有一些想法:

就我个人而言,我会首先尝试使用自定义箭头形状内核的侵蚀方法。乍一看,我认为它可能是这四种方法中最简单和最健壮的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62732391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档