Spaces:
Runtime error
Runtime error
import numpy as np | |
import cv2 | |
import os | |
DIR = r"C:/Users/dilji/OneDrive/Documents/CodingFiles/codeInit/backend/imageModel/utils" | |
PROTOTEXT = os.path.join(DIR, r"models/colorization_deploy_v2.prototxt") | |
MODEL = os.path.join(DIR, r"models/colorization_release_v2.caffemodel") | |
POINTS = os.path.join(DIR, r"models/pts_in_hull.npy") | |
def colorize(image_path): | |
image_path = os.path.join(DIR, image_path) | |
print("[INFO] Loading model...") | |
net = cv2.dnn.readNetFromCaffe(prototxt=PROTOTEXT, caffeModel=MODEL) | |
pts = np.load(POINTS) | |
class8 = net.getLayerId("class8_ab") | |
conv8 = net.getLayerId("conv8_313_rh") | |
pts = pts.transpose().reshape(2, 313, 1, 1) | |
net.getLayer(class8).blobs = [pts.astype("float32")] | |
net.getLayer(conv8).blobs = [np.full([1, 313], 2.606, dtype="float32")] | |
print("[INFO] Loading image...") | |
image = cv2.imread(image_path) | |
scaled = image.astype("float32") / 255.0 | |
lab = cv2.cvtColor(scaled, cv2.COLOR_BGR2LAB) | |
resized = cv2.resize(lab, (224, 224)) | |
L = cv2.split(resized)[0] | |
L -= 50 | |
print("[INFO] Colorizing image...") | |
net.setInput(cv2.dnn.blobFromImage(L)) | |
ab = net.forward()[0, :, :, :].transpose((1, 2, 0)) | |
ab = cv2.resize(ab, (image.shape[1], image.shape[0])) | |
L = cv2.split(lab)[0] | |
colorized = np.concatenate((L[:, :, np.newaxis], ab), axis=2) | |
colorized = cv2.cvtColor(colorized, cv2.COLOR_LAB2BGR) | |
colorized = np.clip(colorized, 0, 1) | |
colorized = (255*colorized) | |
colorized = colorized.astype(np.uint8) | |
cv2.imwrite(os.path.join(DIR, "colorized.jpg"), colorized) | |
return os.path.join(DIR, "colorized.jpg") | |
def save_image(image_data, path): | |
with open(os.path.join(DIR,path), "wb") as f: | |
for chunk in image_data.chunks(): | |
f.write(chunk) | |
f.close() | |
return path | |
def cleanup(): | |
if (os.path.exists(os.path.join(DIR, "input.jpg"))): | |
os.remove(os.path.join(DIR, "input.jpg")) | |
if (os.path.exists(os.path.join(DIR, "colorized.jpg"))): | |
os.remove(os.path.join(DIR, "colorized.jpg")) |