去除图片水印后Matplotlib显示出现蓝色偏色的问题排查及通用去水印方案求助
去除图片水印后Matplotlib显示出现蓝色偏色的问题排查及通用去水印方案求助
我正在做一个教育类项目,需要移除一些STEM相关图片背景里的特定水印。最开始我尝试处理下面这张图:

你可能需要放大才能看到,水印内容是“examgoal”。
不过不知道出了什么问题,我得到的输出虽然勉强(效果很差)去掉了水印,但整体画面偏蓝。我已经折腾好几个小时了,还是找不到解决办法:

我在Google Colab上运行了以下代码,用到了matplotlib、numpy和cv2,代码确实能(虽然效果很差)去掉水印,但偏色问题一直解决不了,而且我还想把这个流程通用化,用来处理多张图片,真心希望能得到大家的帮助!
import cv2 import numpy as np import matplotlib.pyplot as plt from google.colab import files uploaded = files.upload() for filename in uploaded.keys(): print(f'Uploaded file name: {filename}') image_path = filename image = cv2.imread(image_path) if image is None: print(f"Error: Unable to load image at {image_path}") else: print("Image loaded successfully") gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) enhanced = cv2.equalizeHist(gray) adaptive_thresh = cv2.adaptiveThreshold(enhanced, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2) kernel = np.ones((3, 3), np.uint8) morph = cv2.morphologyEx(adaptive_thresh, cv2.MORPH_CLOSE, kernel, iterations=2) mask = cv2.bitwise_not(morph) result = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA) plt.figure(figsize=(15, 15)) plt.subplot(1, 2, 1) plt.title('Original Image') plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) plt.subplot(1, 2, 2) plt.title('Image without Watermark') plt.imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB)) plt.show()
备注:内容来源于stack exchange,提问作者Adi
相关产品推荐
相关产品推荐

