import cv2
from PIL import Image
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['simHei']
plt.rcParams['axes.unicode_minus'] = False
from rembg import remove



# 对图像主题进行抠图处理
if __name__=='__main__':
 
    # 待处理的图片路径
    input_path = 'file/zmn.jpg'
    # 处理后存储的图片路径
    output_path = 'buckle/zmn.png'
 
    with open(input_path, 'rb') as i:
        with open(output_path, 'wb') as o:
            input = i.read()
            output = remove(input)
            o.write(output)

# 读取抠图后照片
image = cv2.imread("buckle/zmn.png", cv2.IMREAD_GRAYSCALE)

# 对图像进行二值化处理
_, binary_image = cv2.threshold(image, 1, 255, cv2.THRESH_BINARY)

# 保存结果照片
cv2.imwrite("result/result_zmn.png", binary_image)

# 展示图像
plt.subplot(1,3,1)
image_zmn = Image.open("file/zmn.jpg")
plt.imshow(image_zmn)
plt.title('原图')
plt.axis('off')

plt.subplot(1,3,2)
image_zmn_buckle = Image.open("buckle/zmn.png")
plt.imshow(image_zmn_buckle)
plt.title('抠图处理')
plt.axis('off')

plt.subplot(1,3,3)
plt.imshow(binary_image, cmap='gray')
plt.title('二值化处理')
plt.axis('off')

plt.tight_layout()
plt.show()