Reputation: 31
I am trying to detect lines using this python script:
import cv2
import numpy as np
img = cv2.imread('10crop.tiff')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 1
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,0,255),15)
cv2.imwrite('houghlines5.jpg',img)
I'm getting very poor results, am I doing something wrong? here is the image:
(the red line was marked by the script everything else was skipped and left black) I need to keep the text not marked.
Upvotes: 0
Views: 125
Reputation: 558
You are almost there, you only need to print all lines. The code you provided only draws 1 line. So add this to your for loop:
for x in range(0, len(lines)):
for x1,y1,x2,y2 in lines[x]:
Upvotes: 1