我尝试使用cv2或PIL在python中使用opencv将黑色像素更改为白色。
原始图片:
这是我的代码:
import cv2
import numpy as np
frame = cv2.imread("numptest/captcha.png")
cv2.imshow('frame',frame)
lower_black = np.array([0,0,0])
upper_black = np.array([1,1,1])
black_mask = cv2.inRange(frame, lower_black, upper_black)
cv2.imshow('mask0',black_mask)
cv2.waitKey()
结果如下:
虽然我希望它看起来像这样:
我也尝试过这段代码,它确实保留了这些矩形内部的内容,但仅适用于RGB 255 255 255,而我需要它才能适用于更广泛的RGB。
from PIL import Image
import numpy as np
im = Image.open('numptest/captcha.png')
im = im.convert('RGBA')
data = np.array(im)
black_areas = (red == 0) & (blue == 0) & (green == 0)
data[..., :-1][black_areas.T] = (255, 255, 255)
im2 = Image.fromarray(data)
im2.show()'
这是第二个代码的结果:
所以我不知道,也许最好是这些代码的某些组合,我只是不太懂得如何在第二个代码中使用inRange,这可能会解决我的问题。