將黑色更改爲白色但不是白色使用cv2或PIL在Python中使用opencv嘗試將黑色像素更改爲白色。使用Python openCV PIL
原始圖片:
這裏是我的代碼:
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 ,那可能會解決我的問題。
如果它是一個灰度圖像,爲什麼不把它作爲一個灰度圖像和改變下面的一切,可以說10(幾乎黑色)到255(白色)。在範圍內,您必須使用下限和上限來定義哪些顏色處於有效範圍內,然後將其用作蒙版並將該區域設爲白色。在[本教程](http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html)中,它們向您展示瞭如何按顏色過濾,通過更高的界限來使用某些東西接近黑色(10,10,10),下限僅爲黑色(0,0,0),因爲黑色並非總是純正的。 – api55