


Golang-Bildmanipulation: Wie man Bilder in Graustufen umwandelt und die Helligkeit anpasst
Golang-Bildoperation: So passen Sie Graustufen und Helligkeit des Bildes an
Einführung:
Beim Bildverarbeitungsprozess ist es häufig erforderlich, verschiedene Vorgänge am Bild durchzuführen, wie z. B. die Graustufen- und Helligkeitsanpassung des Bildes. In Golang können wir diese Vorgänge mithilfe von Bibliotheken von Drittanbietern erreichen. In diesem Artikel wird erläutert, wie Sie mit Golang Graustufen und Helligkeit von Bildern anpassen und entsprechende Codebeispiele beifügen.
1. Bild-Graustufen
Bild-Graustufen ist der Prozess der Umwandlung eines Farbbildes in ein Graustufenbild. Bei der Bildgrauskala müssen wir jedes Pixel im Bild durch einen bestimmten Algorithmus in den entsprechenden Graustufenwert umwandeln. Als Nächstes verwenden wir Golangs Drittanbieter-Bibliothek go-opencv, um Bildgraustufen zu erreichen.
Geben Sie zunächst den folgenden Befehl in das Terminal ein, um die go-opencv-Bibliothek zu installieren:
go get -u github.com/lazywei/go-opencv
Als nächstes zeigen wir ein Codebeispiel für die Grauskalierung eines Bildes:
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) }
Der obige Code lädt zuerst ein Farbbild und dann Verwendet die CvtColor-Methode, um das Bild in Graustufen umzuwandeln. Speichern Sie abschließend das generierte Graustufenbild im angegebenen Ausgabepfad.
2. Helligkeitsanpassung
Helligkeitsanpassung bezieht sich auf die Änderung der Gesamthelligkeit des Bildes. In Golang können wir die Drittanbieterbibliothek github.com/nfnt/resize verwenden, um die Helligkeit des Bildes anzupassen.
Geben Sie zunächst den folgenden Befehl in das Terminal ein, um die nfnt/resize-Bibliothek zu installieren:
go get -u github.com/nfnt/resize
Als nächstes zeigen wir ein Codebeispiel zum Anpassen der Bildhelligkeit:
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 }
Der obige Code lädt zunächst ein Farbbild. und dann basierend auf den angegebenen Helligkeitsparametern die Helligkeit des Bildes anpassen und das angepasste Bild im angegebenen Ausgabepfad speichern.
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit Golang Graustufen und Helligkeit von Bildern anpassen. Durch die Verwendung von Bibliotheken von Drittanbietern können wir diese Bildverarbeitungsvorgänge problemlos implementieren. Ich hoffe, dass die Codebeispiele in diesem Artikel Ihnen bei der Bildverarbeitung in Golang hilfreich sein werden.
Das obige ist der detaillierte Inhalt vonGolang-Bildmanipulation: Wie man Bilder in Graustufen umwandelt und die Helligkeit anpasst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Backend Learning Path: Die Erkundungsreise von Front-End zu Back-End als Back-End-Anfänger, der sich von der Front-End-Entwicklung verwandelt, Sie haben bereits die Grundlage von Nodejs, ...

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

In diesem Artikel werden eine Vielzahl von Methoden und Tools eingeführt, um PostgreSQL -Datenbanken im Debian -System zu überwachen, um die Datenbankleistung vollständig zu erfassen. 1. verwenden Sie PostgreSQL, um die Überwachungsansicht zu erstellen. PostgreSQL selbst bietet mehrere Ansichten für die Überwachung von Datenbankaktivitäten: PG_STAT_ACTIVITY: Zeigt Datenbankaktivitäten in Echtzeit an, einschließlich Verbindungen, Abfragen, Transaktionen und anderen Informationen. PG_STAT_REPLIKATION: Monitore Replikationsstatus, insbesondere für Stream -Replikationscluster. PG_STAT_DATABASE: Bietet Datenbankstatistiken wie Datenbankgröße, Transaktionsausschüsse/Rollback -Zeiten und andere Schlüsselindikatoren. 2. Verwenden Sie das Log -Analyse -Tool PGBADG

Wie kann man im Beegoorm -Framework die mit dem Modell zugeordnete Datenbank angeben? In vielen BeEGO -Projekten müssen mehrere Datenbanken gleichzeitig betrieben werden. Bei Verwendung von BeEGO ...

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...
