|
import requests, json |
|
from PIL import Image |
|
import matplotlib.pyplot as plt |
|
import numpy as np |
|
import base64 |
|
import io |
|
|
|
def request_post(url, data, timeout=600, headers = None): |
|
if headers is None: |
|
headers = { |
|
|
|
|
|
'Accept': '*/*', |
|
'Content-Type': 'application/json;charset=UTF-8', |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
try: |
|
response = requests.post(url=url, headers=headers, data=json.dumps(data), timeout=timeout) |
|
response_data = response.json() |
|
return response_data |
|
except Exception as e: |
|
print(f'request_post[Error]:' + str(e)) |
|
print(f'url: {url}') |
|
print(f'data: {data}') |
|
print(f'response: {response}') |
|
return None |
|
|
|
url = "http://127.0.0.1:7860/imgCLeaner" |
|
|
|
def imgFile_to_base64(image_file): |
|
with open(image_file, "rb") as f: |
|
im_bytes = f.read() |
|
im_b64_encode = base64.b64encode(im_bytes) |
|
im_b64 = im_b64_encode.decode("utf8") |
|
return im_b64 |
|
|
|
def base64_to_bytes(im_b64): |
|
im_b64_encode = im_b64.encode("utf-8") |
|
im_bytes = base64.b64decode(im_b64_encode) |
|
return im_bytes |
|
|
|
def base64_to_PILImage(im_b64): |
|
im_bytes = base64_to_bytes(im_b64) |
|
pil_img = Image.open(io.BytesIO(im_bytes)) |
|
return pil_img |
|
|
|
def cleaner_img(image_file, remove_texts, mask_extend=20, disp_debug=True): |
|
data = {'remove_texts': remove_texts, |
|
'mask_extend': mask_extend, |
|
'img': imgFile_to_base64(image_file), |
|
} |
|
ret = request_post(url, data, timeout=600, headers = None) |
|
if ret['code'] == 0: |
|
if disp_debug: |
|
for img in ret['result']['imgs']: |
|
pilImage = base64_to_PILImage(img) |
|
plt.imshow(pilImage) |
|
plt.show() |
|
plt.clf() |
|
plt.close('all') |
|
img_len = len(ret['result']['imgs']) |
|
pilImage = base64_to_PILImage(ret['result']['imgs'][img_len-1]) |
|
else: |
|
pilImage = None |
|
return pilImage, ret |
|
|
|
image_file = 'dog.png' |
|
remove_texts = "小狗 . 椅子" |
|
|
|
mask_extend = 20 |
|
pil_image, ret = cleaner_img(image_file, remove_texts, mask_extend, disp_debug=False) |
|
|
|
plt.imshow(pil_image) |
|
plt.show() |
|
plt.clf() |
|
plt.close() |
|
|
|
|