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