def calculateAllJSON(objKeys, base64=True): p = settings["p"] dm = settings["dm"] db = settings["db"] classifier = settings["classifier"] json_array = [] # Array storing dicts of objects baseurl = p.image_url_prepend if baseurl == None: baseurl = "" image_channel_colors = p.image_channel_colors for objKey in objKeys: json = {} if p.table_id == None: json["image"] = objKey[0] json["object"] = objKey[1] else: json["table"] = objKey[0] json["image"] = objKey[1] json["object"] = objKey[2] paths = db.GetFullChannelPathsForImage(objKey) for i, color in enumerate(image_channel_colors): json[color] = baseurl + paths[i] if base64: from cStringIO import StringIO import base64 # Convert to Base64 output = StringIO() tile = imagetools.FetchTile(objKey) # tile = imagetools.FetchImage(objKey) im = imagetools.MergeChannels(tile, p.image_channel_colors) im = imagetools.npToPIL(im) im.save(output, format="JPEG") im_data = output.getvalue() data_url = "data:image/jpg;base64," + base64.b64encode(im_data) json["base64"] = data_url json_array.append(json) # Save as local file import json f = open("23classes.json", "w") json_string = json.dumps(json_array) f.write(json_string) f.close() return json_array
def calculateTrainingSetJSON(base64=False): p = settings["p"] dm = settings["dm"] db = settings["db"] classifier = settings["classifier"] json_array = [] # Array storing dicts of objects baseurl = p.image_url_prepend if baseurl == None: baseurl = "" image_channel_colors = p.image_channel_colors for label, objKey in classifier.trainingSet.entries: json = {} if p.table_id == None: json["image"] = objKey[0] json["object"] = objKey[1] else: json["table"] = objKey[0] json["image"] = objKey[1] json["object"] = objKey[2] json["class"] = label paths = db.GetFullChannelPathsForImage(objKey) for i, color in enumerate(image_channel_colors): json[color] = baseurl + paths[i] if base64: from cStringIO import StringIO import base64 # Convert to Base64 output = StringIO() tile = imagetools.FetchTile(objKey) # tile = imagetools.FetchImage(objKey) im = imagetools.MergeChannels(tile, p.image_channel_colors) im = imagetools.npToPIL(im) im.save(output, format="JPEG") im_data = output.getvalue() data_url = "data:image/jpg;base64," + base64.b64encode(im_data) json["base64"] = data_url json_array.append(json) return json_array