Python を使用して写真の明るさとコントラストを調整する方法
はじめに:
画像処理において、明るさとコントラストの調整は一般的かつ重要な操作の 1 つです。オペレーション。 Python は、これら 2 つの操作を簡単に実装できる PIL、OpenCV などの豊富な画像処理ライブラリを提供します。この記事では、Python コードを使用して画像の明るさとコントラストを調整する方法と、対応するコード例を紹介します。
パート 1: 画像の明るさを調整する
画像の明るさの調整は、各ピクセルの RGB 値を変更することで実現できます。具体的な方法は、各ピクセルの RGB 値に一定の増分を加算することです。以下は、PIL ライブラリを使用して画像の明るさを調整するサンプル コードです。
from PIL import ImageEnhance # 打开图像 image = Image.open('image.jpg') # 创建Enhancer对象 enhancer = ImageEnhance.Brightness(image) # 调整亮度为原来的2倍 bright_image = enhancer.enhance(2) # 显示图像 bright_image.show() # 保存图像 bright_image.save('bright_image.jpg')
上記のコードでは、まず Image.open() 関数を使用して画像を開き、次に ImageEnhance を使用します。 Brightness() 関数を使用して Enhancer オブジェクトを作成します。次に、Enhancer オブジェクトのenhanced() メソッドを使用して画像の明るさを調整します。パラメータは明るさの倍数を表します。最後に、show() メソッドを呼び出して調整された画像を表示するか、save() メソッドを使用して画像を保存します。
パート 2: 画像コントラストの調整
画像コントラストの調整は、各ピクセルの相対的な明るさを変更することによって実現されます。具体的な方法は、各ピクセルの RGB 値に一定の増分を乗算することです。以下は、OpenCV ライブラリを使用して画像のコントラストを調整するサンプル コードです。
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 提取亮度通道 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) v_channel = hsv_image[:,:,2] # 调整亮度为原来的2倍 contrast_image = cv2.addWeighted(v_channel, 2, np.zeros(v_channel.shape, v_channel.dtype), 0, 0) # 将亮度通道替换回原图像 hsv_image[:,:,2] = contrast_image contrast_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR) # 显示图像 cv2.imshow('contrast_image', contrast_image) cv2.waitKey(0) # 保存图像 cv2.imwrite('contrast_image.jpg', contrast_image)
上記のコードでは、最初に cv2.imread() 関数を使用して画像が読み取られ、次に画像が読み込まれます。 cv2.cvtColor() 関数を使用して変換します。HSV 色空間は明るさの変化により敏感であるため、BGR 色空間から HSV 色空間に変換します。そして、明るさチャンネルhsv_image[:,:,2]を抽出すると、明るさを表す2次元配列v_channelが得られる。
次に、cv2.addWeighted() 関数を使用して、明るさチャンネルを線形に組み合わせてコントラストを調整します。最初のパラメーターは入力イメージを表し、2 番目のパラメーターは明るさの倍数を表し、ここでは 2 に設定します。最後に、調整された輝度チャネルが元の画像に置き換えられ、画像は cv2.cvtColor() 関数を通じて HSV 色空間から BGR 色空間に変換されます。
最後に、調整された画像が cv2.imshow() 関数によって表示され、cv2.waitKey(0) を使用してキーを待機し、cv2.imwrite() 関数を使用して画像を保存します。 。
結論:
上記のコード例を通して、Python を使用して画像の明るさとコントラストを調整するのは非常に簡単で、わずか数行のコードで実現できることがわかります。さまざまなパラメーター設定を通じて、さまざまなレベルの明るさとコントラストを調整して、さまざまなニーズを満たすことができます。実際のアプリケーションでは、特定の状況に応じて適切な調整方法とパラメータを選択して、最良の結果を得ることができます。この記事が読者の画像処理の学習と実践に役立つことを願っています。
以上がPython を使用して画像の明るさとコントラストを調整する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。