opencv 检测直线
#!coding=utf-8
import cv2 as cv
import numpy as np
#直线检测
img = cv.imread('./1.jpeg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
edges = cv.Canny(gray,50,120)
minLineLength = 20
maxLineGap = 5
lines = cv.HoughLinesP(edges,1,np.pi/180,50,minLineLength,maxLineGap)
for x1,y1,x2,y2 in lines[0]:
cv.line(img,(x1,y1),(x2,y2),(0,100,0),2)
cv.imshow("edges",edges)
cv.imshow("lines",img)
cv.waitKey()
cv.destroyAllWindows()
opencv圆检测
#!coding=utf-8
import cv2 as cv
import numpy as np
planets = cv.imread('5.jpeg')
gray_img = cv.cvtColor(planets,cv.COLOR_BGR2GRAY)
img = cv.medianBlur(gray_img,5)
cimg = cv.cvtColor(img,cv.COLOR_GRAY2BGR)
circles = cv.HoughCircles(img,cv.HOUGH_GRADIENT,1,120,param1=100,param2=30,minRadius=0,maxRadius=0)
circles = np.uint8(np.around(circles))
for i in circles[0,:]:
cv.circle(planets,(i[0],i[1]),i[2],(0,255,0),2)
cv.circle(planets,(i[0],i[1]),2,(0,0,255),3)
cv.imwrite("planets_circles.jpg",planets)
cv.imshow("HoughCirlces",planets)
cv.imwrite('planets.jpeg', planets)
cv.waitKey()
cv.destroyAllWindows()