Rumah > pembangunan bahagian belakang > Golang > Kaedah Golang untuk merealisasikan latar belakang gambar yang kabur dan pengecaman muka

Kaedah Golang untuk merealisasikan latar belakang gambar yang kabur dan pengecaman muka

WBOY
Lepaskan: 2023-08-19 21:21:17
asal
1248 orang telah melayarinya

Kaedah Golang untuk merealisasikan latar belakang gambar yang kabur dan pengecaman muka

Kaedah Golang mengaburkan latar belakang gambar dan pengecaman muka

Pengenalan:
Pemprosesan gambar adalah keperluan yang sangat biasa dalam beberapa senario aplikasi, kita perlu mengaburkan latar belakang gambar pada masa yang sama , pengecaman muka juga digunakan secara meluas dalam bidang seperti pengesanan titik kunci muka dan perbandingan muka. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan latar belakang kabur imej dan pengecaman muka serta melampirkan contoh kod untuk membantu pembaca memahami dan menerapkannya dengan lebih baik.

1. Latar belakang kabur gambar
Di Golang, kami boleh menggunakan perpustakaan pihak ketiga goimageblur untuk mencapai kesan latar belakang kabur gambar. Berikut ialah langkah asas untuk menggunakan perpustakaan:

  1. Pasang perpustakaan goimageblur
    Laksanakan arahan berikut untuk memasang perpustakaan goimageblur:

pergi dapatkan github.com/internet-dev/goimageblur

  1. Perkenalkan pustaka dan perlu
    Dalam kod Perkenalkan perpustakaan goimageblur dan pakej yang diperlukan:

import (

"github.com/internet-dev/goimageblur"
"image"
_ "image/jpeg"
"os"
Salin selepas log masuk

)

  1. Buka fail imej
    Gunakan kaedah Buka perpustakaan os untuk membuka fail imej, dan semak sama ada sebarang ralat berlaku:

fail, err := os .Open("input.jpg")
if err != nil {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

tunda fail.Close() // Tutup fail

  1. Baca maklumat imej
    kaedah Nyahkod pustaka imej untuk membaca maklumat imej , dan semak jika ralat berlaku:

img, _, err := image.Decode(file)
if err != nil {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

  1. Achieve kesan kabur latar belakang
    Gunakan kaedah Kabur perpustakaan goimageblur untuk melaksanakan Kesan kabur latar belakang imej:

blurImg := goimageblur.Blur(img, 10) // Jejari kabur ialah 10

  1. Simpan imej kabur
    Gunakan kaedah Encode pustaka imej untuk menyimpan imej kabur sebagai fail:

outputFile, err := os.Create("output.jpg")
if err != nil {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

tunda keluaranFail .Close() // Tutup fail

err = jpeg.Encode(outputFile , blurImg, nil)
if err != nil {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

Dengan cara ini, kami telah melaksanakan kaedah mengaburkan latar belakang gambar menggunakan Golang.

2. Pengecaman muka
Di Golang, kami boleh menggunakan perpustakaan pihak ketiga go-opencv untuk melaksanakan pengecaman muka. Berikut ialah langkah asas untuk menggunakan perpustakaan ini:

  1. Pasang perpustakaan go-opencv
    Jalankan arahan berikut untuk memasang perpustakaan go-opencv:

go get -u -d gocv.io/x/gocv

cd $GOPATH/src /gocv.io/x/gocv

make install

  1. Perkenalkan perpustakaan dan pakej yang diperlukan
    Perkenalkan perpustakaan go-opencv dan pakej yang diperlukan ke dalam kod:

import (

)
"gocv.io/x/gocv"
"image"
_ "image/jpeg"
"os"
Salin selepas log masuk

Buka fail imej
    Gunakan kaedah OpenVideoCapture pustaka gocv untuk membuka fail imej dan semak sama ada ralat berlaku:

  1. fail, err := gocv.OpenVideoCapture("input.jpg")
jika err != tiada {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

tunda fail.Close() // Tutup fail

Baca pengelas muka
    Gunakan kaedah NewCascadeClassifier pustaka gocv untuk membaca fail pengelas muka Fail boleh dimuat turun daripada rasmi OpenCV tapak web:

  1. faceCascade := gocv. NewCascadeClassifier()
if !faceCascade.Load("haarcascade_frontalface_default.xml") {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

Baca semula kaedah pustaka
  1. Baca kaedah pustaka
    maklumat imej dan semak sama ada berlaku sebarang ralat:

img := gocv.IMRead("input.jpg", gocv.IMReadColor)
if img.Empty() {

// 错误处理
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

  1. Laksanakan pengecaman muka
    Kaedah DetectMultiScale pustaka gocv untuk melaksanakan pengecaman muka:

grayImg := gocv.NewMat()
gocv.CvtColor(img, &grayImg, gocv.ColorBGRToGray)

faces.DetectCaltimgS.

untuk _, face := range faces {

gocv.Rectangle(&img, face, color.RGBA{0, 255, 0, 0}, 3)
Salin selepas log masuk
}

    Paparkan hasil pengecaman
  1. Gunakan kaedah IMShow pustaka gocv untuk memaparkan hasil pengecaman:
window := gocv.NewWindow"

Detection(dow) IMShow(img)
gocv.WaitKey(0)
window.Close()

Dengan cara ini, kami telah melaksanakan kaedah pengecaman muka menggunakan Golang.

Kesimpulan:

Artikel ini memperkenalkan kaedah penggunaan Golang untuk merealisasikan latar belakang kabur dan pengecaman muka imej, dan melampirkan contoh kod yang sepadan. Dengan mempelajari dan menggunakan kaedah ini, kami boleh memproses imej dengan lebih baik dan menerapkannya pada projek sebenar. Saya harap artikel ini dapat membantu pembaca lebih memahami dan menggunakan Golang untuk pemprosesan imej dan pengecaman muka.

Atas ialah kandungan terperinci Kaedah Golang untuk merealisasikan latar belakang gambar yang kabur dan pengecaman muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan