| 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() |
|
|
|
|