Esempio n. 1
0
def lowFit():
    keyDict = request.get_json()
    userId = hashlib.sha224(keyDict['userId']).hexdigest()
    catId = keyDict['catId']
    processOut = cv2.imread('../users/' + userId + '/processOutLower.png')
    if processOut is None:
        result = {}
        result['status'] = 'User lowers not extracted'
        resp = Response(json.dumps(result),status=200, mimetype='application/json')
        return resp
    cropFlood = cv2.imread('../catalogue/lower/image' + catId + '/cropFlood.png')
    lowInst = lowerFit(processOut,cropFlood)
    lowInst.calcLowerLine()
    lowInst.resizeCat()
    finalOut = lowInst.fit()
    fitInst = userFit(processOut,cropFlood)
    userBox = pickle.load(open('../users/' + userId + '/userLowBox.p'))
    fitInst.setUserBox(userBox)
    userImg = cv2.imread('../users/' + userId + '/userImg.png')
    output = fitInst.fittingOntoUser(finalOut,userImg)
    cv2.imwrite('../users/' + userId + '/fittingOntoUser.jpg',output)
    encodeImg = base64.b64encode(open('../users/' + userId +'/fittingOntoUser.jpg').read())
    result = {}
    result['img'] = encodeImg
    resp = Response(json.dumps(result),status=200, mimetype='application/json')
    return resp
Esempio n. 2
0
def fit():
    keyDict = request.get_json()
    userId = hashlib.sha224(keyDict['userId']).hexdigest()
    catId = keyDict['catId']
    processOut = cv2.imread('../users/' + userId + '/processOutupper.png')
    if processOut is None:
        result = {}
        result['status'] = 'Upload your image first'
        resp = Response(json.dumps(result),
                        status=200,
                        mimetype='application/json')
        return resp
    cropFlood = cv2.imread('../catalogue/upper/image' + catId +
                           '/cropFloodOut.png')
    LU, RU = pickle.load(open('../users/' + userId + '/segLines.p'))
    LC, RC = pickle.load(
        open('../catalogue/upper/image' + catId + '/segLines.p'))
    leftArmUser = cv2.imread('../users/' + userId + '/leftArmUser.png')
    rightArmUser = cv2.imread('../users/' + userId + '/rightArmUser.png')
    leftArmCat = cv2.imread('../catalogue/upper/image' + catId +
                            '/leftArmCat.png')
    rightArmCat = cv2.imread('../catalogue/upper/image' + catId +
                             '/rightArmCat.png')
    userBox = pickle.load(open('../users/' + userId + '/userBox.p'))
    fitInst = userFit(processOut, cropFlood)
    fitInst.setSegLines(LC, RC, LU, RU)
    colorUserOut = fitInst.colorUser()
    cv2.imwrite('../users/' + userId + '/debug/colorUserOut.png', colorUserOut)
    fitInst.setUserArm(leftArmUser, rightArmUser)
    fitInst.setCatArm(leftArmCat, rightArmCat)
    fitLeft, fitRight = fitInst.sleeveFit()
    cv2.imwrite('../users/' + userId + '/debug/fitLeft.png', fitLeft)
    cv2.imwrite('../users/' + userId + '/debug/fitRight.png', fitRight)
    bodyFitOut = fitInst.bodyFit(colorUserOut)
    cv2.imwrite('../users/' + userId + '/debug/bodyFitOut.png', bodyFitOut)
    finalFit = fitInst.finalFit(bodyFitOut, fitLeft, fitRight)
    cv2.imwrite('../users/' + userId + '/debug/finalFit.png', finalFit)
    fitInst.setUserBox(userBox)
    userImg = cv2.imread('../users/' + userId + '/userImg.png')
    output = fitInst.fittingOntoUser(finalFit, userImg)
    cv2.imwrite('../users/' + userId + '/fittingOntoUser.jpg', output)
    encodeImg = base64.b64encode(
        open('../users/' + userId + '/fittingOntoUser.jpg').read())
    result = {}
    result['img'] = encodeImg
    resp = Response(json.dumps(result),
                    status=200,
                    mimetype='application/json')
    return resp
Esempio n. 3
0
rightArmUser = processInst.armSegment(processOut, 'right')

catImg = cv2.imread(sys.argv[2])
catInst = catPreprocess(catImg)
floodOut = catInst.edgeDetect()

cropFlood = catInst.cropImg(floodOut)
catInst.segImage(cropFlood)

LC, RC = catInst.getSegLines()

rightArmCat = catInst.armSegment(cropFlood, 'right')

leftArmCat = catInst.armSegment(cropFlood, 'left')

fitInst = userFit(processOut, cropFlood)
fitInst.setSegLines(LC, RC, LU, RU)

colorUserOut = fitInst.colorUser()

fitInst.setUserArm(leftArmUser, rightArmUser)
fitInst.setCatArm(leftArmCat, rightArmCat)
fitLeft, fitRight = fitInst.sleeveFit()

bodyFitOut = fitInst.bodyFit(colorUserOut)

finalFit = fitInst.finalFit(bodyFitOut, fitLeft, fitRight)

fitInst.setUserBox(processInst.returnUserBox())
output = fitInst.fittingOntoUser(finalFit, cv2.imread(sys.argv[1]))
cv2.imwrite('onUser.jpg', output)