OpenCV で消失点を探してみる

直線抽出して、延長してみました



%matplotlib inline
import cv2
import numpy as np
import matplotlib.pyplot as plt # matplotlibの描画系
 
#Gray Scaleで画像読み込み
img = cv2.imread('IMG160806-164620.JPG')
#img = cv2.imread('168-216.jpg')

 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,100,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for line in lines:
  for x1,y1,x2,y2 in line:
    dx = x2-x1
    dy = y2-y1
    #cv2.line(img,(x1,y1),(x2,y2),(0,255,0),5)    
    cv2.line(img,(x1 - (dx*200),y1 - (dy*200)),(x1 + (dx*200),y1 + (dy*200)),(0,255,0),2)
    
show_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
plt.imshow(show_img) #表示

交わったところを探してみればいいのかな。

http://kamiwo-koete.hatenablog.jp/entry/2014/12/23/193018
http://mf-atelier.sakura.ne.jp/mf-atelier/modules/tips/program/algorithm/a1.html