|
import numpy as np |
|
from PIL import Image |
|
|
|
def combined_display(image, matte): |
|
# calculate display resolution |
|
w, h = image.width, image.height |
|
rw, rh = 800, int(h * 800 / (3 * w)) |
|
|
|
# obtain predicted foreground |
|
image = np.asarray(image) |
|
if len(image.shape) == 2: |
|
image = image[:, :, None] |
|
if image.shape[2] == 1: |
|
image = np.repeat(image, 3, axis=2) |
|
elif image.shape[2] == 4: |
|
image = image[:, :, 0:3] |
|
matte = np.repeat(np.asarray(matte)[:, :, None], 3, axis=2) / 255 |
|
foreground = image * matte + np.full(image.shape, 255) * (1 - matte) |
|
|
|
# combine image, foreground, and alpha into one line |
|
combined = np.concatenate((image, foreground, matte * 255), axis=1) |
|
combined = Image.fromarray(np.uint8(combined)).resize((rw, rh)) |
|
return combined |
|
|
|
# visualize all images |
|
image_names = os.listdir(input_folder) |
|
for image_name in image_names: |
|
matte_name = image_name.split('.')[0] + '.png' |
|
image = Image.open(os.path.join(input_folder, image_name)) |
|
matte = Image.open(os.path.join(output_folder, matte_name)) |
|
display(combined_display(image, matte)) |
|
print(image_name, '\n') |
|
|
|
prompt = ["A amazing realistic photography of the seraphim methraton."] |
|
prompt = ["A amazing realistic photography of the seraphim methraton face."] |
|
https://www.youtube.com/watch?v=RzoO756PvL8&list=RD1hWAOReJehw&index=12 |
|
|