matplotlibで2次元配列をカラーマップにして、ある程度濃いグレー〜黒は完全な白に、それ以外の比較的白っぽい領域は透明に変換する処理をしたいと考えています。
この画像に対して以下の処理を加えたところ、白い領域と透明の領域の間に境界線ができてしまいます。
境界線ができないような透過処理をする方法をご教示ください。
python
1# opencvを読み込み、出力済みのpng画像を読み込む 2import cv2 # opencv 3img = cv2.imread('mask_4.png',cv2.IMREAD_UNCHANGED) # png 4height, width, rgba = img.shape # サイズを取得 5for h_ in range(height): 6 for w_ in range(width): 7 r = img[h_][w_][0] # 座標[h_][w_]のRGBAのRを取得 8 if r>130: 9 img[h_][w_][0]=0 10 img[h_][w_][1]=0 11 img[h_][w_][2]=0 12 img[h_][w_][3]=0 13 14 else: 15 img[h_][w_][0]=255 16 img[h_][w_][1]=255 17 img[h_][w_][2]=255 18 img[h_][w_][3]=255 19cv2.imwrite('mask_4_output.png', img)
あなたの回答
tips
プレビュー