-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
59 lines (47 loc) · 1.21 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package main
import (
"image"
"image/color"
"gocv.io/x/gocv"
)
func main() {
// membuat window baru
window := gocv.NewWindow("Belajar Gambar Objek")
defer window.Close()
// membuat canvas
width := 640
height := 480
canvas := gocv.NewMatWithSize(width, height, gocv.MatTypeCV8UC3)
// membuat warna
red := color.RGBA{255, 0, 0, 0}
green := color.RGBA{0, 255, 0, 0}
blue := color.RGBA{0, 0, 255, 0}
purple := color.RGBA{106, 90, 205, 0}
// membuat garis
gocv.Line(&canvas, image.Pt(100, 150), image.Pt(300, 400), red, 1)
// membuat persegi
gocv.Rectangle(&canvas, image.Rect(150, 200, 350, 400), green, 2)
// membuat lingkaran
gocv.Circle(&canvas, image.Pt(220, 250), 80, blue, -1)
// membuat ellips
gocv.Ellipse(&canvas, image.Pt(300, 500), image.Pt(100, 50), 45, 130, 270, purple, 4)
// membuat segitiga
pt1 := image.Pt(150, 100)
pt2 := image.Pt(100, 200)
pt3 := image.Pt(200, 200)
kontur_segitiga := [][]image.Point{
{pt1, pt2, pt3},
}
pv := gocv.NewPointsVectorFromPoints(kontur_segitiga)
defer pv.Close()
gocv.DrawContours(&canvas, pv, 0, green, -1)
// loop
for {
// tampilkan canvas di window
window.IMShow(canvas)
// wait key to press
if window.WaitKey(10) >= 0 {
break
}
}
}