def save_as_img(array, name, origin, transposed=False):
if transposed:
origin = origin.transpose(2, 1, 0)
array = array.transpose(2, 1, 0)
else:
origin = origin.transpose(1, 2, 0)
array = array.transpose(1, 2, 0)
array = array * 255
array = array.clip(0, 255).astype(np.uint8)
img = cuda.to_cpu(array)
origin = origin.clip(0, 255).astype(np.uint8)
if args.concat:
img_concat = cv2.hconcat([origin, img])
cv2.imwrite(name, img_concat)
else:
cv2.imwrite(name, img)
python类hconcat()的实例源码
def save_as_img(array, name, origin, transposed=False):
if transposed:
origin = origin.transpose(2, 1, 0)
array = array.transpose(2, 1, 0)
else:
origin = origin.transpose(1, 2, 0)
array = array.transpose(1, 2, 0)
array = array * 255
array = array.clip(0, 255).astype(np.uint8)
img = cuda.to_cpu(array)
origin = origin.clip(0, 255).astype(np.uint8)
if args.concat:
img_concat = cv2.hconcat([origin, img])
cv2.imwrite(name, img_concat)
else:
cv2.imwrite(name, img)
def save_as_img(model1, model2, name, origin, transposed=False):
if transposed:
origin = origin.transpose(2, 1, 0)
model1 = model1.transpose(2, 1, 0)
model2 = model2.transpose(2, 1, 0)
else:
origin = origin.transpose(1, 2, 0)
model1 = model1.transpose(1, 2, 0)
model2 = model2.transpose(1, 2, 0)
model1 = model1 * 255
model1 = model1.clip(0, 255).astype(np.uint8)
img1 = cuda.to_cpu(model1)
model2 = model2 * 255
model2 = model2.clip(0, 255).astype(np.uint8)
img2 = cuda.to_cpu(model2)
origin = origin.clip(0, 255).astype(np.uint8)
img_concat = cv2.hconcat([origin, img1])
img_concat = cv2.hconcat([img_concat, img2])
cv2.imwrite(name, img_concat)
def collect(target, output='output.png', per_subdir=False, size='128x128', interpolation='INTER_LINEAR', keep_aspect=False, space='0', space_color='black', tile_num=0, limit=False, imgcat=False, progress=False):
filename_list = []
if (per_subdir):
print("Create images per subdir. `--output` option is ignored.")
find_all_files_per_subdir(
target, size, interpolation, keep_aspect, space, space_color, tile_num, limit, imgcat, progress)
return
else:
if (os.path.isdir(target)):
for filename in find_all_files(target):
filename_list.append(filename)
if limit:
limit = int(limit)
filename_list = filename_list[0:limit]
print("files:", len(filename_list))
if (tile_num == 0):
tile_num = int(math.ceil(math.sqrt(len(filename_list))))
print("horizontal tile number:", tile_num)
space = int(space)
if isinstance(space_color, string_types):
space_color = webcolors.name_to_rgb(space_color)
interpolation = getattr(cv2, interpolation, 1)
image_list = []
for filename in tqdm(filename_list, desc='Loading images', disable=(not progress)):
img = cv2.imread(filename)
resize_x, resize_y = int(size.split('x')[0]), int(size.split('x')[1])
if keep_aspect:
part_img = resize_keep_aspect(img, resize_x, resize_y, space_color, interpolation=interpolation)
else:
part_img = cv2.resize(img, (resize_x, resize_y), interpolation=interpolation)
if space > 0:
part_img = padding_blank(part_img, space, space, 0, 0, space_color)
image_list.append(part_img)
horizontal_image_list = []
for horizontal in chunks(image_list, tile_num):
while (len(horizontal) < tile_num):
height, width = horizontal[0].shape[:2]
horizontal.append(create_blank(height, width, space_color))
horizontal_image_list.append(cv2.hconcat(horizontal))
result_img = cv2.vconcat(horizontal_image_list)
if space > 0:
result_img = padding_blank(result_img, 0, 0, space, space, space_color)
stdout.write(b'Saving... ')
stdout.flush()
if cv2.imwrite(output, result_img):
stdout.write(b'\rSaved: %s\n' % output.encode('utf8'))
else:
stdout.write(b'\rError: Failed to save %s\n' % output.encode('utf8'))
sys.exit(1)
if imgcat:
imgcat_for_iTerm2(output)