CのOpencvを使用して、グレースケールの画像のコントラスト/明るさを調整して、その画像の白を強調しようとしています。どうすればよいですか?opencvでこのタスクを実行する関数はありますか?
元の画像:
変更された画像:
前もって感謝します!
ここでは、次の 2 つの方法でコントラストを調整できると思います。
しかし、あなたの画像でこれを試してみると、結果は期待どおりではありませんでした。以下で確認してください。
2)しきい値処理:
ここで、 i は入力の各ピクセル値を任意の値 ( i が取った127
) と比較しました。以下は、opencv に組み込み関数を持っているロジックです。But remember, output is Binary image, not grayscale as you did.
If (input pixel value >= 127):
ouput pixel value = 255
else:
output pixel value = 0
そして、以下は私が得た結果です:
これには、しきい値関数または比較関数を使用できます
3)出力としてグレースケール画像を取得する必要がある場合は、次のようにします。
(コードは OpenCV-Python ですが、すべての関数について、対応する C 関数は opencv.itseez.com で入手できます)
for each pixel in image:
if pixel value >= 127: add 'x' to pixel value.
else : subtract 'x' from pixel value.
(「x」は任意の値です。)したがって、明るいピクセルと暗いピクセルの差が大きくなります。
img = cv2.imread('brain.jpg',0)
bigmask = cv2.compare(img,np.uint8([127]),cv2.CMP_GE)
smallmask = cv2.bitwise_not(bigmask)
x = np.uint8([90])
big = cv2.add(img,x,mask = bigmask)
small = cv2.subtract(img,x,mask = smallmask)
res = cv2.add(big,small)
そして、以下が得られた結果です。