1

I have a sample code which will detect lines. I need to detect lines with a degree angle. But this code detects all the lines in the image.

import cv2
import numpy as np

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

cv2.imwrite('houghlinesmyhouse.png',img)

The image which I use to detect and the result image is,

enter image description here image

enter image description here result

I need to detect the roof of the house(image) which I provided. Please help me how to detect the roof. In my method, I've planned to detect the roof by checking the degree angle.

Community
  • 1
  • 1
Johny Mac
  • 31
  • 3
  • 1
    it's basic trigonometry. Since I'm too lazy to draw a labelled example I just link http://stackoverflow.com/questions/7586063/how-to-calculate-the-angle-between-a-line-and-the-horizontal-axis – Micka Jun 09 '16 at 07:21

1 Answers1

0

Please refer the Documentation of Hough Line Transform.

In my point of view, you cannot get the degree in HoughLinesP. You can get from HoughLines.