In [14]:
import numpy as np
import PIL
from PIL import Image
list_im = [
# './output_images/colorTH-test1.png'
# ,'./output_images/combined-test1.png'
'./output_images/fs.png'
, './output_images/cc.png'
]
imgs = [ PIL.Image.open(i) for i in list_im ]
# #pick the image which is the smallest, and resize the others to match it (can be arbitrary image shape here)
# min_shape = sorted( [(np.sum(i.size), i.size ) for i in imgs])[0][1]
# imgs_comb = np.hstack( (np.asarray( i) ) for i in imgs )
# # save that beautiful picture
# imgs_comb = PIL.Image.fromarray( imgs_comb)
# imgs_comb.save( './output_images/cc.png' )
# for a vertical stacking it is simple: use vstack
imgs_comb = np.vstack( (np.asarray( i ) for i in imgs ) )
imgs_comb = PIL.Image.fromarray( imgs_comb)
imgs_comb.save( './output_images/Lane_thresh.png' )
In [9]:
from LaneDetect import *
image=cv2.imread('./test_images/test4.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
plt.imshow(image)
plt.show()
[ret, mtx, dist, rvecs,tvecs] =undistorT(image)
font = cv2.FONT_HERSHEY_SIMPLEX
frame=image
gray =cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
sobel_edge= SobelThr(gray)
plt.title('Sobel')
plt.imshow(sobel_edge,cmap='gray')
plt.savefig('./output_images/sobelTH-test1.png')
plt.show()
color_threshld= ColorThreshold(frame)
plt.title('Color threshold')
plt.imshow(color_threshld,cmap='gray')
plt.savefig('./output_images/colorTH-test1.png')
plt.show()
comI=combinI(sobel_edge,color_threshld)
plt.title('Combined threshold')
plt.imshow(comI,cmap='gray')
plt.savefig('./output_images/combined-test1.png')
plt.show()
roib=region_of_interest(comI)
plt.title('ROI')
plt.imshow(roib,cmap='gray')
plt.savefig('./output_images/roi-test1.png')
plt.show()
undistI=undistresult(roib, mtx,dist)
pI, pM=prespectI(undistI)
# pI = cv2.inRange(pI, 10, 255)
Minv = np.linalg.inv(pM)
plt.title('Perspective transform')
plt.imshow(pI,cmap='gray')
plt.savefig('./output_images/pi-test1.png')
plt.show()
[left_fit, ploty,right_fit,lc, rc, offset]= LineFitting(pI)
uW=unwrappedframe(frame,pI,Minv,left_fit, ploty,right_fit)
plt.title('result')
plt.imshow(uW)
plt.savefig('./output_images/result-test1.png')
plt.show()
uW=cv2.putText(uW,'Curvature left: %.1f m'%lc,(50,50),
font, 1,(255,255,255),2,cv2.LINE_AA)
uW=cv2.putText(uW,'Curvature right: %.1f m'%rc,(50,100),
font, 1,(255,255,255),2,cv2.LINE_AA)
uW=cv2.putText(uW,'Car position to centre: %.1f m'%offset,(50,150),
font, 1,(255,255,255),2,cv2.LINE_AA)