やりたいこと
画像の照明のムラを均一化して白黒二値化処理を行いたいと考えています。
現在ムラを補正する処理がうまくいかず、困っています。
試したこと
下記のHPなどを参考にOpenCVで以下の方法を試してみました。
いくつかの画像に対してはうまく補正されるのですが、
全ての画像に対して十分な効果が得られませんでした(ムラがなくならない)。
①モルフォロジー演算リンク内容
②ヒストグラム平坦化(equalizehist, CLAHE)リンク内容
コード例1(モルフォロジー演算)
#画像をグレースケールで読み込む img = cv2.imread('元画像のパス',cv2.IMREAD_GRAYSCALE) #カーネルを作成 Mat_element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(100,100)) #オープニングを実行して背景を取り出す opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,Mat_element) #元画像から背景を差し引いた画像を作成 sabun = cv2.absdiff(opening,img) #二値化を実行 ret, BWI = cv2.threshold(sabun, 0, 255, cv2.THRESH_BINARY) cv2.imshow("result",BWI) cv2.imwrite('保存画像パス', sabun) cv2.waitKey(0)
コード例2(CLAHE)
img = cv2.imread('元画像パス') img_yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV) clahe = cv2.createCLAHE(clipLimit=3, tileGridSize=(8,8)) img_yuv[:,:,0] = clahe.apply(img_yuv[:,:,0]) img = cv2.cvtColor(img_yuv, cv2.COLOR_YUV2BGR) cv2.imshow('CLAHE', img) cv2.imwrite('保存画像パス', img) cv2.waitKey(0)
聞きたいこと
モルフォロジー演算、ヒストグラム平坦化の他に画像の照明ムラを補正する
手法がありましたら(openCVに限らず)ご教示いただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/05 14:29