catdog/find_lines.py
2013-10-08 08:18:27 +02:00

42 lines
No EOL
849 B
Python
Executable file

#!/usr/bin/env python
import numpy as np
from math import pi
import cv2
import cv
import sys
if len(sys.argv) > 1:
fn = sys.argv[1]
print 'loading %s ...' % fn
img1 = cv2.imread(fn, 0)
img = cv.LoadImage(fn, cv.CV_LOAD_IMAGE_GRAYSCALE)
size = cv.GetSize(img)
temp = cv.CreateImage(size, img.depth, img.nChannels)
print temp
cv.Smooth(img, temp)
canny = cv2.Canny(temp, 50, 100)
color_dst = cv2.cvtColor(canny, cv2.COLOR_GRAY2BGR)
lines = cv2.HoughLinesP(canny, 1, pi/90, 20, np.array([]), 5)
try:
for line in lines[0]:
cv2.line(color_dst, (line[0], line[1]), (line[2], line[3]), cv.RGB(255,0,0), 1, 8)
except:
pass
print lines[0].size
cv2.namedWindow("Original")
cv2.imshow("Original", img)
cv2.namedWindow('Lines image')
cv2.imshow('Lines image', color_dst)
cv2.waitKey()
else:
print "Please give a image path"