File size: 1,117 Bytes
27d8931
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'''
 * Copyright (c) 2023 Salesforce, Inc.
 * All rights reserved.
 * SPDX-License-Identifier: Apache License 2.0
 * For full license text, see LICENSE.txt file in the repo root or http://www.apache.org/licenses/
 * By Ning Yu
'''

import numpy as np

class Outpainter:
    def __call__(self, img, height_top_extended, height_down_extended, width_left_extended, width_right_extended):
        height, width, channel = img.shape

        height_top_new = int(float(height) / 100.0 * float(height_top_extended))
        height_down_new = int(float(height) / 100.0 * float(height_down_extended))
        width_left_new = int(float(width) / 100.0 * float(width_left_extended))
        width_right_new = int(float(width) / 100.0 * float(width_right_extended))

        new_height = height + height_top_new + height_down_new
        new_width = width + width_left_new + width_right_new
        img_new = np.zeros([new_height, new_width, channel])
        img_new[height_top_new: (height + height_top_new), width_left_new: (width + width_left_new), : ] = img
        img_new = img_new.astype('ubyte')
        return img_new