


Manipulasi imej Golang: cara menskala kelabu dan melaraskan kecerahan imej
Kendalian Imej Golang: Cara Melaraskan Skala Kelabu dan Kecerahan Imej
Pengenalan:
Dalam proses pemprosesan imej, selalunya perlu melakukan pelbagai operasi pada imej, seperti skala kelabu imej dan pelarasan kecerahan. Di Golang, kami boleh mencapai operasi ini dengan menggunakan perpustakaan pihak ketiga. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaraskan imej skala kelabu dan kecerahan serta melampirkan contoh kod yang sepadan.
1. Skala kelabu imej
Skala kelabu imej ialah proses menukar imej berwarna kepada imej skala kelabu. Dalam proses skala kelabu imej, kita perlu menukar setiap piksel dalam imej kepada nilai skala kelabu yang sepadan melalui algoritma tertentu. Seterusnya, kami akan menggunakan go-opencv perpustakaan pihak ketiga Golang untuk mencapai skala kelabu imej.
Mula-mula, masukkan arahan berikut dalam terminal untuk memasang perpustakaan go-opencv:
go get -u github.com/lazywei/go-opencv
Seterusnya, kami akan menunjukkan contoh kod cara menskala kelabu imej:
package main import ( "fmt" "github.com/lazywei/go-opencv/opencv" ) func main() { imagePath := "test.jpg" // 通过go-opencv的LoadImage方法读取图片 image := opencv.LoadImage(imagePath) defer image.Release() // 使用go-opencv的CvtColor方法将图片转为灰度图像 grayImage := opencv.CreateImage(image.Width(), image.Height(), 8, 1) opencv.CvtColor(image, grayImage, opencv.CV_BGR2GRAY) // 保存灰度图像 outputPath := "output_gray.jpg" opencv.SaveImage(outputPath, grayImage, 0) fmt.Printf("Gray image saved to: %s ", outputPath) }
Kod di atas mula-mula memuatkan imej berwarna dan kemudian menggunakan Kaedah CvtColor menukar imej kepada skala kelabu. Akhir sekali, simpan imej skala kelabu yang dijana ke laluan keluaran yang ditentukan.
2. Pelarasan kecerahan
Pelarasan kecerahan merujuk kepada mengubah suai tahap kecerahan keseluruhan imej. Di Golang, kita boleh menggunakan perpustakaan pihak ketiga github.com/nfnt/resize untuk melaraskan kecerahan imej.
Mula-mula, masukkan arahan berikut dalam terminal untuk memasang perpustakaan nfnt/resize:
go get -u github.com/nfnt/resize
Seterusnya, kami akan menunjukkan contoh kod cara melaraskan kecerahan imej:
package main import ( "fmt" "image" "image/color" "github.com/nfnt/resize" ) func main() { imagePath := "test.jpg" // 使用Golang内置的image包加载图片 img, err := loadImage(imagePath) if err != nil { fmt.Printf("Failed to load image: %s ", err) return } // 调整图片亮度 brightness := 50 brightImage := adjustBrightness(img, brightness) // 保存亮度调整后的图片 outputPath := "output_bright.jpg" saveImage(outputPath, brightImage) fmt.Printf("Brightness adjusted image saved to: %s ", outputPath) } // 加载图片 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, brightness int) image.Image { b := img.Bounds() dst := image.NewRGBA(b) for y := 0; y < b.Max.Y; y++ { for x := 0; x < b.Max.X; x++ { oldColor := img.At(x, y) r, g, b, _ := oldColor.RGBA() newR := uint8(clamp(int(r)+brightness, 0, 0xffff)) newG := uint8(clamp(int(g)+brightness, 0, 0xffff)) newB := uint8(clamp(int(b)+brightness, 0, 0xffff)) newColor := color.RGBA{newR, newG, newB, 0xff} dst.Set(x, y, newColor) } } return dst } // 保存图片 func saveImage(path string, img image.Image) { file, err := os.Create(path) if err != nil { fmt.Printf("Failed to save image: %s ", err) return } defer file.Close() png.Encode(file, img) } // 辅助函数,限定数值在指定范围内 func clamp(value, min, max int) int { if value < min { return min } if value > max { return max } return value }
Kod di atas mula-mula memuatkan imej berwarna, dan kemudian berdasarkan yang diberikan Laraskan kecerahan gambar dengan parameter kecerahan yang ditentukan, dan simpan gambar yang dilaraskan ke laluan output yang ditentukan.
Ringkasan:
Artikel ini memperkenalkan cara menggunakan Golang kepada skala kelabu dan melaraskan kecerahan imej. Dengan menggunakan perpustakaan pihak ketiga, kami boleh melaksanakan operasi pemprosesan imej ini dengan mudah. Saya harap contoh kod dalam artikel ini akan membantu anda untuk pemprosesan imej di Golang.
Atas ialah kandungan terperinci Manipulasi imej Golang: cara menskala kelabu dan melaraskan kecerahan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Artikel ini memperkenalkan pelbagai kaedah dan alat untuk memantau pangkalan data PostgreSQL di bawah sistem Debian, membantu anda memahami pemantauan prestasi pangkalan data sepenuhnya. 1. Gunakan PostgreSQL untuk membina pemantauan PostgreSQL sendiri menyediakan pelbagai pandangan untuk pemantauan aktiviti pangkalan data: PG_STAT_ACTIVITY: Memaparkan aktiviti pangkalan data dalam masa nyata, termasuk sambungan, pertanyaan, urus niaga dan maklumat lain. PG_STAT_REPLITI: Memantau status replikasi, terutamanya sesuai untuk kluster replikasi aliran. PG_STAT_DATABASE: Menyediakan statistik pangkalan data, seperti saiz pangkalan data, masa komitmen/masa rollback transaksi dan petunjuk utama lain. 2. Gunakan alat analisis log pgbadg

Artikel ini membincangkan perintah Go FMT dalam pengaturcaraan GO, yang format kod untuk mematuhi garis panduan gaya rasmi. Ia menyoroti kepentingan GO FMT untuk mengekalkan konsistensi kod, kebolehbacaan, dan mengurangkan perdebatan gaya. Amalan terbaik untuk

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...
