Files
@ 29f28718a69b
Branch filter:
Location: OneEye/exp/dochi.py - annotation
29f28718a69b
1.4 KiB
text/x-python
transitional data processing
c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b db53fefbf557 c60da2275a2b c60da2275a2b c60da2275a2b db53fefbf557 c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b db53fefbf557 c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b db53fefbf557 c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b c60da2275a2b db53fefbf557 db53fefbf557 db53fefbf557 db53fefbf557 db53fefbf557 db53fefbf557 db53fefbf557 | import os
import time
import argparse
import logging as log
import cv2 as cv
import numpy as np
import keras
from keras.models import load_model
from PIL import Image
import exp_config as cfg
from kerokero.k_util import averageDistance
keras.losses.averageDistance=averageDistance
keras.metrics.averageDistance=averageDistance
model=load_model(cfg.dochiModel)
SIDE=224
def locateGrid(img):
t1=time.time()
(width,height)=img.size
normedImg=img.convert("L").resize((224,224),resample=Image.BILINEAR)
npImg=np.array(normedImg.getdata()).reshape((224,224,1)).astype(np.float32)
npImg=npImg/128-1
label=model.predict(np.reshape(npImg,(1,224,224,1)))
points=[]
for i in range(4):
points.append([(label[0][i][0]+1)*(width/2),(label[0][i][1]+1)*(height/2)])
t=time.time()-t1
log.info("grid located in {0:.3}s".format(t))
return points
if __name__=="__main__":
parser=argparse.ArgumentParser()
parser.add_argument("-i","--input",nargs="+")
parser.add_argument("-o","--output_dir",required=True)
args=parser.parse_args()
for image_path in args.input:
image=Image.open(image_path)
points=locateGrid(image)
x1=SIDE*0.1
x2=SIDE*0.9
destPoints=[(x1,x1),(x1,x2),(x2,x2),(x2,x1)]
m=cv.getPerspectiveTransform(np.float32(points),np.float32(destPoints))
img=cv.warpPerspective(np.uint8(image),m,(SIDE,SIDE))
img=cv.cvtColor(img,cv.COLOR_BGR2RGB)
cv.imwrite(os.path.join(args.output_dir,os.path.basename(image_path)),img)
|