Golang 画像操作: 明るさとコントラストを調整する方法
はじめに:
画像処理において、画像の明るさとコントラストを調整することは非常に一般的なタスクです。 。明るさを調整することで、画像を明るくしたり暗くしたりできます。また、コントラストを調整することで、画像内の色の違いを増減できます。この記事では、Golang を使用して画像の明るさとコントラストを調整する方法とコード例を紹介します。
import ( "image" "image/color" _ "image/jpeg" _ "image/png" "os" )
func loadImage(path string) (image.Image, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() img, _, err := image.Decode(file) if err != nil { return nil, err } return img, nil }
func adjustBrightness(img image.Image, level int) image.Image { bounds := img.Bounds() dest := image.NewRGBA(bounds) for y := bounds.Min.Y; y < bounds.Max.Y; y++ { for x := bounds.Min.X; x < bounds.Max.X; x++ { oldColor := img.At(x, y) r, g, b, a := oldColor.RGBA() r = uint32((int(r) * level) / 100) g = uint32((int(g) * level) / 100) b = uint32((int(b) * level) / 100) newColor := color.RGBA64{uint16(r), uint16(g), uint16(b), uint16(a)} dest.Set(x, y, newColor) } } return dest }
上記のコードでは、ループを使用して画像内の各ピクセルを反復処理し、指定された輝度レベルに従って各ピクセルの RGB コンポーネントを調整します。
func adjustContrast(img image.Image, level int) image.Image { bounds := img.Bounds() dest := image.NewRGBA(bounds) for y := bounds.Min.Y; y < bounds.Max.Y; y++ { for x := bounds.Min.X; x < bounds.Max.X; x++ { oldColor := img.At(x, y) r, g, b, a := oldColor.RGBA() r = uint32(128 + (int(r)-128)*level/100) g = uint32(128 + (int(g)-128)*level/100) b = uint32(128 + (int(b)-128)*level/100) newColor := color.RGBA64{uint16(r), uint16(g), uint16(b), uint16(a)} dest.Set(x, y, newColor) } } return dest }
上記のコードでは、ループを使用して画像内の各ピクセルを反復処理し、指定されたコントラスト レベルに従って各ピクセルの RGB コンポーネントを調整します。
func main() { img, err := loadImage("input.jpg") if err != nil { fmt.Println("Failed to load image:", err) return } brightImg := adjustBrightness(img, 150) contrastImg := adjustContrast(img, 200) saveImage(brightImg, "bright_output.jpg") saveImage(contrastImg, "contrast_output.jpg") }
上記のコードでは、最初にloadImage関数を使用して入力画像をロードし、次にadjustBrightness関数とadjustContrast関数をそれぞれ呼び出して画像の明るさとコントラストを調整します。最後に、saveImage 関数を使用して、調整した画像をファイルに保存します。
概要:
この記事では、Golang を使用して画像の明るさとコントラストを調整する方法を紹介し、対応するコード例を示します。明るさとコントラストを調整することで、画像の視覚効果を改善し、画像処理により多くのテクニックを適用できます。 Golang の画像処理ライブラリを使用すると、これらのタスクを簡単に実装し、独自のプロジェクトに適用できます。
以上がGolang の画像操作: 明るさとコントラストを調整する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。