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の広い範囲のために働く必要がある一方で、まさにRGB 255 255 255に対してのみ機能してきました。ここで
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