คำสั่ง HoughLinesP จะให้ผลลัพธ์เป็นจุดสองจุดที่เป็นต้น (x1,y1) และปลาย (x2,y2) ของเส้นตรงที่คำนวณได้ การพลอตผลลัพธ์ก็จะทำได้ง่ายขึ้น
ลองดูตัวอย่าง เปรียบเทียบกับบทความก่อนหน้าครับ
import cv2 import numpy as np img = cv2.imread("building.jpg") gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #Appy Gaussian blur to remove some noises inoise = cv2.GaussianBlur(gray,(3,3),sigmaX=0) #Canny lowThresh = 50 upThresh = 200 edge = cv2.Canny(inoise,lowThresh,upThresh) #Probabilistic Hough Line Transform lines = cv2.HoughLinesP(edge,rho=1,theta=np.pi/180,threshold=120,minLineLength=30,maxLineGap=10) img2 = img.copy() #Plot detected lines for x1,y1,x2,y2 in lines[0]: cv2.line(img2,(x1,y1),(x2,y2),(0,255,0),2) cv2.imshow("Probabilistic Hough Lines",img2) cv2.waitKey() cv2.destroyAllWindows()
อ้างอิง
[1] Matas, J. and Galambos, C. and Kittler, J.V., Robust Detection of Lines Using the Progressive Probabilistic
Hough Transform. CVIU 78 1, pp 119-137 (2000)
เอาเส้นตรงพวกนี้มาหาค่าเป็น % ได้ไหมครับ
ReplyDelete