Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在xamarin、c#或python中检测图像中的所有分隔线?_C#_Opencv_Xamarin_Object Detection_Straight Line Detection - Fatal编程技术网

如何在xamarin、c#或python中检测图像中的所有分隔线?

如何在xamarin、c#或python中检测图像中的所有分隔线?,c#,opencv,xamarin,object-detection,straight-line-detection,C#,Opencv,Xamarin,Object Detection,Straight Line Detection,我需要检测图像中的所有线(边)及其在xamarin应用程序中的位置 就像附件中的图片一样 我在python中尝试了openCV,但仍然没有得到所有的线条,我只得到了对象周围的边界框和直线,但我也需要检测倾斜的线条 以下是我使用的python代码:` blur = cv2.GaussianBlur(img, (3,3), 0) canny = cv2.Canny(blur, l_th, u_th) dilated = cv2.dilate(canny, None, iterations=3) co

我需要检测图像中的所有线(边)及其在xamarin应用程序中的位置

就像附件中的图片一样

我在python中尝试了openCV,但仍然没有得到所有的线条,我只得到了对象周围的边界框和直线,但我也需要检测倾斜的线条

以下是我使用的python代码:`

blur = cv2.GaussianBlur(img, (3,3), 0)
canny = cv2.Canny(blur, l_th, u_th)
dilated = cv2.dilate(canny, None, iterations=3)
contours, hierarchy = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
for contour in contours:
    (x, y, w, h) = cv2.boundingRect(contour)
    cv2.rectangle(coloured_img, (x, y), (x+w, y+h), (0, 255, 0), 2)
原始图像:

我想要的输出:

我得到的输出:


有什么建议吗?

试试OpenCV中的HoughLinesP

import cv2
import numpy as np

img = cv2.imread('dave.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for x1,y1,x2,y2 in lines[0]:
    cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imwrite('houghlines5.jpg',img)

不幸的是,我现在没有安装OpenCV-答案来自文档和内存。这就是为什么我说“试试”