Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import numpy as np
- #прогрессивное преобразование Хафа
- img = cv2.imread('/home/leti/documents/lab/laba6/6_1.png',cv2.IMREAD_REDUCED_COLOR_2)
- gray =255-cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
- edges = cv2.Canny(gray,50,150,apertureSize = 3)
- minLineLength =30
- maxLineGap =1
- cv2.imshow('5.jpg',gray)
- # вариант1
- # lenght=7
- # i=5
- # while lenght>5:
- # lines = cv2.HoughLinesP(gray,1,np.pi/1800,i,minLineLength,maxLineGap)
- # i=i+20
- # lenght=len(lines)
- # print(len(lines))
- # print(i)
- # print(len(lines))
- # for x1,y1,x2,y2 in lines[len(lines)-1]:
- # cv2.line(img,(x1,y1),(x2,y2),(0,255,0),1 )
- # вариант2
- lines = cv2.HoughLinesP(gray,1,np.pi/1800,700,minLineLength,maxLineGap)
- dlina=[]
- for _ in range(len(lines)):
- dlina.append(0)
- for i in range(len(lines)):
- for x1,y1,x2,y2 in lines[i]:
- dlina[i]=(y2-y1)**2+(x2-x1)**2
- print(dlina.index(max(dlina)))
- for x1,y1,x2,y2 in lines[dlina.index(max(dlina))]:
- cv2.line(img,(x1,y1),(x2,y2),(0,255,0),3 )
- cv2.imshow('houghlines5.jpg',img)
- cv2.imwrite('/home/leti/documents/lab/laba6/houghlines5.jpg',img)
- #вариант 1 окружность
- circles=cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,2,30,param1=100,param2=300)
- print(max(circles[0,:,2]))
- index=0
- while circles[0,index,2]<max(circles[0,:,2]):
- index=index+1
- print(circles[0,index])
- [x0, y0, r]=circles[0,index]
- cv2.circle(img,(x0,y0),r,(0,255,0),3 )
- cv2.imshow('houghlines5.jpg',img)
- cv2.imwrite('/home/leti/documents/lab/laba6/houghlines5.jpg',img)
- cv2.waitKey(0)
- cv2.destroyAllWindows
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement