
OpenCV แแบแแถแแแแแถแแแแแแแแแแผแแแถแแแ
แแถแกแพแแแแแแถแแแแแแแแแ
แแแแปแแทแแแแแปแแแแแผแแแแ แแถแโแแถแโแขแถแแปโแแแแ แแโแขแ โแแแแถแโแ แพแแ แแแแปแแแถแแแแแพแแถแแ
แแแแปแแแ แถแแทแแแแถแแแ แ แพแแแ
แแแแแแพแแถแแแแแถแแแแแแแแ C++ แแทแ Python แแแแแแแแปแแแแแแแแถแแถแแแถแแแถแแแแแแแแแขแแแแแถแแแแถแแถแแถแแแแแแ
แแแปแแแแแแ
แแแแแแแแแแปแแ
แถแแแแแแพแแแแ แแทแแแแแพแแแแถแแ Go แแแแปแแแถแแ
แถแแแขแถแแแแแแแแถแแพ OpenCV แขแถแ
แแแแผแแแถแแแแแพแแพแแแแธแแแแพแแถแแแถแแฝแแแถแแถแแแแแแแฌแแแ แแ
โแแแโแแแ แแถแโแงแแถแ แแแ แแทแโแแถแโแแแแแแโแแฝแ
โแ แพแโแขแแแธโแแถแโแแแแพโแแแถแ แแแแแแ แแแปแแแแโแแแแปแโแ แถแแโแแผแ
โแแถโแแแแปแแแแแถแโแแแแ แแแแแทแ
แแแแแแแ แแแแปแแแถแแแพแแแแแแถแแแปแแแแแแแแแพแแกแพแแแแแแแแปแ The Hybrid Groupแ แแ
แแแแปแแขแแแแแแแแ แแแแปแแแนแแแแแ แถแแขแแแแแธแแแแแ
แถแแแแแแพแแแถแแฝแ GoCV แแแแแแแแพแแแแแแแแแแแแแแถแแแแปแแแถแแแแแแถแแฝแ Haar Cascadesแ
Skillbox แแแแถแแ แแแแแแทแแแแถแแถแแแแแแแ .
แแพแแแแแนแแ แแแแแถแแแขแแแแขแถแแแถแแแขแแแแ "Habr" - แแถแแแแแ แปแแแแแแ 10 rubles แแ แแแแ แปแแแแแแแแแแปแแแแแแแทแแแแถ Skillbox แแถแแฝแแแแแแแแพแแแแแผแแแแแแแแแแแถแ "Habr" แ
แขแแแธแแแแแแแผแแแถแแแถแแแถแ:
- แแ ;
- OpenCV (แแแแแแแถแแแแแแแแทแแธแแแกแพแแแถแแแแแแ);
- แแแ แแแแแ แฌแแถแแแแแถแแธแแแขแผแแแแแแถแ
แแถแแแแแแ
- Linux:
- macOS:
- Windows:
แงแแถแ แแแ 1
แแแแปแแงแแถแ แแแแแแแผแ แแพแแแนแแแแแถแแถแแแแแแพแแแแแแแทแแธแแแแแพแแแแแขแฝแ แแแแแแแ แถแแแถแแแแแถแแแธแแแขแผแแถแแแแแถแ
แแแแผแแขแแแแแแแผแแแถแแ แผแแแแแแถแแแแแแแแแแผแแแถแแแแแแถแแแแถแแแถแแ
แแถแแ
แผแ (
"แแแแแแ แแแป"
โgocv.io/x/gocvโ
)
แแแแแถแแแแธแแแ แขแแแแแแแผแแแแแแพแแแแแแป VideoCapture แแแแแแแพแแปแแแถแ VideoCaptureDeviceแ แแแแแแแแแแแแแแพแฑแแแแถแขแถแ แแแแธแแแขแผแแแแแแธแแแแแแแแพแแถแแแแแถแ แแปแแแถแแแแแพแ แแแฝแแแแแแถแแแถแแแถแแแแแแ (แแถแแแแถแแฑแแแแแแแแแแถแแแงแแแแแ)แ
webcam, err := gocv.VideoCaptureDevice(0)
if err != nil { log.Fatalf(โerror opening web cam: %vโ, err)
}
defer webcam.Close()แฅแกแผแแแแแแพแแแแแผแแแแแแพแแแแถแแแแธแ n-dimensional แ แแถแแนแแแแแแถแแปแแแผแแแถแแแแแแถแแขแถแแแธแแถแแแแแถแ
img := gocv.NewMat()
defer img.Close()แแพแแแแธแแแแ แถแแแถแแแแแถแแแธแแแขแผ แขแแแแแแแผแแแแแแพแแแทแแแผ - แแแแขแถแ แแแแผแแแถแแแแแพแแแแแแแพแแปแแแถแ NewWindow แ
window := gocv.NewWindow(โwebcamwindowโ)
defer window.Close()แฅแกแผแแแแแแผแแแแแแแ แแแแแแแแแแฝแแฑแแแ แถแแแขแถแแแแแแแแแแปแแ
แแแแแถแแแธแแแขแผแแบแแถแแถแแแแแแแธแแแถแแแแแแแแแถแแแแแแแปแแแผแแแถแ แแพแแแนแแแแแผแแแถแแแแแแพแแแแแแทแแแปแแแแแถแแแแแแ แแพแแแแธแขแถแแแถแแแแแถแแแธแแแขแผแแแแแแถแแแแแถแแแแแทแแ แแแ แแแ แแพแแแแธแแแแพแแผแ แแแแ แขแแแแแแแผแแแถแแแทแแธแขแถแแแแแแแแแ VideoCapture แ แแถแแนแแแแแนแแแถแแแแแแ Mat (แแแถแแแแธแแแแแแพแแแถแแแแแแพแแแถแแแพ) แแแแกแแแแแแแแแแผแแธแแแแแแแแ แถแแแถแแถแแพแแแปแแแธ VideoCapture แแแแผแแแถแแขแถแแแแแแแแแแแฌแขแแแ
for {
if ok := webcam.Read(&img); !ok || img.Empty( {
log.Println(โUnable to read from the webcamโ) continue
}
.
.
.
}แฅแกแผแแขแแแแแแแผแแแแแ แถแแแแปแแแ แแแแปแแแแแขแฝแ แแแแแถแแแแแแพแแ แแถแแแแขแถแแแแแแถแแแแถแแแแแถแแแแธแแ แแแปแแแแแแถแแแแบ 50 ms แ
window.IMShow(img)
window.WaitKey(50)
แแแแแถแแแแธแแพแแแแแพแแแถแแแแแแแทแแธ แแแแขแฝแ แแแแแถแแแแแแแธแแแธแแแขแผแแธแแถแแแแแถแแนแแแพแแ

package main
import (
"log"
"gocv.io/x/gocv"
)
func main() {
webcam, err := gocv.VideoCaptureDevice(0)
if err != nil {
log.Fatalf("error opening device: %v", err)
}
defer webcam.Close()
img := gocv.NewMat()
defer img.Close()
window := gocv.NewWindow("webcamwindow")
defer window.Close()
for {
if ok := webcam.Read(&img); !ok || img.Empty() {
log.Println("Unable to read from the webcam")
continue
}
window.IMShow(img)
window.WaitKey(50)
}
}แงแแถแ แแแ 2
แแแแปแแงแแถแ แแแแแแ แ แผแแแพแแแแแพแงแแถแ แแแแแปแ แ แพแแแแแแพแแแแแแแแแแแแแแถแแแแปแแแแแแแขแแแแพ Haar Cascadesแ
Haar cascades แแบแแถแแแแแแ cascade แแแแแแแผแแแถแแแแแแปแแแแแแถแแแแแแแแพแแ แแ แแแแแแแแ Haar แ แแฝแแแแแทแแถแแแธแแแแแแแแปแแแผแแแถแ แแพแแแแธแแแแแแแแแแแแแแแทแแแแแฝแแ แแแฝแแ แแพแแแแธแแแแแแแแแแแแแแแขแแแธ Haar Cascades แแผแแ แผแแแ แแถแแแแแแแแแถแแแแถแแแแแแแ
แแถแแแ cascades แแแแแถแแแแแแปแแแแแแถแแแฝแ แ แพแ . แแแแปแแงแแถแ แแแแแ แแ แปแแแแแแ แแแแถแแแแนแแแแแผแแแถแแแแแพแแพแแแแธแแแแแแแปแแแถแแแแแแแแแปแแแแแธแแถแแแปแแ
แแพแแแแธแแแแพแแผแ แแแแแแถแ แขแแแแแแแผแแแแแแพแแขแแแแ แถแแแแแแถแแแแฝแ แ แพแแ แทแแแ แนแแแถแแถแฏแแแถแแแแแแถแแแแแแปแแแแแแถแแแฝแ แ แพแ (แแแแแแแถแแแแแแผแแแถแแแแแแแฑแแแแถแแแพ)แ แแแแปแแแถแแแแแ แแแฏแแแถแ pencv_haarcascade_frontalface_default.xml แแฝแ แ แพแแแ แแถแแแแแแแแแแแแแทแแธแแแแแแพแแแแแทแแแ แ
harrcascade := โopencv_haarcascade_frontalface_default.xmlโclassifier := gocv.NewCascadeClassifier()classifier.Load(harrcascade)
defer classifier.Close()แแพแแแแธแแแแแแแแแปแแแ แแแแปแแแผแแแถแ แขแแแแแแแผแแแแแพแแทแแธแแถแแแแแ . แแปแแแถแแแแแแแแแปแแแฝแ (แแแแแแ Mat) แแแแแพแแแแแถแแขแถแแแธแแถแแแแแแแธแแแธแแแขแผแแแแแแถแแแแแถ แ แพแแแแแกแแแขแถแแแแแแแแแแแ แแปแแแแแแแ แแแ แแขแถแแแแแแถแแฑแแแ แแแฝแแแปแแแแแขแแแแ แถแแแแแแถแแแขแถแ แแแแพแแแ แแแแปแแแแปแแ แแแแแถแแแแ แแพแแแแธแแแแถแแแแถแแพแแแพแแขแแแธแแแแแถแแถแแแแแพแ แ แผแแแพแแแแแพแแแแแแแแแถแแแแแแแแแธแ แแปแแแแแแ แ แพแแแแแแปแแแแแแแแปแ แแปแแแแแแแแ แแปแแแผแ แแแแแแแแพแแแแปแแแปแแแทแแ แแปแแแแแแแแแแแถแแแแแพแแ แแแแขแถแ แแแแผแแแถแแแแแพแแแแแแแพแแปแแแถแแ แแปแแแแ แแถโแแนแโแแแฝแโแแ Mat แแแโแแถแโแขแถแโแแแโแแถแแแแแถ แแแแแปโแ แแปแแแโแแแโแแแแผแโแแถแโแแแแกแแโแแแโแแทแแธแแถแแแแแ DetectMultiScale แแแ แแทแโแแแแแถแแโแแแแแถแแโแแแปแแ
for _, r := range rects {
fmt.Println(โdetectedโ, r)
gocv.Rectangle(&img, r, color, 2)
} 

package main
import (
"fmt"
"image/color"
"log"
"gocv.io/x/gocv"
)
func main() {
webcam, err := gocv.VideoCaptureDevice(0)
if err != nil {
log.Fatalf("error opening web cam: %v", err)
}
defer webcam.Close()
img := gocv.NewMat()
defer img.Close()
window := gocv.NewWindow("webcamwindow")
defer window.Close()
harrcascade := "opencv_haarcascade_frontalface_default.xml"
classifier := gocv.NewCascadeClassifier()
classifier.Load(harrcascade)
defer classifier.Close()
color := color.RGBA{0, 255, 0, 0}
for {
if ok := webcam.Read(&img); !ok || img.Empty() {
log.Println("Unable to read from the device")
continue
}
rects := classifier.DetectMultiScale(img)
for _, r := range rects {
fmt.Println("detected", r)
gocv.Rectangle(&img, r, color, 3)
}
window.IMShow(img)
window.WaitKey(50)
}
}แ แพแ... แแถแ แขแแแธแแแถแแแแแพแแแถแแ แพแ! แฅแกแผแแแแ แแพแแแถแแแแแแแแแแแแแแถแแแแปแแแถแแแแแแฝแ แแแแแแแแแแแแปแ Go แ แแถแแแแแแ แแแแปแแแถแแแแแแแแแแแแแถแแแทแแแแแแแถแแแแแ แแทแแแแแแพแแขแแแธแแแแแแแธแ แแแแแถแแแฝแแแแแ แผแแแแแถแแแถแ Go แแทแ OpenCV แ
แแแแแทแแแพแขแแแแ แถแแแขแถแแแแแแแแผแแแถแแแแแแ แแแแแแแปแแแถแแแแแแแแ แแแแปแ Python แแทแ OpenCV แ แแถแแแแแแธแแแทแแแแแแแแ แแแแแแแแปแแแแแผแแแถแแแแแพแแ แแแแแบแแถแแผแแแแแถแแแแแแถแแแแแแแพแแขแแทแแทแแแแแแแแแแแแถแแถแแถแแถแแแแแแแแแแแทแแธแแแแแแแแแแถแ แแฝแแแแแนแแขแถแ แแแแถแแแแ แแแถแแแธแแแ แแทแแขแถแแแทแแแแแแแแธแแถแ
แแผแแขแแแปแแแแแแถแแแแถแแขแถแแขแแแแแ!
Skillbox แแแแถแแ
- แแแแแแทแแแแถแแถแแแแแแแแแแแแแแแธแแแแแถแ .
- แแแแแแทแแแแถแแถแแขแแธแแแบแแทแ .
- แแแแแแทแแแแถแแถแแแแแแแแแแแถแ .
แแแแแ: www.habr.com
