build: upgrade to go 1.18 and dependencies
refs robocars/robocar-setup#3
This commit is contained in:
parent
d1788152f7
commit
48e75c1346
@ -1,6 +1,6 @@
|
|||||||
ARG OPENCV_VERSION=v4.5.3
|
ARG OPENCV_VERSION=v4.5.3
|
||||||
|
|
||||||
FROM docker.io/golang:1.17-alpine as gobuilder
|
FROM docker.io/golang:1.18-alpine as gobuilder
|
||||||
|
|
||||||
|
|
||||||
FROM docker.io/cyrilix/opencv-buildstage:${OPENCV_VERSION} as builder
|
FROM docker.io/cyrilix/opencv-buildstage:${OPENCV_VERSION} as builder
|
||||||
|
@ -7,7 +7,7 @@ TAG=$(git describe)
|
|||||||
FULL_IMAGE_NAME=docker.io/cyrilix/${IMAGE_NAME}:${TAG}
|
FULL_IMAGE_NAME=docker.io/cyrilix/${IMAGE_NAME}:${TAG}
|
||||||
OPENCV_VERSION=4.5.5
|
OPENCV_VERSION=4.5.5
|
||||||
SRC_CMD=./cmd/$BINARY_NAME
|
SRC_CMD=./cmd/$BINARY_NAME
|
||||||
GOLANG_VERSION=1.17
|
GOLANG_VERSION=1.18
|
||||||
|
|
||||||
image_build(){
|
image_build(){
|
||||||
local containerName=builder
|
local containerName=builder
|
||||||
@ -131,4 +131,4 @@ image_build
|
|||||||
# push image
|
# push image
|
||||||
image_final
|
image_final
|
||||||
printf "\n\nPush manifest to %s\n\n" ${FULL_IMAGE_NAME}
|
printf "\n\nPush manifest to %s\n\n" ${FULL_IMAGE_NAME}
|
||||||
buildah manifest push --rm -f v2s2 "localhost/$IMAGE_NAME" "docker://$FULL_IMAGE_NAME" --all
|
buildah manifest push --rm -f v2s2 "localhost/$IMAGE_NAME" "docker://$FULL_IMAGE_NAME" --all
|
||||||
|
6
go.mod
6
go.mod
@ -1,14 +1,14 @@
|
|||||||
module github.com/cyrilix/robocar-camera
|
module github.com/cyrilix/robocar-camera
|
||||||
|
|
||||||
go 1.17
|
go 1.18
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cyrilix/robocar-base v0.1.6
|
github.com/cyrilix/robocar-base v0.1.6
|
||||||
github.com/cyrilix/robocar-protobuf/go v1.0.4
|
github.com/cyrilix/robocar-protobuf/go v1.0.4
|
||||||
github.com/eclipse/paho.mqtt.golang v1.3.5
|
github.com/eclipse/paho.mqtt.golang v1.3.5
|
||||||
github.com/golang/protobuf v1.5.2
|
github.com/golang/protobuf v1.5.2
|
||||||
go.uber.org/zap v1.19.1
|
go.uber.org/zap v1.21.0
|
||||||
gocv.io/x/gocv v0.29.0
|
gocv.io/x/gocv v0.30.0
|
||||||
google.golang.org/protobuf v1.27.1
|
google.golang.org/protobuf v1.27.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
95
go.sum
95
go.sum
@ -1,13 +1,5 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
|
||||||
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
|
|
||||||
github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
|
|
||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
|
||||||
github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
|
||||||
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
|
||||||
github.com/cyrilix/robocar-base v0.1.6 h1:VVcSZD8DPsha3XDLxRBMvtcd6uC8CcIjqbxG482dxvo=
|
github.com/cyrilix/robocar-base v0.1.6 h1:VVcSZD8DPsha3XDLxRBMvtcd6uC8CcIjqbxG482dxvo=
|
||||||
github.com/cyrilix/robocar-base v0.1.6/go.mod h1:m5ov/7hpRHi0yMp2prKafL6UEsM2O71Uea85WR0/jjI=
|
github.com/cyrilix/robocar-base v0.1.6/go.mod h1:m5ov/7hpRHi0yMp2prKafL6UEsM2O71Uea85WR0/jjI=
|
||||||
github.com/cyrilix/robocar-protobuf/go v1.0.4 h1:XTolFYbiKw4gQ2l+z/LMZkLrmAUMzlHcQBzp/czlANo=
|
github.com/cyrilix/robocar-protobuf/go v1.0.4 h1:XTolFYbiKw4gQ2l+z/LMZkLrmAUMzlHcQBzp/czlANo=
|
||||||
@ -15,125 +7,60 @@ github.com/cyrilix/robocar-protobuf/go v1.0.4/go.mod h1:1fyGMVm4ZodfYRrbWCEQgtvK
|
|||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
|
||||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
|
||||||
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
|
||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/eclipse/paho.mqtt.golang v1.3.5 h1:sWtmgNxYM9P2sP+xEItMozsR3w0cqZFlqnNN1bdl41Y=
|
github.com/eclipse/paho.mqtt.golang v1.3.5 h1:sWtmgNxYM9P2sP+xEItMozsR3w0cqZFlqnNN1bdl41Y=
|
||||||
github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
|
github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
|
||||||
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
|
|
||||||
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
|
|
||||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
|
||||||
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
|
|
||||||
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
|
|
||||||
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
|
|
||||||
github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
|
||||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
|
||||||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
|
||||||
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
||||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
|
||||||
github.com/hybridgroup/mjpeg v0.0.0-20140228234708-4680f319790e/go.mod h1:eagM805MRKrioHYuU7iKLUyFPVKqVV6um5DAvCkUtXs=
|
github.com/hybridgroup/mjpeg v0.0.0-20140228234708-4680f319790e/go.mod h1:eagM805MRKrioHYuU7iKLUyFPVKqVV6um5DAvCkUtXs=
|
||||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
|
|
||||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
|
||||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
|
||||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
|
||||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
|
||||||
github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
|
||||||
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
|
||||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/testcontainers/testcontainers-go v0.9.0/go.mod h1:b22BFXhRbg4PJmeMVWh6ftqjyZHgiIl3w274e9r3C2E=
|
|
||||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
|
|
||||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
|
|
||||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723 h1:sHOAIxRGBp443oHZIPB+HsUGaksVCXVQENPxwTfQdH4=
|
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
||||||
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||||
go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
|
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
|
||||||
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
|
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
||||||
gocv.io/x/gocv v0.29.0 h1:Zg5ZoIFSY4oBehoIRoSaSeY+KF+nvqv1O1qNmALiMec=
|
gocv.io/x/gocv v0.30.0 h1:r8RU4w0lfa65NdftHEeBtrDxCCLRDu1H7X3aI37IOtk=
|
||||||
gocv.io/x/gocv v0.29.0/go.mod h1:oc6FvfYqfBp99p+yOEzs9tbYF9gOrAQSeL/dyIPefJU=
|
gocv.io/x/gocv v0.30.0/go.mod h1:oc6FvfYqfBp99p+yOEzs9tbYF9gOrAQSeL/dyIPefJU=
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200425230154-ff2c4b7c35a0/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200425230154-ff2c4b7c35a0/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180810170437-e96c4e24768d/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
@ -143,24 +70,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
|
|||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
|
||||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gotest.tools v0.0.0-20181223230014-1083505acf35/go.mod h1:R//lfYlUuTOTfblYI3lGoAAAebUdzjvbmQsuB7Ykd90=
|
|
||||||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
|
12
vendor/go.uber.org/zap/.readme.tmpl
generated
vendored
12
vendor/go.uber.org/zap/.readme.tmpl
generated
vendored
@ -96,14 +96,14 @@ Released under the [MIT License](LICENSE.txt).
|
|||||||
|
|
||||||
<sup id="footnote-versions">1</sup> In particular, keep in mind that we may be
|
<sup id="footnote-versions">1</sup> In particular, keep in mind that we may be
|
||||||
benchmarking against slightly older versions of other packages. Versions are
|
benchmarking against slightly older versions of other packages. Versions are
|
||||||
pinned in zap's [glide.lock][] file. [↩](#anchor-versions)
|
pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions)
|
||||||
|
|
||||||
[doc-img]: https://godoc.org/go.uber.org/zap?status.svg
|
[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap
|
||||||
[doc]: https://godoc.org/go.uber.org/zap
|
[doc]: https://pkg.go.dev/go.uber.org/zap
|
||||||
[ci-img]: https://travis-ci.com/uber-go/zap.svg?branch=master
|
[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg
|
||||||
[ci]: https://travis-ci.com/uber-go/zap
|
[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml
|
||||||
[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg
|
[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg
|
||||||
[cov]: https://codecov.io/gh/uber-go/zap
|
[cov]: https://codecov.io/gh/uber-go/zap
|
||||||
[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks
|
[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks
|
||||||
[glide.lock]: https://github.com/uber-go/zap/blob/master/glide.lock
|
[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod
|
||||||
|
|
||||||
|
50
vendor/go.uber.org/zap/CHANGELOG.md
generated
vendored
50
vendor/go.uber.org/zap/CHANGELOG.md
generated
vendored
@ -3,9 +3,57 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## 1.21.0 (7 Feb 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#1047][]: Add `zapcore.ParseLevel` to parse a `Level` from a string.
|
||||||
|
* [#1048][]: Add `zap.ParseAtomicLevel` to parse an `AtomicLevel` from a
|
||||||
|
string.
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
* [#1058][]: Fix panic in JSON encoder when `EncodeLevel` is unset.
|
||||||
|
|
||||||
|
Other changes:
|
||||||
|
* [#1052][]: Improve encoding performance when the `AddCaller` and
|
||||||
|
`AddStacktrace` options are used together.
|
||||||
|
|
||||||
|
[#1047]: https://github.com/uber-go/zap/pull/1047
|
||||||
|
[#1048]: https://github.com/uber-go/zap/pull/1048
|
||||||
|
[#1052]: https://github.com/uber-go/zap/pull/1052
|
||||||
|
[#1058]: https://github.com/uber-go/zap/pull/1058
|
||||||
|
|
||||||
|
Thanks to @aerosol and @Techassi for their contributions to this release.
|
||||||
|
|
||||||
|
## 1.20.0 (4 Jan 2022)
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
* [#989][]: Add `EncoderConfig.SkipLineEnding` flag to disable adding newline
|
||||||
|
characters between log statements.
|
||||||
|
* [#1039][]: Add `EncoderConfig.NewReflectedEncoder` field to customize JSON
|
||||||
|
encoding of reflected log fields.
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
* [#1011][]: Fix inaccurate precision when encoding complex64 as JSON.
|
||||||
|
* [#554][], [#1017][]: Close JSON namespaces opened in `MarshalLogObject`
|
||||||
|
methods when the methods return.
|
||||||
|
* [#1033][]: Avoid panicking in Sampler core if `thereafter` is zero.
|
||||||
|
|
||||||
|
Other changes:
|
||||||
|
* [#1028][]: Drop support for Go < 1.15.
|
||||||
|
|
||||||
|
[#554]: https://github.com/uber-go/zap/pull/554
|
||||||
|
[#989]: https://github.com/uber-go/zap/pull/989
|
||||||
|
[#1011]: https://github.com/uber-go/zap/pull/1011
|
||||||
|
[#1017]: https://github.com/uber-go/zap/pull/1017
|
||||||
|
[#1028]: https://github.com/uber-go/zap/pull/1028
|
||||||
|
[#1033]: https://github.com/uber-go/zap/pull/1033
|
||||||
|
[#1039]: https://github.com/uber-go/zap/pull/1039
|
||||||
|
|
||||||
|
Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release.
|
||||||
|
|
||||||
## 1.19.1 (8 Sep 2021)
|
## 1.19.1 (8 Sep 2021)
|
||||||
|
|
||||||
### Fixed
|
Bugfixes:
|
||||||
* [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon.
|
* [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon.
|
||||||
* [#1003][]: JSON: Fix inaccurate precision when encoding float32.
|
* [#1003][]: JSON: Fix inaccurate precision when encoding float32.
|
||||||
|
|
||||||
|
44
vendor/go.uber.org/zap/README.md
generated
vendored
44
vendor/go.uber.org/zap/README.md
generated
vendored
@ -66,38 +66,38 @@ Log a message and 10 fields:
|
|||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 862 ns/op | +0% | 5 allocs/op
|
| :zap: zap | 2900 ns/op | +0% | 5 allocs/op
|
||||||
| :zap: zap (sugared) | 1250 ns/op | +45% | 11 allocs/op
|
| :zap: zap (sugared) | 3475 ns/op | +20% | 10 allocs/op
|
||||||
| zerolog | 4021 ns/op | +366% | 76 allocs/op
|
| zerolog | 10639 ns/op | +267% | 32 allocs/op
|
||||||
| go-kit | 4542 ns/op | +427% | 105 allocs/op
|
| go-kit | 14434 ns/op | +398% | 59 allocs/op
|
||||||
| apex/log | 26785 ns/op | +3007% | 115 allocs/op
|
| logrus | 17104 ns/op | +490% | 81 allocs/op
|
||||||
| logrus | 29501 ns/op | +3322% | 125 allocs/op
|
| apex/log | 32424 ns/op | +1018% | 66 allocs/op
|
||||||
| log15 | 29906 ns/op | +3369% | 122 allocs/op
|
| log15 | 33579 ns/op | +1058% | 76 allocs/op
|
||||||
|
|
||||||
Log a message with a logger that already has 10 fields of context:
|
Log a message with a logger that already has 10 fields of context:
|
||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 126 ns/op | +0% | 0 allocs/op
|
| :zap: zap | 373 ns/op | +0% | 0 allocs/op
|
||||||
| :zap: zap (sugared) | 187 ns/op | +48% | 2 allocs/op
|
| :zap: zap (sugared) | 452 ns/op | +21% | 1 allocs/op
|
||||||
| zerolog | 88 ns/op | -30% | 0 allocs/op
|
| zerolog | 288 ns/op | -23% | 0 allocs/op
|
||||||
| go-kit | 5087 ns/op | +3937% | 103 allocs/op
|
| go-kit | 11785 ns/op | +3060% | 58 allocs/op
|
||||||
| log15 | 18548 ns/op | +14621% | 73 allocs/op
|
| logrus | 19629 ns/op | +5162% | 70 allocs/op
|
||||||
| apex/log | 26012 ns/op | +20544% | 104 allocs/op
|
| log15 | 21866 ns/op | +5762% | 72 allocs/op
|
||||||
| logrus | 27236 ns/op | +21516% | 113 allocs/op
|
| apex/log | 30890 ns/op | +8182% | 55 allocs/op
|
||||||
|
|
||||||
Log a static string, without any context or `printf`-style templating:
|
Log a static string, without any context or `printf`-style templating:
|
||||||
|
|
||||||
| Package | Time | Time % to zap | Objects Allocated |
|
| Package | Time | Time % to zap | Objects Allocated |
|
||||||
| :------ | :--: | :-----------: | :---------------: |
|
| :------ | :--: | :-----------: | :---------------: |
|
||||||
| :zap: zap | 118 ns/op | +0% | 0 allocs/op
|
| :zap: zap | 381 ns/op | +0% | 0 allocs/op
|
||||||
| :zap: zap (sugared) | 191 ns/op | +62% | 2 allocs/op
|
| :zap: zap (sugared) | 410 ns/op | +8% | 1 allocs/op
|
||||||
| zerolog | 93 ns/op | -21% | 0 allocs/op
|
| zerolog | 369 ns/op | -3% | 0 allocs/op
|
||||||
| go-kit | 280 ns/op | +137% | 11 allocs/op
|
| standard library | 385 ns/op | +1% | 2 allocs/op
|
||||||
| standard library | 499 ns/op | +323% | 2 allocs/op
|
| go-kit | 606 ns/op | +59% | 11 allocs/op
|
||||||
| apex/log | 1990 ns/op | +1586% | 10 allocs/op
|
| logrus | 1730 ns/op | +354% | 25 allocs/op
|
||||||
| logrus | 3129 ns/op | +2552% | 24 allocs/op
|
| apex/log | 1998 ns/op | +424% | 7 allocs/op
|
||||||
| log15 | 3887 ns/op | +3194% | 23 allocs/op
|
| log15 | 4546 ns/op | +1093% | 22 allocs/op
|
||||||
|
|
||||||
## Development Status: Stable
|
## Development Status: Stable
|
||||||
|
|
||||||
|
1
vendor/go.uber.org/zap/global.go
generated
vendored
1
vendor/go.uber.org/zap/global.go
generated
vendored
@ -31,6 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
_stdLogDefaultDepth = 1
|
||||||
_loggerWriterDepth = 2
|
_loggerWriterDepth = 2
|
||||||
_programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " +
|
_programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " +
|
||||||
"https://github.com/uber-go/zap/issues/new and reference this error: %v"
|
"https://github.com/uber-go/zap/issues/new and reference this error: %v"
|
||||||
|
26
vendor/go.uber.org/zap/global_prego112.go
generated
vendored
26
vendor/go.uber.org/zap/global_prego112.go
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
// Copyright (c) 2019 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
// See #682 for more information.
|
|
||||||
// +build !go1.12
|
|
||||||
|
|
||||||
package zap
|
|
||||||
|
|
||||||
const _stdLogDefaultDepth = 2
|
|
17
vendor/go.uber.org/zap/level.go
generated
vendored
17
vendor/go.uber.org/zap/level.go
generated
vendored
@ -86,6 +86,23 @@ func NewAtomicLevelAt(l zapcore.Level) AtomicLevel {
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseAtomicLevel parses an AtomicLevel based on a lowercase or all-caps ASCII
|
||||||
|
// representation of the log level. If the provided ASCII representation is
|
||||||
|
// invalid an error is returned.
|
||||||
|
//
|
||||||
|
// This is particularly useful when dealing with text input to configure log
|
||||||
|
// levels.
|
||||||
|
func ParseAtomicLevel(text string) (AtomicLevel, error) {
|
||||||
|
a := NewAtomicLevel()
|
||||||
|
l, err := zapcore.ParseLevel(text)
|
||||||
|
if err != nil {
|
||||||
|
return a, err
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SetLevel(l)
|
||||||
|
return a, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Enabled implements the zapcore.LevelEnabler interface, which allows the
|
// Enabled implements the zapcore.LevelEnabler interface, which allows the
|
||||||
// AtomicLevel to be used in place of traditional static levels.
|
// AtomicLevel to be used in place of traditional static levels.
|
||||||
func (lvl AtomicLevel) Enabled(l zapcore.Level) bool {
|
func (lvl AtomicLevel) Enabled(l zapcore.Level) bool {
|
||||||
|
71
vendor/go.uber.org/zap/logger.go
generated
vendored
71
vendor/go.uber.org/zap/logger.go
generated
vendored
@ -24,9 +24,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -259,8 +259,10 @@ func (log *Logger) clone() *Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
||||||
// check must always be called directly by a method in the Logger interface
|
// Logger.check must always be called directly by a method in the
|
||||||
// (e.g., Check, Info, Fatal).
|
// Logger interface (e.g., Check, Info, Fatal).
|
||||||
|
// This skips Logger.check and the Info/Fatal/Check/etc. method that
|
||||||
|
// called it.
|
||||||
const callerSkipOffset = 2
|
const callerSkipOffset = 2
|
||||||
|
|
||||||
// Check the level first to reduce the cost of disabled log calls.
|
// Check the level first to reduce the cost of disabled log calls.
|
||||||
@ -307,42 +309,55 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry {
|
|||||||
|
|
||||||
// Thread the error output through to the CheckedEntry.
|
// Thread the error output through to the CheckedEntry.
|
||||||
ce.ErrorOutput = log.errorOutput
|
ce.ErrorOutput = log.errorOutput
|
||||||
if log.addCaller {
|
|
||||||
frame, defined := getCallerFrame(log.callerSkip + callerSkipOffset)
|
addStack := log.addStack.Enabled(ce.Level)
|
||||||
if !defined {
|
if !log.addCaller && !addStack {
|
||||||
|
return ce
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adding the caller or stack trace requires capturing the callers of
|
||||||
|
// this function. We'll share information between these two.
|
||||||
|
stackDepth := stacktraceFirst
|
||||||
|
if addStack {
|
||||||
|
stackDepth = stacktraceFull
|
||||||
|
}
|
||||||
|
stack := captureStacktrace(log.callerSkip+callerSkipOffset, stackDepth)
|
||||||
|
defer stack.Free()
|
||||||
|
|
||||||
|
if stack.Count() == 0 {
|
||||||
|
if log.addCaller {
|
||||||
fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC())
|
fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC())
|
||||||
log.errorOutput.Sync()
|
log.errorOutput.Sync()
|
||||||
}
|
}
|
||||||
|
return ce
|
||||||
|
}
|
||||||
|
|
||||||
ce.Entry.Caller = zapcore.EntryCaller{
|
frame, more := stack.Next()
|
||||||
Defined: defined,
|
|
||||||
|
if log.addCaller {
|
||||||
|
ce.Caller = zapcore.EntryCaller{
|
||||||
|
Defined: frame.PC != 0,
|
||||||
PC: frame.PC,
|
PC: frame.PC,
|
||||||
File: frame.File,
|
File: frame.File,
|
||||||
Line: frame.Line,
|
Line: frame.Line,
|
||||||
Function: frame.Function,
|
Function: frame.Function,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if log.addStack.Enabled(ce.Entry.Level) {
|
|
||||||
ce.Entry.Stack = StackSkip("", log.callerSkip+callerSkipOffset).String
|
if addStack {
|
||||||
|
buffer := bufferpool.Get()
|
||||||
|
defer buffer.Free()
|
||||||
|
|
||||||
|
stackfmt := newStackFormatter(buffer)
|
||||||
|
|
||||||
|
// We've already extracted the first frame, so format that
|
||||||
|
// separately and defer to stackfmt for the rest.
|
||||||
|
stackfmt.FormatFrame(frame)
|
||||||
|
if more {
|
||||||
|
stackfmt.FormatStack(stack)
|
||||||
|
}
|
||||||
|
ce.Stack = buffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
return ce
|
return ce
|
||||||
}
|
}
|
||||||
|
|
||||||
// getCallerFrame gets caller frame. The argument skip is the number of stack
|
|
||||||
// frames to ascend, with 0 identifying the caller of getCallerFrame. The
|
|
||||||
// boolean ok is false if it was not possible to recover the information.
|
|
||||||
//
|
|
||||||
// Note: This implementation is similar to runtime.Caller, but it returns the whole frame.
|
|
||||||
func getCallerFrame(skip int) (frame runtime.Frame, ok bool) {
|
|
||||||
const skipOffset = 2 // skip getCallerFrame and Callers
|
|
||||||
|
|
||||||
pc := make([]uintptr, 1)
|
|
||||||
numFrames := runtime.Callers(skip+skipOffset, pc)
|
|
||||||
if numFrames < 1 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
frame, _ = runtime.CallersFrames(pc).Next()
|
|
||||||
return frame, frame.PC != 0
|
|
||||||
}
|
|
||||||
|
179
vendor/go.uber.org/zap/stacktrace.go
generated
vendored
179
vendor/go.uber.org/zap/stacktrace.go
generated
vendored
@ -24,62 +24,153 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"go.uber.org/zap/buffer"
|
||||||
"go.uber.org/zap/internal/bufferpool"
|
"go.uber.org/zap/internal/bufferpool"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var _stacktracePool = sync.Pool{
|
||||||
_stacktracePool = sync.Pool{
|
New: func() interface{} {
|
||||||
New: func() interface{} {
|
return &stacktrace{
|
||||||
return newProgramCounters(64)
|
storage: make([]uintptr, 64),
|
||||||
},
|
}
|
||||||
}
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
type stacktrace struct {
|
||||||
|
pcs []uintptr // program counters; always a subslice of storage
|
||||||
|
frames *runtime.Frames
|
||||||
|
|
||||||
|
// The size of pcs varies depending on requirements:
|
||||||
|
// it will be one if the only the first frame was requested,
|
||||||
|
// and otherwise it will reflect the depth of the call stack.
|
||||||
|
//
|
||||||
|
// storage decouples the slice we need (pcs) from the slice we pool.
|
||||||
|
// We will always allocate a reasonably large storage, but we'll use
|
||||||
|
// only as much of it as we need.
|
||||||
|
storage []uintptr
|
||||||
|
}
|
||||||
|
|
||||||
|
// stacktraceDepth specifies how deep of a stack trace should be captured.
|
||||||
|
type stacktraceDepth int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// stacktraceFirst captures only the first frame.
|
||||||
|
stacktraceFirst stacktraceDepth = iota
|
||||||
|
|
||||||
|
// stacktraceFull captures the entire call stack, allocating more
|
||||||
|
// storage for it if needed.
|
||||||
|
stacktraceFull
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// captureStacktrace captures a stack trace of the specified depth, skipping
|
||||||
|
// the provided number of frames. skip=0 identifies the caller of
|
||||||
|
// captureStacktrace.
|
||||||
|
//
|
||||||
|
// The caller must call Free on the returned stacktrace after using it.
|
||||||
|
func captureStacktrace(skip int, depth stacktraceDepth) *stacktrace {
|
||||||
|
stack := _stacktracePool.Get().(*stacktrace)
|
||||||
|
|
||||||
|
switch depth {
|
||||||
|
case stacktraceFirst:
|
||||||
|
stack.pcs = stack.storage[:1]
|
||||||
|
case stacktraceFull:
|
||||||
|
stack.pcs = stack.storage
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unlike other "skip"-based APIs, skip=0 identifies runtime.Callers
|
||||||
|
// itself. +2 to skip captureStacktrace and runtime.Callers.
|
||||||
|
numFrames := runtime.Callers(
|
||||||
|
skip+2,
|
||||||
|
stack.pcs,
|
||||||
|
)
|
||||||
|
|
||||||
|
// runtime.Callers truncates the recorded stacktrace if there is no
|
||||||
|
// room in the provided slice. For the full stack trace, keep expanding
|
||||||
|
// storage until there are fewer frames than there is room.
|
||||||
|
if depth == stacktraceFull {
|
||||||
|
pcs := stack.pcs
|
||||||
|
for numFrames == len(pcs) {
|
||||||
|
pcs = make([]uintptr, len(pcs)*2)
|
||||||
|
numFrames = runtime.Callers(skip+2, pcs)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Discard old storage instead of returning it to the pool.
|
||||||
|
// This will adjust the pool size over time if stack traces are
|
||||||
|
// consistently very deep.
|
||||||
|
stack.storage = pcs
|
||||||
|
stack.pcs = pcs[:numFrames]
|
||||||
|
} else {
|
||||||
|
stack.pcs = stack.pcs[:numFrames]
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.frames = runtime.CallersFrames(stack.pcs)
|
||||||
|
return stack
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free releases resources associated with this stacktrace
|
||||||
|
// and returns it back to the pool.
|
||||||
|
func (st *stacktrace) Free() {
|
||||||
|
st.frames = nil
|
||||||
|
st.pcs = nil
|
||||||
|
_stacktracePool.Put(st)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Count reports the total number of frames in this stacktrace.
|
||||||
|
// Count DOES NOT change as Next is called.
|
||||||
|
func (st *stacktrace) Count() int {
|
||||||
|
return len(st.pcs)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next returns the next frame in the stack trace,
|
||||||
|
// and a boolean indicating whether there are more after it.
|
||||||
|
func (st *stacktrace) Next() (_ runtime.Frame, more bool) {
|
||||||
|
return st.frames.Next()
|
||||||
|
}
|
||||||
|
|
||||||
func takeStacktrace(skip int) string {
|
func takeStacktrace(skip int) string {
|
||||||
|
stack := captureStacktrace(skip+1, stacktraceFull)
|
||||||
|
defer stack.Free()
|
||||||
|
|
||||||
buffer := bufferpool.Get()
|
buffer := bufferpool.Get()
|
||||||
defer buffer.Free()
|
defer buffer.Free()
|
||||||
programCounters := _stacktracePool.Get().(*programCounters)
|
|
||||||
defer _stacktracePool.Put(programCounters)
|
|
||||||
|
|
||||||
var numFrames int
|
|
||||||
for {
|
|
||||||
// Skip the call to runtime.Callers and takeStacktrace so that the
|
|
||||||
// program counters start at the caller of takeStacktrace.
|
|
||||||
numFrames = runtime.Callers(skip+2, programCounters.pcs)
|
|
||||||
if numFrames < len(programCounters.pcs) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
// Don't put the too-short counter slice back into the pool; this lets
|
|
||||||
// the pool adjust if we consistently take deep stacktraces.
|
|
||||||
programCounters = newProgramCounters(len(programCounters.pcs) * 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
i := 0
|
|
||||||
frames := runtime.CallersFrames(programCounters.pcs[:numFrames])
|
|
||||||
|
|
||||||
// Note: On the last iteration, frames.Next() returns false, with a valid
|
|
||||||
// frame, but we ignore this frame. The last frame is a a runtime frame which
|
|
||||||
// adds noise, since it's only either runtime.main or runtime.goexit.
|
|
||||||
for frame, more := frames.Next(); more; frame, more = frames.Next() {
|
|
||||||
if i != 0 {
|
|
||||||
buffer.AppendByte('\n')
|
|
||||||
}
|
|
||||||
i++
|
|
||||||
buffer.AppendString(frame.Function)
|
|
||||||
buffer.AppendByte('\n')
|
|
||||||
buffer.AppendByte('\t')
|
|
||||||
buffer.AppendString(frame.File)
|
|
||||||
buffer.AppendByte(':')
|
|
||||||
buffer.AppendInt(int64(frame.Line))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
stackfmt := newStackFormatter(buffer)
|
||||||
|
stackfmt.FormatStack(stack)
|
||||||
return buffer.String()
|
return buffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
type programCounters struct {
|
// stackFormatter formats a stack trace into a readable string representation.
|
||||||
pcs []uintptr
|
type stackFormatter struct {
|
||||||
|
b *buffer.Buffer
|
||||||
|
nonEmpty bool // whehther we've written at least one frame already
|
||||||
}
|
}
|
||||||
|
|
||||||
func newProgramCounters(size int) *programCounters {
|
// newStackFormatter builds a new stackFormatter.
|
||||||
return &programCounters{make([]uintptr, size)}
|
func newStackFormatter(b *buffer.Buffer) stackFormatter {
|
||||||
|
return stackFormatter{b: b}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FormatStack formats all remaining frames in the provided stacktrace -- minus
|
||||||
|
// the final runtime.main/runtime.goexit frame.
|
||||||
|
func (sf *stackFormatter) FormatStack(stack *stacktrace) {
|
||||||
|
// Note: On the last iteration, frames.Next() returns false, with a valid
|
||||||
|
// frame, but we ignore this frame. The last frame is a a runtime frame which
|
||||||
|
// adds noise, since it's only either runtime.main or runtime.goexit.
|
||||||
|
for frame, more := stack.Next(); more; frame, more = stack.Next() {
|
||||||
|
sf.FormatFrame(frame)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FormatFrame formats the given frame.
|
||||||
|
func (sf *stackFormatter) FormatFrame(frame runtime.Frame) {
|
||||||
|
if sf.nonEmpty {
|
||||||
|
sf.b.AppendByte('\n')
|
||||||
|
}
|
||||||
|
sf.nonEmpty = true
|
||||||
|
sf.b.AppendString(frame.Function)
|
||||||
|
sf.b.AppendByte('\n')
|
||||||
|
sf.b.AppendByte('\t')
|
||||||
|
sf.b.AppendString(frame.File)
|
||||||
|
sf.b.AppendByte(':')
|
||||||
|
sf.b.AppendInt(int64(frame.Line))
|
||||||
}
|
}
|
||||||
|
4
vendor/go.uber.org/zap/zapcore/clock.go
generated
vendored
4
vendor/go.uber.org/zap/zapcore/clock.go
generated
vendored
@ -20,9 +20,7 @@
|
|||||||
|
|
||||||
package zapcore
|
package zapcore
|
||||||
|
|
||||||
import (
|
import "time"
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DefaultClock is the default clock used by Zap in operations that require
|
// DefaultClock is the default clock used by Zap in operations that require
|
||||||
// time. This clock uses the system clock for all operations.
|
// time. This clock uses the system clock for all operations.
|
||||||
|
6
vendor/go.uber.org/zap/zapcore/console_encoder.go
generated
vendored
6
vendor/go.uber.org/zap/zapcore/console_encoder.go
generated
vendored
@ -125,11 +125,7 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer,
|
|||||||
line.AppendString(ent.Stack)
|
line.AppendString(ent.Stack)
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.LineEnding != "" {
|
line.AppendString(c.LineEnding)
|
||||||
line.AppendString(c.LineEnding)
|
|
||||||
} else {
|
|
||||||
line.AppendString(DefaultLineEnding)
|
|
||||||
}
|
|
||||||
return line, nil
|
return line, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
vendor/go.uber.org/zap/zapcore/encoder.go
generated
vendored
21
vendor/go.uber.org/zap/zapcore/encoder.go
generated
vendored
@ -22,6 +22,7 @@ package zapcore
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.uber.org/zap/buffer"
|
"go.uber.org/zap/buffer"
|
||||||
@ -312,14 +313,15 @@ func (e *NameEncoder) UnmarshalText(text []byte) error {
|
|||||||
type EncoderConfig struct {
|
type EncoderConfig struct {
|
||||||
// Set the keys used for each log entry. If any key is empty, that portion
|
// Set the keys used for each log entry. If any key is empty, that portion
|
||||||
// of the entry is omitted.
|
// of the entry is omitted.
|
||||||
MessageKey string `json:"messageKey" yaml:"messageKey"`
|
MessageKey string `json:"messageKey" yaml:"messageKey"`
|
||||||
LevelKey string `json:"levelKey" yaml:"levelKey"`
|
LevelKey string `json:"levelKey" yaml:"levelKey"`
|
||||||
TimeKey string `json:"timeKey" yaml:"timeKey"`
|
TimeKey string `json:"timeKey" yaml:"timeKey"`
|
||||||
NameKey string `json:"nameKey" yaml:"nameKey"`
|
NameKey string `json:"nameKey" yaml:"nameKey"`
|
||||||
CallerKey string `json:"callerKey" yaml:"callerKey"`
|
CallerKey string `json:"callerKey" yaml:"callerKey"`
|
||||||
FunctionKey string `json:"functionKey" yaml:"functionKey"`
|
FunctionKey string `json:"functionKey" yaml:"functionKey"`
|
||||||
StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"`
|
StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"`
|
||||||
LineEnding string `json:"lineEnding" yaml:"lineEnding"`
|
SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"`
|
||||||
|
LineEnding string `json:"lineEnding" yaml:"lineEnding"`
|
||||||
// Configure the primitive representations of common complex types. For
|
// Configure the primitive representations of common complex types. For
|
||||||
// example, some users may want all time.Times serialized as floating-point
|
// example, some users may want all time.Times serialized as floating-point
|
||||||
// seconds since epoch, while others may prefer ISO8601 strings.
|
// seconds since epoch, while others may prefer ISO8601 strings.
|
||||||
@ -330,6 +332,9 @@ type EncoderConfig struct {
|
|||||||
// Unlike the other primitive type encoders, EncodeName is optional. The
|
// Unlike the other primitive type encoders, EncodeName is optional. The
|
||||||
// zero value falls back to FullNameEncoder.
|
// zero value falls back to FullNameEncoder.
|
||||||
EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"`
|
EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"`
|
||||||
|
// Configure the encoder for interface{} type objects.
|
||||||
|
// If not provided, objects are encoded using json.Encoder
|
||||||
|
NewReflectedEncoder func(io.Writer) ReflectedEncoder `json:"-" yaml:"-"`
|
||||||
// Configures the field separator used by the console encoder. Defaults
|
// Configures the field separator used by the console encoder. Defaults
|
||||||
// to tab.
|
// to tab.
|
||||||
ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"`
|
ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"`
|
||||||
|
92
vendor/go.uber.org/zap/zapcore/json_encoder.go
generated
vendored
92
vendor/go.uber.org/zap/zapcore/json_encoder.go
generated
vendored
@ -22,7 +22,6 @@ package zapcore
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
|
||||||
"math"
|
"math"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -64,7 +63,7 @@ type jsonEncoder struct {
|
|||||||
|
|
||||||
// for encoding generic values by reflection
|
// for encoding generic values by reflection
|
||||||
reflectBuf *buffer.Buffer
|
reflectBuf *buffer.Buffer
|
||||||
reflectEnc *json.Encoder
|
reflectEnc ReflectedEncoder
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder
|
// NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder
|
||||||
@ -82,6 +81,17 @@ func NewJSONEncoder(cfg EncoderConfig) Encoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder {
|
func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder {
|
||||||
|
if cfg.SkipLineEnding {
|
||||||
|
cfg.LineEnding = ""
|
||||||
|
} else if cfg.LineEnding == "" {
|
||||||
|
cfg.LineEnding = DefaultLineEnding
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no EncoderConfig.NewReflectedEncoder is provided by the user, then use default
|
||||||
|
if cfg.NewReflectedEncoder == nil {
|
||||||
|
cfg.NewReflectedEncoder = defaultReflectedEncoder
|
||||||
|
}
|
||||||
|
|
||||||
return &jsonEncoder{
|
return &jsonEncoder{
|
||||||
EncoderConfig: &cfg,
|
EncoderConfig: &cfg,
|
||||||
buf: bufferpool.Get(),
|
buf: bufferpool.Get(),
|
||||||
@ -118,6 +128,11 @@ func (enc *jsonEncoder) AddComplex128(key string, val complex128) {
|
|||||||
enc.AppendComplex128(val)
|
enc.AppendComplex128(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (enc *jsonEncoder) AddComplex64(key string, val complex64) {
|
||||||
|
enc.addKey(key)
|
||||||
|
enc.AppendComplex64(val)
|
||||||
|
}
|
||||||
|
|
||||||
func (enc *jsonEncoder) AddDuration(key string, val time.Duration) {
|
func (enc *jsonEncoder) AddDuration(key string, val time.Duration) {
|
||||||
enc.addKey(key)
|
enc.addKey(key)
|
||||||
enc.AppendDuration(val)
|
enc.AppendDuration(val)
|
||||||
@ -141,10 +156,7 @@ func (enc *jsonEncoder) AddInt64(key string, val int64) {
|
|||||||
func (enc *jsonEncoder) resetReflectBuf() {
|
func (enc *jsonEncoder) resetReflectBuf() {
|
||||||
if enc.reflectBuf == nil {
|
if enc.reflectBuf == nil {
|
||||||
enc.reflectBuf = bufferpool.Get()
|
enc.reflectBuf = bufferpool.Get()
|
||||||
enc.reflectEnc = json.NewEncoder(enc.reflectBuf)
|
enc.reflectEnc = enc.NewReflectedEncoder(enc.reflectBuf)
|
||||||
|
|
||||||
// For consistency with our custom JSON encoder.
|
|
||||||
enc.reflectEnc.SetEscapeHTML(false)
|
|
||||||
} else {
|
} else {
|
||||||
enc.reflectBuf.Reset()
|
enc.reflectBuf.Reset()
|
||||||
}
|
}
|
||||||
@ -206,10 +218,16 @@ func (enc *jsonEncoder) AppendArray(arr ArrayMarshaler) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error {
|
func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error {
|
||||||
|
// Close ONLY new openNamespaces that are created during
|
||||||
|
// AppendObject().
|
||||||
|
old := enc.openNamespaces
|
||||||
|
enc.openNamespaces = 0
|
||||||
enc.addElementSeparator()
|
enc.addElementSeparator()
|
||||||
enc.buf.AppendByte('{')
|
enc.buf.AppendByte('{')
|
||||||
err := obj.MarshalLogObject(enc)
|
err := obj.MarshalLogObject(enc)
|
||||||
enc.buf.AppendByte('}')
|
enc.buf.AppendByte('}')
|
||||||
|
enc.closeOpenNamespaces()
|
||||||
|
enc.openNamespaces = old
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,20 +243,23 @@ func (enc *jsonEncoder) AppendByteString(val []byte) {
|
|||||||
enc.buf.AppendByte('"')
|
enc.buf.AppendByte('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
func (enc *jsonEncoder) AppendComplex128(val complex128) {
|
// appendComplex appends the encoded form of the provided complex128 value.
|
||||||
|
// precision specifies the encoding precision for the real and imaginary
|
||||||
|
// components of the complex number.
|
||||||
|
func (enc *jsonEncoder) appendComplex(val complex128, precision int) {
|
||||||
enc.addElementSeparator()
|
enc.addElementSeparator()
|
||||||
// Cast to a platform-independent, fixed-size type.
|
// Cast to a platform-independent, fixed-size type.
|
||||||
r, i := float64(real(val)), float64(imag(val))
|
r, i := float64(real(val)), float64(imag(val))
|
||||||
enc.buf.AppendByte('"')
|
enc.buf.AppendByte('"')
|
||||||
// Because we're always in a quoted string, we can use strconv without
|
// Because we're always in a quoted string, we can use strconv without
|
||||||
// special-casing NaN and +/-Inf.
|
// special-casing NaN and +/-Inf.
|
||||||
enc.buf.AppendFloat(r, 64)
|
enc.buf.AppendFloat(r, precision)
|
||||||
// If imaginary part is less than 0, minus (-) sign is added by default
|
// If imaginary part is less than 0, minus (-) sign is added by default
|
||||||
// by AppendFloat.
|
// by AppendFloat.
|
||||||
if i >= 0 {
|
if i >= 0 {
|
||||||
enc.buf.AppendByte('+')
|
enc.buf.AppendByte('+')
|
||||||
}
|
}
|
||||||
enc.buf.AppendFloat(i, 64)
|
enc.buf.AppendFloat(i, precision)
|
||||||
enc.buf.AppendByte('i')
|
enc.buf.AppendByte('i')
|
||||||
enc.buf.AppendByte('"')
|
enc.buf.AppendByte('"')
|
||||||
}
|
}
|
||||||
@ -301,28 +322,28 @@ func (enc *jsonEncoder) AppendUint64(val uint64) {
|
|||||||
enc.buf.AppendUint(val)
|
enc.buf.AppendUint(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (enc *jsonEncoder) AddComplex64(k string, v complex64) { enc.AddComplex128(k, complex128(v)) }
|
func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) }
|
||||||
func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) }
|
func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) }
|
||||||
func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) }
|
func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) }
|
||||||
func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) }
|
func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) }
|
||||||
func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) }
|
func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) }
|
||||||
func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) }
|
func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) }
|
||||||
func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) }
|
func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) }
|
||||||
func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) }
|
func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) }
|
||||||
func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) }
|
func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) }
|
||||||
func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) }
|
func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.appendComplex(complex128(v), 32) }
|
||||||
func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.AppendComplex128(complex128(v)) }
|
func (enc *jsonEncoder) AppendComplex128(v complex128) { enc.appendComplex(complex128(v), 64) }
|
||||||
func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) }
|
func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) }
|
||||||
func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) }
|
func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) }
|
||||||
func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) }
|
func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) }
|
||||||
func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) }
|
func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) }
|
||||||
func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) }
|
func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) }
|
||||||
func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) }
|
func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) }
|
||||||
func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) }
|
func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) }
|
||||||
func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) }
|
func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) }
|
||||||
func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) }
|
func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) }
|
||||||
func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) }
|
func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) }
|
||||||
func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) }
|
func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) }
|
||||||
|
|
||||||
func (enc *jsonEncoder) Clone() Encoder {
|
func (enc *jsonEncoder) Clone() Encoder {
|
||||||
clone := enc.clone()
|
clone := enc.clone()
|
||||||
@ -343,7 +364,7 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer,
|
|||||||
final := enc.clone()
|
final := enc.clone()
|
||||||
final.buf.AppendByte('{')
|
final.buf.AppendByte('{')
|
||||||
|
|
||||||
if final.LevelKey != "" {
|
if final.LevelKey != "" && final.EncodeLevel != nil {
|
||||||
final.addKey(final.LevelKey)
|
final.addKey(final.LevelKey)
|
||||||
cur := final.buf.Len()
|
cur := final.buf.Len()
|
||||||
final.EncodeLevel(ent.Level, final)
|
final.EncodeLevel(ent.Level, final)
|
||||||
@ -404,11 +425,7 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer,
|
|||||||
final.AddString(final.StacktraceKey, ent.Stack)
|
final.AddString(final.StacktraceKey, ent.Stack)
|
||||||
}
|
}
|
||||||
final.buf.AppendByte('}')
|
final.buf.AppendByte('}')
|
||||||
if final.LineEnding != "" {
|
final.buf.AppendString(final.LineEnding)
|
||||||
final.buf.AppendString(final.LineEnding)
|
|
||||||
} else {
|
|
||||||
final.buf.AppendString(DefaultLineEnding)
|
|
||||||
}
|
|
||||||
|
|
||||||
ret := final.buf
|
ret := final.buf
|
||||||
putJSONEncoder(final)
|
putJSONEncoder(final)
|
||||||
@ -423,6 +440,7 @@ func (enc *jsonEncoder) closeOpenNamespaces() {
|
|||||||
for i := 0; i < enc.openNamespaces; i++ {
|
for i := 0; i < enc.openNamespaces; i++ {
|
||||||
enc.buf.AppendByte('}')
|
enc.buf.AppendByte('}')
|
||||||
}
|
}
|
||||||
|
enc.openNamespaces = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (enc *jsonEncoder) addKey(key string) {
|
func (enc *jsonEncoder) addKey(key string) {
|
||||||
|
12
vendor/go.uber.org/zap/zapcore/level.go
generated
vendored
12
vendor/go.uber.org/zap/zapcore/level.go
generated
vendored
@ -55,6 +55,18 @@ const (
|
|||||||
_maxLevel = FatalLevel
|
_maxLevel = FatalLevel
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ParseLevel parses a level based on the lower-case or all-caps ASCII
|
||||||
|
// representation of the log level. If the provided ASCII representation is
|
||||||
|
// invalid an error is returned.
|
||||||
|
//
|
||||||
|
// This is particularly useful when dealing with text input to configure log
|
||||||
|
// levels.
|
||||||
|
func ParseLevel(text string) (Level, error) {
|
||||||
|
var level Level
|
||||||
|
err := level.UnmarshalText([]byte(text))
|
||||||
|
return level, err
|
||||||
|
}
|
||||||
|
|
||||||
// String returns a lower-case ASCII representation of the log level.
|
// String returns a lower-case ASCII representation of the log level.
|
||||||
func (l Level) String() string {
|
func (l Level) String() string {
|
||||||
switch l {
|
switch l {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2019 Uber Technologies, Inc.
|
// Copyright (c) 2016 Uber Technologies, Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -18,9 +18,24 @@
|
|||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
// See #682 for more information.
|
package zapcore
|
||||||
// +build go1.12
|
|
||||||
|
|
||||||
package zap
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
)
|
||||||
|
|
||||||
const _stdLogDefaultDepth = 1
|
// ReflectedEncoder serializes log fields that can't be serialized with Zap's
|
||||||
|
// JSON encoder. These have the ReflectType field type.
|
||||||
|
// Use EncoderConfig.NewReflectedEncoder to set this.
|
||||||
|
type ReflectedEncoder interface {
|
||||||
|
// Encode encodes and writes to the underlying data stream.
|
||||||
|
Encode(interface{}) error
|
||||||
|
}
|
||||||
|
|
||||||
|
func defaultReflectedEncoder(w io.Writer) ReflectedEncoder {
|
||||||
|
enc := json.NewEncoder(w)
|
||||||
|
// For consistency with our custom JSON encoder.
|
||||||
|
enc.SetEscapeHTML(false)
|
||||||
|
return enc
|
||||||
|
}
|
15
vendor/go.uber.org/zap/zapcore/sampler.go
generated
vendored
15
vendor/go.uber.org/zap/zapcore/sampler.go
generated
vendored
@ -133,10 +133,21 @@ func SamplerHook(hook func(entry Entry, dec SamplingDecision)) SamplerOption {
|
|||||||
// each tick. If more Entries with the same level and message are seen during
|
// each tick. If more Entries with the same level and message are seen during
|
||||||
// the same interval, every Mth message is logged and the rest are dropped.
|
// the same interval, every Mth message is logged and the rest are dropped.
|
||||||
//
|
//
|
||||||
|
// For example,
|
||||||
|
//
|
||||||
|
// core = NewSamplerWithOptions(core, time.Second, 10, 5)
|
||||||
|
//
|
||||||
|
// This will log the first 10 log entries with the same level and message
|
||||||
|
// in a one second interval as-is. Following that, it will allow through
|
||||||
|
// every 5th log entry with the same level and message in that interval.
|
||||||
|
//
|
||||||
|
// If thereafter is zero, the Core will drop all log entries after the first N
|
||||||
|
// in that interval.
|
||||||
|
//
|
||||||
// Sampler can be configured to report sampling decisions with the SamplerHook
|
// Sampler can be configured to report sampling decisions with the SamplerHook
|
||||||
// option.
|
// option.
|
||||||
//
|
//
|
||||||
// Keep in mind that zap's sampling implementation is optimized for speed over
|
// Keep in mind that Zap's sampling implementation is optimized for speed over
|
||||||
// absolute precision; under load, each tick may be slightly over- or
|
// absolute precision; under load, each tick may be slightly over- or
|
||||||
// under-sampled.
|
// under-sampled.
|
||||||
func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core {
|
func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core {
|
||||||
@ -200,7 +211,7 @@ func (s *sampler) Check(ent Entry, ce *CheckedEntry) *CheckedEntry {
|
|||||||
if ent.Level >= _minLevel && ent.Level <= _maxLevel {
|
if ent.Level >= _minLevel && ent.Level <= _maxLevel {
|
||||||
counter := s.counts.get(ent.Level, ent.Message)
|
counter := s.counts.get(ent.Level, ent.Message)
|
||||||
n := counter.IncCheckReset(ent.Time, s.tick)
|
n := counter.IncCheckReset(ent.Time, s.tick)
|
||||||
if n > s.first && (n-s.first)%s.thereafter != 0 {
|
if n > s.first && (s.thereafter == 0 || (n-s.first)%s.thereafter != 0) {
|
||||||
s.hook(ent, LogDropped)
|
s.hook(ent, LogDropped)
|
||||||
return ce
|
return ce
|
||||||
}
|
}
|
||||||
|
34
vendor/gocv.io/x/gocv/CHANGELOG.md
generated
vendored
34
vendor/gocv.io/x/gocv/CHANGELOG.md
generated
vendored
@ -1,3 +1,37 @@
|
|||||||
|
0.30.0
|
||||||
|
---
|
||||||
|
* **all**
|
||||||
|
* update to OpenCV 4.5.5
|
||||||
|
* **build**
|
||||||
|
* add install_nonfree make task to build all opencv_contrib modules
|
||||||
|
* correct download location for onnx test file
|
||||||
|
* Update Makefile for missing version changes
|
||||||
|
* **core**
|
||||||
|
* correct how memory is being allocated for Eye(), Zeros(), and Ones() to address issue #930
|
||||||
|
* **calib3d**
|
||||||
|
* Adding support for estimateAffine2DWithParams (#924)
|
||||||
|
* **imgproc**
|
||||||
|
* Add DrawContoursWithParams function
|
||||||
|
* **photo**
|
||||||
|
* Add bindings for fastNlMeansDenoising and fastNlMeansDenoisingColored
|
||||||
|
* add detailEnhance function
|
||||||
|
* add EdgePreservingFilter function
|
||||||
|
* add PencilSketch function
|
||||||
|
* add stylization function
|
||||||
|
* **docs**
|
||||||
|
* add godoc comments for FastNlMeansDenoising functions
|
||||||
|
* update README with info on latest mingw-w64 t use for Windows builds
|
||||||
|
* dnn pose detect examples correct the order of the argument variable name
|
||||||
|
* **examples**
|
||||||
|
* Fixed memory leaks in the motion detection example
|
||||||
|
* **openvino**
|
||||||
|
* Update env.sh and README.md
|
||||||
|
* **windows**
|
||||||
|
* use mingw-w64 8.1.0 for protobuf compile
|
||||||
|
* **contrib**
|
||||||
|
* add cv::wechat_qrcode::WeChatQRCode (#949)
|
||||||
|
* Update cgo_static.go
|
||||||
|
|
||||||
0.29.0
|
0.29.0
|
||||||
---
|
---
|
||||||
* **all**
|
* **all**
|
||||||
|
2
vendor/gocv.io/x/gocv/CONTRIBUTING.md
generated
vendored
2
vendor/gocv.io/x/gocv/CONTRIBUTING.md
generated
vendored
@ -81,7 +81,7 @@ go test ./openvino/...
|
|||||||
|
|
||||||
## Contributing workflow
|
## Contributing workflow
|
||||||
|
|
||||||
This section provides a short description of one of many possible workflows you can follow to contribute to `CoCV`. This workflow is based on multiple [git remotes](https://git-scm.com/docs/git-remote) and it's by no means the only workflow you can use to contribute to `GoCV`. However, it's an option that might help you get started quickly without too much hassle as this workflow lets you work off the `gocv` repo directory path!
|
This section provides a short description of one of many possible workflows you can follow to contribute to `GoCV`. This workflow is based on multiple [git remotes](https://git-scm.com/docs/git-remote) and it's by no means the only workflow you can use to contribute to `GoCV`. However, it's an option that might help you get started quickly without too much hassle as this workflow lets you work off the `gocv` repo directory path!
|
||||||
|
|
||||||
Assuming you have already forked the `gocv` repo, you need to add a new `git remote` which will point to your GitHub fork. Notice below that you **must** `cd` to `gocv` repo directory before you add the new `git remote`:
|
Assuming you have already forked the `gocv` repo, you need to add a new `git remote` which will point to your GitHub fork. Notice below that you **must** `cd` to `gocv` repo directory before you add the new `git remote`:
|
||||||
|
|
||||||
|
2
vendor/gocv.io/x/gocv/Dockerfile
generated
vendored
2
vendor/gocv.io/x/gocv/Dockerfile
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
# to build this docker image:
|
# to build this docker image:
|
||||||
# docker build .
|
# docker build .
|
||||||
FROM gocv/opencv:4.5.4
|
FROM gocv/opencv:4.5.5
|
||||||
|
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
|
|
||||||
|
2
vendor/gocv.io/x/gocv/Dockerfile-test
generated
vendored
2
vendor/gocv.io/x/gocv/Dockerfile-test
generated
vendored
@ -6,7 +6,7 @@
|
|||||||
# docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gocv-test
|
# docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gocv-test
|
||||||
# xhost -
|
# xhost -
|
||||||
#
|
#
|
||||||
FROM gocv/opencv:4.5.4 AS gocv-test
|
FROM gocv/opencv:4.5.5 AS gocv-test
|
||||||
|
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
|
|
||||||
|
2
vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10
generated
vendored
2
vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-10
generated
vendored
@ -4,7 +4,7 @@
|
|||||||
# To run tests:
|
# To run tests:
|
||||||
# docker run -it --rm --gpus all gocv-test-gpu-cuda-10
|
# docker run -it --rm --gpus all gocv-test-gpu-cuda-10
|
||||||
#
|
#
|
||||||
FROM gocv/opencv:4.5.4-gpu-cuda-10 AS gocv-gpu-test-cuda-10
|
FROM gocv/opencv:4.5.5-gpu-cuda-10 AS gocv-gpu-test-cuda-10
|
||||||
|
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
ENV PATH="${PATH}:/go/bin"
|
ENV PATH="${PATH}:/go/bin"
|
||||||
|
2
vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11
generated
vendored
2
vendor/gocv.io/x/gocv/Dockerfile-test.gpu-cuda-11
generated
vendored
@ -4,7 +4,7 @@
|
|||||||
# To run tests:
|
# To run tests:
|
||||||
# docker run -it --rm --gpus all gocv-test-gpu-cuda-11
|
# docker run -it --rm --gpus all gocv-test-gpu-cuda-11
|
||||||
#
|
#
|
||||||
FROM gocv/opencv:4.5.4-gpu-cuda-11 AS gocv-gpu-test-cuda-11
|
FROM gocv/opencv:4.5.5-gpu-cuda-11 AS gocv-gpu-test-cuda-11
|
||||||
|
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
ENV PATH="${PATH}:/go/bin"
|
ENV PATH="${PATH}:/go/bin"
|
||||||
|
2
vendor/gocv.io/x/gocv/Dockerfile.gpu
generated
vendored
2
vendor/gocv.io/x/gocv/Dockerfile.gpu
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
# to build this docker image:
|
# to build this docker image:
|
||||||
# docker build -f Dockerfile.gpu .
|
# docker build -f Dockerfile.gpu .
|
||||||
FROM gocv/opencv:4.5.4-gpu-cuda-11 AS gocv-gpu
|
FROM gocv/opencv:4.5.5-gpu-cuda-11 AS gocv-gpu
|
||||||
|
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
|
|
||||||
|
4
vendor/gocv.io/x/gocv/Dockerfile.opencv
generated
vendored
4
vendor/gocv.io/x/gocv/Dockerfile.opencv
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
# to build this docker image:
|
# to build this docker image:
|
||||||
# docker build -f Dockerfile.opencv -t gocv/opencv:4.5.4 .
|
# docker build -f Dockerfile.opencv -t gocv/opencv:4.5.5 .
|
||||||
FROM golang:1.17-buster AS opencv
|
FROM golang:1.17-buster AS opencv
|
||||||
LABEL maintainer="hybridgroup"
|
LABEL maintainer="hybridgroup"
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ARG OPENCV_VERSION="4.5.4"
|
ARG OPENCV_VERSION="4.5.5"
|
||||||
ENV OPENCV_VERSION $OPENCV_VERSION
|
ENV OPENCV_VERSION $OPENCV_VERSION
|
||||||
|
|
||||||
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
||||||
|
4
vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10
generated
vendored
4
vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-10
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
# to build this docker image:
|
# to build this docker image:
|
||||||
# docker build -f Dockerfile.opencv-gpu-cuda-10 -t gocv/opencv:4.5.4-gpu-cuda-10 .
|
# docker build -f Dockerfile.opencv-gpu-cuda-10 -t gocv/opencv:4.5.5-gpu-cuda-10 .
|
||||||
FROM nvidia/cuda:10.2-cudnn7-devel AS opencv-gpu-base
|
FROM nvidia/cuda:10.2-cudnn7-devel AS opencv-gpu-base
|
||||||
LABEL maintainer="hybridgroup"
|
LABEL maintainer="hybridgroup"
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ARG OPENCV_VERSION="4.5.4"
|
ARG OPENCV_VERSION="4.5.5"
|
||||||
ENV OPENCV_VERSION $OPENCV_VERSION
|
ENV OPENCV_VERSION $OPENCV_VERSION
|
||||||
|
|
||||||
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
||||||
|
4
vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11
generated
vendored
4
vendor/gocv.io/x/gocv/Dockerfile.opencv-gpu-cuda-11
generated
vendored
@ -1,5 +1,5 @@
|
|||||||
# to build this docker image:
|
# to build this docker image:
|
||||||
# docker build -f Dockerfile.opencv-gpu-cuda-11 -t gocv/opencv:4.5.4-gpu-cuda-11 .
|
# docker build -f Dockerfile.opencv-gpu-cuda-11 -t gocv/opencv:4.5.5-gpu-cuda-11 .
|
||||||
FROM nvidia/cuda:11.4.2-cudnn8-devel-ubuntu20.04 AS opencv-gpu-cuda-11-base
|
FROM nvidia/cuda:11.4.2-cudnn8-devel-ubuntu20.04 AS opencv-gpu-cuda-11-base
|
||||||
LABEL maintainer="hybridgroup"
|
LABEL maintainer="hybridgroup"
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ARG OPENCV_VERSION="4.5.4"
|
ARG OPENCV_VERSION="4.5.5"
|
||||||
ENV OPENCV_VERSION $OPENCV_VERSION
|
ENV OPENCV_VERSION $OPENCV_VERSION
|
||||||
|
|
||||||
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
RUN curl -Lo opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
|
||||||
|
2
vendor/gocv.io/x/gocv/LICENSE.txt
generated
vendored
2
vendor/gocv.io/x/gocv/LICENSE.txt
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2017-2021 The Hybrid Group
|
Copyright (c) 2017-2022 The Hybrid Group and friends
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
7
vendor/gocv.io/x/gocv/Makefile
generated
vendored
7
vendor/gocv.io/x/gocv/Makefile
generated
vendored
@ -2,10 +2,10 @@
|
|||||||
.PHONY: test deps download build clean astyle cmds docker
|
.PHONY: test deps download build clean astyle cmds docker
|
||||||
|
|
||||||
# GoCV version to use.
|
# GoCV version to use.
|
||||||
GOCV_VERSION?="v0.26.0"
|
GOCV_VERSION?="v0.30.0"
|
||||||
|
|
||||||
# OpenCV version to use.
|
# OpenCV version to use.
|
||||||
OPENCV_VERSION?=4.5.3
|
OPENCV_VERSION?=4.5.5
|
||||||
|
|
||||||
# Go version to use when building Docker image
|
# Go version to use when building Docker image
|
||||||
GOVERSION?=1.16.2
|
GOVERSION?=1.16.2
|
||||||
@ -252,6 +252,9 @@ install_openvino: deps download download_openvino sudo_pre_install_clean build_o
|
|||||||
# Do everything statically.
|
# Do everything statically.
|
||||||
install_static: deps download sudo_pre_install_clean build_static sudo_install clean verify
|
install_static: deps download sudo_pre_install_clean build_static sudo_install clean verify
|
||||||
|
|
||||||
|
# Do everything with non-free modules from cpencv_contrib.
|
||||||
|
install_nonfree: deps download sudo_pre_install_clean build_nonfree sudo_install clean verify
|
||||||
|
|
||||||
# Do everything with openvino and cuda.
|
# Do everything with openvino and cuda.
|
||||||
install_all: deps download download_openvino sudo_pre_install_clean build_openvino_package sudo_install_openvino build_all sudo_install clean verify_openvino verify_cuda
|
install_all: deps download download_openvino sudo_pre_install_clean build_openvino_package sudo_install_openvino build_all sudo_install clean verify_openvino verify_cuda
|
||||||
|
|
||||||
|
64
vendor/gocv.io/x/gocv/README.md
generated
vendored
64
vendor/gocv.io/x/gocv/README.md
generated
vendored
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
The GoCV package provides Go language bindings for the [OpenCV 4](http://opencv.org/) computer vision library.
|
The GoCV package provides Go language bindings for the [OpenCV 4](http://opencv.org/) computer vision library.
|
||||||
|
|
||||||
The GoCV package supports the latest releases of Go and OpenCV (v4.5.4) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem.
|
The GoCV package supports the latest releases of Go and OpenCV (v4.5.5) on Linux, macOS, and Windows. We intend to make the Go language a "first-class" client compatible with the latest developments in the OpenCV ecosystem.
|
||||||
|
|
||||||
GoCV supports [CUDA](https://en.wikipedia.org/wiki/CUDA) for hardware acceleration using Nvidia GPUs. Check out the [CUDA README](./cuda/README.md) for more info on how to use GoCV with OpenCV/CUDA.
|
GoCV supports [CUDA](https://en.wikipedia.org/wiki/CUDA) for hardware acceleration using Nvidia GPUs. Check out the [CUDA README](./cuda/README.md) for more info on how to use GoCV with OpenCV/CUDA.
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ There are examples in the [cmd directory](./cmd) of this repo in the form of var
|
|||||||
|
|
||||||
## How to install
|
## How to install
|
||||||
|
|
||||||
To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.5.4.
|
To install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.5.5.
|
||||||
|
|
||||||
Here are instructions for Ubuntu, Raspian, macOS, and Windows.
|
Here are instructions for Ubuntu, Raspian, macOS, and Windows.
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ Here are instructions for Ubuntu, Raspian, macOS, and Windows.
|
|||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
You can use `make` to install OpenCV 4.5.4 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
|
You can use `make` to install OpenCV 4.5.5 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
|
||||||
|
|
||||||
#### Quick Install
|
#### Quick Install
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ First, change directories to where you want to install GoCV, and then use git to
|
|||||||
|
|
||||||
Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.
|
Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.
|
||||||
|
|
||||||
Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.5.4 on Linux:
|
Once you have cloned the repo, the following commands should do everything to download and install OpenCV 4.5.5 on Linux:
|
||||||
|
|
||||||
cd gocv
|
cd gocv
|
||||||
make install
|
make install
|
||||||
@ -152,8 +152,8 @@ If you need static opencv libraries
|
|||||||
|
|
||||||
If it works correctly, at the end of the entire process, the following message should be displayed:
|
If it works correctly, at the end of the entire process, the following message should be displayed:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4
|
opencv lib version: 4.5.5
|
||||||
|
|
||||||
That's it, now you are ready to use GoCV.
|
That's it, now you are ready to use GoCV.
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ See the [openvino directory](./openvino) for information.
|
|||||||
|
|
||||||
#### Make Install for OpenVINO and Cuda
|
#### Make Install for OpenVINO and Cuda
|
||||||
|
|
||||||
The following commands should do everything to download and install OpenCV 4.5.4 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV:
|
The following commands should do everything to download and install OpenCV 4.5.5 with CUDA and OpenVINO on Linux. Make sure to change `$HOME/folder/with/your/src/` to the directory you used to clone GoCV:
|
||||||
|
|
||||||
cd $HOME/folder/with/gocv/
|
cd $HOME/folder/with/gocv/
|
||||||
make install_all
|
make install_all
|
||||||
@ -178,8 +178,8 @@ If you need static opencv libraries
|
|||||||
|
|
||||||
If it works correctly, at the end of the entire process, the following message should be displayed:
|
If it works correctly, at the end of the entire process, the following message should be displayed:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4-openvino
|
opencv lib version: 4.5.5-openvino
|
||||||
cuda information:
|
cuda information:
|
||||||
Device 0: "GeForce MX150" 2003Mb, sm_61, Driver/Runtime ver.10.0/10.0
|
Device 0: "GeForce MX150" 2003Mb, sm_61, Driver/Runtime ver.10.0/10.0
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ Next, you need to update the system, and install any required packages:
|
|||||||
|
|
||||||
#### Download source
|
#### Download source
|
||||||
|
|
||||||
Now, download the OpenCV 4.5.4 and OpenCV Contrib source code:
|
Now, download the OpenCV 4.5.5 and OpenCV Contrib source code:
|
||||||
|
|
||||||
make download
|
make download
|
||||||
|
|
||||||
@ -240,8 +240,8 @@ Now you should be able to build or run any of the examples:
|
|||||||
|
|
||||||
The version program should output the following:
|
The version program should output the following:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4
|
opencv lib version: 4.5.5
|
||||||
|
|
||||||
#### Cleanup extra files
|
#### Cleanup extra files
|
||||||
|
|
||||||
@ -320,7 +320,7 @@ There is a Docker image with Alpine 3.7 that has been created by project contrib
|
|||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.5.4 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
|
We have a special installation for the Raspberry Pi that includes some hardware optimizations. You use `make` to install OpenCV 4.5.5 with the handy `Makefile` included with this repo. If you already have installed OpenCV, you do not need to do so again. The installation performed by the `Makefile` is minimal, so it may remove OpenCV options such as Python or Java wrappers if you have already installed OpenCV some other way.
|
||||||
|
|
||||||
#### Quick Install
|
#### Quick Install
|
||||||
|
|
||||||
@ -331,15 +331,15 @@ First, change directories to where you want to install GoCV, and then use git to
|
|||||||
|
|
||||||
Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.
|
Make sure to change `$HOME/folder/with/your/src/` to where you actually want to save the code.
|
||||||
|
|
||||||
The following make command should do everything to download and install OpenCV 4.5.4 on Raspbian:
|
The following make command should do everything to download and install OpenCV 4.5.5 on Raspbian:
|
||||||
|
|
||||||
cd $HOME/folder/with/your/src/gocv
|
cd $HOME/folder/with/your/src/gocv
|
||||||
make install_raspi
|
make install_raspi
|
||||||
|
|
||||||
If it works correctly, at the end of the entire process, the following message should be displayed:
|
If it works correctly, at the end of the entire process, the following message should be displayed:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4
|
opencv lib version: 4.5.5
|
||||||
|
|
||||||
That's it, now you are ready to use GoCV.
|
That's it, now you are ready to use GoCV.
|
||||||
|
|
||||||
@ -347,13 +347,13 @@ That's it, now you are ready to use GoCV.
|
|||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
You can install OpenCV 4.5.4 using Homebrew.
|
You can install OpenCV 4.5.5 using Homebrew.
|
||||||
|
|
||||||
If you already have an earlier version of OpenCV (3.4.x) installed, you should probably remove it before installing the new version:
|
If you already have an earlier version of OpenCV (3.4.x) installed, you should probably remove it before installing the new version:
|
||||||
|
|
||||||
brew uninstall opencv
|
brew uninstall opencv
|
||||||
|
|
||||||
You can then install OpenCV 4.5.4:
|
You can then install OpenCV 4.5.5:
|
||||||
|
|
||||||
brew install opencv
|
brew install opencv
|
||||||
|
|
||||||
@ -377,8 +377,8 @@ Now you should be able to build or run any of the examples:
|
|||||||
|
|
||||||
The version program should output the following:
|
The version program should output the following:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4
|
opencv lib version: 4.5.5
|
||||||
|
|
||||||
### Custom Environment
|
### Custom Environment
|
||||||
|
|
||||||
@ -387,8 +387,8 @@ By default, pkg-config is used to determine the correct flags for compiling and
|
|||||||
For example:
|
For example:
|
||||||
|
|
||||||
export CGO_CXXFLAGS="--std=c++11"
|
export CGO_CXXFLAGS="--std=c++11"
|
||||||
export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.5.4/include"
|
export CGO_CPPFLAGS="-I/usr/local/Cellar/opencv/4.5.5/include"
|
||||||
export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.5.4/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core"
|
export CGO_LDFLAGS="-L/usr/local/Cellar/opencv/4.5.5/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core"
|
||||||
|
|
||||||
Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this:
|
Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this:
|
||||||
|
|
||||||
@ -400,25 +400,25 @@ Please note that you will need to run these 3 lines of code one time in your cur
|
|||||||
|
|
||||||
The following assumes that you are running a 64-bit version of Windows 10.
|
The following assumes that you are running a 64-bit version of Windows 10.
|
||||||
|
|
||||||
In order to build and install OpenCV 4.5.4 on Windows, you must first download and install MinGW-W64 and CMake, as follows.
|
In order to build and install OpenCV 4.5.5 on Windows, you must first download and install MinGW-W64 and CMake, as follows.
|
||||||
|
|
||||||
#### MinGW-W64
|
#### MinGW-W64
|
||||||
|
|
||||||
Download and run the MinGW-W64 compiler installer from [https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/).
|
Download and run the MinGW-W64 compiler installer from [https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/).
|
||||||
|
|
||||||
The latest version of the MinGW-W64 toolchain is `7.3.0`, but any version from `7.X` on should work.
|
The latest version of the MinGW-W64 toolchain is `8.1.0`, but any version from `8.X` on should work.
|
||||||
|
|
||||||
Choose the options for "posix" threads, and for "seh" exceptions handling, then install to the default location `c:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev2`.
|
Choose the options for "posix" threads, and for "seh" exceptions handling, then install to the default location `c:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0`.
|
||||||
|
|
||||||
Add the `C:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev2\mingw64\bin` path to your System Path.
|
Add the `C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin` path to your System Path.
|
||||||
|
|
||||||
#### CMake
|
#### CMake
|
||||||
|
|
||||||
Download and install CMake [https://cmake.org/download/](https://cmake.org/download/) to the default location. CMake installer will add CMake to your system path.
|
Download and install CMake [https://cmake.org/download/](https://cmake.org/download/) to the default location. CMake installer will add CMake to your system path.
|
||||||
|
|
||||||
#### OpenCV 4.5.4 and OpenCV Contrib Modules
|
#### OpenCV 4.5.5 and OpenCV Contrib Modules
|
||||||
|
|
||||||
The following commands should do everything to download and install OpenCV 4.5.4 on Windows:
|
The following commands should do everything to download and install OpenCV 4.5.5 on Windows:
|
||||||
|
|
||||||
chdir %GOPATH%\src\gocv.io\x\gocv
|
chdir %GOPATH%\src\gocv.io\x\gocv
|
||||||
win_build_opencv.cmd
|
win_build_opencv.cmd
|
||||||
@ -439,8 +439,8 @@ Now you should be able to build or run any of the command examples:
|
|||||||
|
|
||||||
The version program should output the following:
|
The version program should output the following:
|
||||||
|
|
||||||
gocv version: 0.29.0
|
gocv version: 0.30.0
|
||||||
opencv lib version: 4.5.4
|
opencv lib version: 4.5.5
|
||||||
|
|
||||||
That's it, now you are ready to use GoCV.
|
That's it, now you are ready to use GoCV.
|
||||||
|
|
||||||
@ -454,7 +454,7 @@ For example:
|
|||||||
|
|
||||||
set CGO_CXXFLAGS="--std=c++11"
|
set CGO_CXXFLAGS="--std=c++11"
|
||||||
set CGO_CPPFLAGS=-IC:\opencv\build\install\include
|
set CGO_CPPFLAGS=-IC:\opencv\build\install\include
|
||||||
set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core454 -lopencv_face454 -lopencv_videoio454 -lopencv_imgproc454 -lopencv_highgui454 -lopencv_imgcodecs454 -lopencv_objdetect454 -lopencv_features2d454 -lopencv_video454 -lopencv_dnn454 -lopencv_xfeatures2d454 -lopencv_plot454 -lopencv_tracking454 -lopencv_img_hash454
|
set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core455 -lopencv_face455 -lopencv_videoio455 -lopencv_imgproc455 -lopencv_highgui455 -lopencv_imgcodecs455 -lopencv_objdetect455 -lopencv_features2d455 -lopencv_video455 -lopencv_dnn455 -lopencv_xfeatures2d455 -lopencv_plot455 -lopencv_tracking455 -lopencv_img_hash455
|
||||||
|
|
||||||
Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this:
|
Please note that you will need to run these 3 lines of code one time in your current session in order to build or run the code, in order to setup the needed ENV variables. Once you have done so, you can execute code that uses GoCV with your custom environment like this:
|
||||||
|
|
||||||
|
16
vendor/gocv.io/x/gocv/ROADMAP.md
generated
vendored
16
vendor/gocv.io/x/gocv/ROADMAP.md
generated
vendored
@ -188,9 +188,9 @@ Your pull requests will be greatly appreciated!
|
|||||||
- [ ] **photo. Computational Photography - WORK STARTED** The following functions still need implementation:
|
- [ ] **photo. Computational Photography - WORK STARTED** The following functions still need implementation:
|
||||||
- [ ] [inpaint](https://docs.opencv.org/master/d7/d8b/group__photo__inpaint.html#gaedd30dfa0214fec4c88138b51d678085)
|
- [ ] [inpaint](https://docs.opencv.org/master/d7/d8b/group__photo__inpaint.html#gaedd30dfa0214fec4c88138b51d678085)
|
||||||
- [ ] [denoise_TVL1](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga7602ed5ae17b7de40152b922227c4e4f)
|
- [ ] [denoise_TVL1](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga7602ed5ae17b7de40152b922227c4e4f)
|
||||||
- [ ] [fastNlMeansDenoising](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93)
|
- [X] [fastNlMeansDenoising](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93)
|
||||||
- [ ] [fastNlMeansDenoisingColored](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga03aa4189fc3e31dafd638d90de335617)
|
- [X] [fastNlMeansDenoisingColored](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#ga03aa4189fc3e31dafd638d90de335617)
|
||||||
- [ ] [fastNlMeansDenoisingMulti](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#gaf4421bf068c4d632ea7f0aa38e0bf172)
|
- [X] [fastNlMeansDenoisingMulti](https://docs.opencv.org/master/d1/d79/group__photo__denoise.html#gaf4421bf068c4d632ea7f0aa38e0bf172)
|
||||||
- [ ] [createCalibrateDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga7fed9707ad5f2cc0e633888867109f90)
|
- [ ] [createCalibrateDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga7fed9707ad5f2cc0e633888867109f90)
|
||||||
- [ ] [createCalibrateRobertson](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gae77813a21cd351a596619e5ff013be5d)
|
- [ ] [createCalibrateRobertson](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gae77813a21cd351a596619e5ff013be5d)
|
||||||
- [ ] [createMergeDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gaa8eab36bc764abb2a225db7c945f87f9)
|
- [ ] [createMergeDebevec](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gaa8eab36bc764abb2a225db7c945f87f9)
|
||||||
@ -200,10 +200,10 @@ Your pull requests will be greatly appreciated!
|
|||||||
- [ ] [createTonemapMantiuk](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga3b3f3bf083b7515802f039a6a70f2d21)
|
- [ ] [createTonemapMantiuk](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#ga3b3f3bf083b7515802f039a6a70f2d21)
|
||||||
- [ ] [createTonemapReinhard](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gadabe7f6bf1fa96ad0fd644df9182c2fb)
|
- [ ] [createTonemapReinhard](https://docs.opencv.org/master/d6/df5/group__photo__hdr.html#gadabe7f6bf1fa96ad0fd644df9182c2fb)
|
||||||
- [ ] [decolor](https://docs.opencv.org/master/d4/d32/group__photo__decolor.html#ga4864d4c007bda5dacdc5e9d4ed7e222c)
|
- [ ] [decolor](https://docs.opencv.org/master/d4/d32/group__photo__decolor.html#ga4864d4c007bda5dacdc5e9d4ed7e222c)
|
||||||
- [ ] [detailEnhance](https://docs.opencv.org/master/df/dac/group__photo__render.html#ga0de660cb6f371a464a74c7b651415975)
|
- [X] [detailEnhance](https://docs.opencv.org/master/df/dac/group__photo__render.html#ga0de660cb6f371a464a74c7b651415975)
|
||||||
- [ ] [edgePreservingFilter](https://docs.opencv.org/master/df/dac/group__photo__render.html#gafaee2977597029bc8e35da6e67bd31f7)
|
- [X] [edgePreservingFilter](https://docs.opencv.org/master/df/dac/group__photo__render.html#gafaee2977597029bc8e35da6e67bd31f7)
|
||||||
- [ ] [pencilSketch](https://docs.opencv.org/master/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c)
|
- [X] [pencilSketch](https://docs.opencv.org/master/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c)
|
||||||
- [ ] [stylization](https://docs.opencv.org/master/df/dac/group__photo__render.html#gacb0f7324017df153d7b5d095aed53206)
|
- [X] [stylization](https://docs.opencv.org/master/df/dac/group__photo__render.html#gacb0f7324017df153d7b5d095aed53206)
|
||||||
|
|
||||||
- [ ] stitching. Images stitching
|
- [ ] stitching. Images stitching
|
||||||
|
|
||||||
@ -393,7 +393,7 @@ Your pull requests will be greatly appreciated!
|
|||||||
- [ ] **tracking. Tracking API - WORK STARTED**
|
- [ ] **tracking. Tracking API - WORK STARTED**
|
||||||
- [ ] videostab. Video Stabilization
|
- [ ] videostab. Video Stabilization
|
||||||
- [ ] viz. 3D Visualizer
|
- [ ] viz. 3D Visualizer
|
||||||
- [ ] wechat_qrcode. WeChat QR code detector for detecting and parsing QR code.
|
- [X] **wechat_qrcode. WeChat QR code detector for detecting and parsing QR code**
|
||||||
- [ ] **xfeatures2d. Extra 2D Features Framework - WORK STARTED**
|
- [ ] **xfeatures2d. Extra 2D Features Framework - WORK STARTED**
|
||||||
- [ ] ximgproc. Extended Image Processing
|
- [ ] ximgproc. Extended Image Processing
|
||||||
- [ ] xobjdetect. Extended object detection
|
- [ ] xobjdetect. Extended object detection
|
||||||
|
26
vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd
generated
vendored
26
vendor/gocv.io/x/gocv/appveyor_build_opencv.cmd
generated
vendored
@ -3,23 +3,27 @@ if not exist "C:\opencv" mkdir "C:\opencv"
|
|||||||
if not exist "C:\opencv\build" mkdir "C:\opencv\build"
|
if not exist "C:\opencv\build" mkdir "C:\opencv\build"
|
||||||
if not exist "C:\opencv\testdata" mkdir "C:\opencv\testdata"
|
if not exist "C:\opencv\testdata" mkdir "C:\opencv\testdata"
|
||||||
|
|
||||||
appveyor DownloadFile https://github.com/opencv/opencv/archive/4.5.4.zip -FileName c:\opencv\opencv-4.5.4.zip
|
appveyor DownloadFile https://github.com/opencv/opencv/archive/4.5.5.zip -FileName c:\opencv\opencv-4.5.5.zip
|
||||||
7z x c:\opencv\opencv-4.5.4.zip -oc:\opencv -y
|
7z x c:\opencv\opencv-4.5.5.zip -oc:\opencv -y
|
||||||
del c:\opencv\opencv-4.5.4.zip /q
|
del c:\opencv\opencv-4.5.5.zip /q
|
||||||
appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.5.4.zip -FileName c:\opencv\opencv_contrib-4.5.4.zip
|
appveyor DownloadFile https://github.com/opencv/opencv_contrib/archive/4.5.5.zip -FileName c:\opencv\opencv_contrib-4.5.5.zip
|
||||||
7z x c:\opencv\opencv_contrib-4.5.4.zip -oc:\opencv -y
|
7z x c:\opencv\opencv_contrib-4.5.5.zip -oc:\opencv -y
|
||||||
del c:\opencv\opencv_contrib-4.5.4.zip /q
|
del c:\opencv\opencv_contrib-4.5.5.zip /q
|
||||||
cd C:\opencv\build
|
cd C:\opencv\build
|
||||||
set PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\PsTools;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Tools\NuGet;C:\Program Files\LLVM\bin;C:\Tools\curl\bin;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Users\appveyor\AppData\Local\Yarn\bin;C:\Program Files\AppVeyor\BuildAgent\
|
set PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\PsTools;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Tools\NuGet;C:\Program Files\LLVM\bin;C:\Tools\curl\bin;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Yarn\bin;C:\Users\appveyor\AppData\Local\Yarn\bin;C:\Program Files\AppVeyor\BuildAgent\
|
||||||
set PATH=%PATH%;C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin
|
set PATH=%PATH%;C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
|
||||||
dir C:\opencv
|
dir C:\opencv
|
||||||
cmake C:\opencv\opencv-4.5.4 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.5.4\modules -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=OFF -DCPU_DISPATCH= -DBUILD_opencv_gapi=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -DWITH_TBB=ON -Wno-dev
|
cmake C:\opencv\opencv-4.5.5 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.5.5\modules -DBUILD_SHARED_LIBS=ON -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=ON -DCPU_DISPATCH= -DBUILD_opencv_gapi=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -DWITH_TBB=ON -Wno-dev
|
||||||
mingw32-make -j%NUMBER_OF_PROCESSORS%
|
mingw32-make -j%NUMBER_OF_PROCESSORS%
|
||||||
mingw32-make install
|
mingw32-make install
|
||||||
appveyor DownloadFile https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/bvlc_googlenet.prototxt -FileName C:\opencv\testdata\bvlc_googlenet.prototxt
|
appveyor DownloadFile https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/bvlc_googlenet.prototxt -FileName C:\opencv\testdata\bvlc_googlenet.prototxt
|
||||||
|
appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.caffemodel -FileName C:\opencv\testdata\detect.caffemodel
|
||||||
|
appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/detect.prototxt -FileName C:\opencv\testdata\detect.prototxt
|
||||||
|
appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.caffemodel -FileName C:\opencv\testdata\sr.caffemodel
|
||||||
|
appveyor DownloadFile https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/wechat_qrcode/sr.prototxt -FileName C:\opencv\testdata\sr.prototxt
|
||||||
appveyor DownloadFile http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -FileName C:\opencv\testdata\bvlc_googlenet.caffemodel
|
appveyor DownloadFile http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -FileName C:\opencv\testdata\bvlc_googlenet.caffemodel
|
||||||
appveyor DownloadFile https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip -FileName C:\opencv\testdata\inception5h.zip
|
appveyor DownloadFile https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip -FileName C:\opencv\testdata\inception5h.zip
|
||||||
appveyor DownloadFile https://github.com/onnx/models/raw/master/vision/classification/inception_and_googlenet/googlenet/model/googlenet-9.onnx -FileName C:\opencv\testdata\googlenet-9.onnx
|
appveyor DownloadFile https://github.com/onnx/models/raw/main/vision/classification/inception_and_googlenet/googlenet/model/googlenet-9.onnx -FileName C:\opencv\testdata\googlenet-9.onnx
|
||||||
7z x C:\opencv\testdata\inception5h.zip -oC:\opencv\testdata tensorflow_inception_graph.pb -y
|
7z x C:\opencv\testdata\inception5h.zip -oC:\opencv\testdata tensorflow_inception_graph.pb -y
|
||||||
rmdir c:\opencv\opencv-4.5.4 /s /q
|
rmdir c:\opencv\opencv-4.5.5 /s /q
|
||||||
rmdir c:\opencv\opencv_contrib-4.5.4 /s /q
|
rmdir c:\opencv\opencv_contrib-4.5.5 /s /q
|
||||||
|
4
vendor/gocv.io/x/gocv/calib3d.cpp
generated
vendored
4
vendor/gocv.io/x/gocv/calib3d.cpp
generated
vendored
@ -76,3 +76,7 @@ Mat EstimateAffinePartial2D(Point2fVector from, Point2fVector to) {
|
|||||||
Mat EstimateAffine2D(Point2fVector from, Point2fVector to) {
|
Mat EstimateAffine2D(Point2fVector from, Point2fVector to) {
|
||||||
return new cv::Mat(cv::estimateAffine2D(*from, *to));
|
return new cv::Mat(cv::estimateAffine2D(*from, *to));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Mat EstimateAffine2DWithParams(Point2fVector from, Point2fVector to, Mat inliers, int method, double ransacReprojThreshold, size_t maxIters, double confidence, size_t refineIters) {
|
||||||
|
return new cv::Mat(cv::estimateAffine2D(*from, *to, *inliers, method, ransacReprojThreshold, maxIters, confidence, refineIters));
|
||||||
|
}
|
||||||
|
9
vendor/gocv.io/x/gocv/calib3d.go
generated
vendored
9
vendor/gocv.io/x/gocv/calib3d.go
generated
vendored
@ -245,3 +245,12 @@ func EstimateAffinePartial2D(from, to Point2fVector) Mat {
|
|||||||
func EstimateAffine2D(from, to Point2fVector) Mat {
|
func EstimateAffine2D(from, to Point2fVector) Mat {
|
||||||
return newMat(C.EstimateAffine2D(from.p, to.p))
|
return newMat(C.EstimateAffine2D(from.p, to.p))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EstimateAffine2DWithParams Computes an optimal affine transformation between two 2D point sets
|
||||||
|
// with additional optional parameters.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.0.0/d9/d0c/group__calib3d.html#ga27865b1d26bac9ce91efaee83e94d4dd
|
||||||
|
func EstimateAffine2DWithParams(from Point2fVector, to Point2fVector, inliers Mat, method int, ransacReprojThreshold float64, maxIters uint, confidence float64, refineIters uint) Mat {
|
||||||
|
return newMat(C.EstimateAffine2DWithParams(from.p, to.p, inliers.p, C.int(method), C.double(ransacReprojThreshold), C.size_t(maxIters), C.double(confidence), C.size_t(refineIters)))
|
||||||
|
}
|
||||||
|
3
vendor/gocv.io/x/gocv/calib3d.h
generated
vendored
3
vendor/gocv.io/x/gocv/calib3d.h
generated
vendored
@ -28,8 +28,9 @@ bool FindChessboardCornersSBWithMeta(Mat image, Size patternSize, Mat corners, i
|
|||||||
void DrawChessboardCorners(Mat image, Size patternSize, Mat corners, bool patternWasFound);
|
void DrawChessboardCorners(Mat image, Size patternSize, Mat corners, bool patternWasFound);
|
||||||
Mat EstimateAffinePartial2D(Point2fVector from, Point2fVector to);
|
Mat EstimateAffinePartial2D(Point2fVector from, Point2fVector to);
|
||||||
Mat EstimateAffine2D(Point2fVector from, Point2fVector to);
|
Mat EstimateAffine2D(Point2fVector from, Point2fVector to);
|
||||||
|
Mat EstimateAffine2DWithParams(Point2fVector from, Point2fVector to, Mat inliers, int method, double ransacReprojThreshold, size_t maxIters, double confidence, size_t refineIters);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //_OPENCV3_CALIB_H
|
#endif //_OPENCV3_CALIB_H
|
||||||
|
2
vendor/gocv.io/x/gocv/cgo.go
generated
vendored
2
vendor/gocv.io/x/gocv/cgo.go
generated
vendored
@ -9,6 +9,6 @@ package gocv
|
|||||||
#cgo !windows pkg-config: opencv4
|
#cgo !windows pkg-config: opencv4
|
||||||
#cgo CXXFLAGS: --std=c++11
|
#cgo CXXFLAGS: --std=c++11
|
||||||
#cgo windows CPPFLAGS: -IC:/opencv/build/install/include
|
#cgo windows CPPFLAGS: -IC:/opencv/build/install/include
|
||||||
#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core454 -lopencv_face454 -lopencv_videoio454 -lopencv_imgproc454 -lopencv_highgui454 -lopencv_imgcodecs454 -lopencv_objdetect454 -lopencv_features2d454 -lopencv_video454 -lopencv_dnn454 -lopencv_xfeatures2d454 -lopencv_plot454 -lopencv_tracking454 -lopencv_img_hash454 -lopencv_calib3d454 -lopencv_bgsegm454 -lopencv_photo454 -lopencv_aruco454
|
#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/lib -lopencv_core455 -lopencv_face455 -lopencv_videoio455 -lopencv_imgproc455 -lopencv_highgui455 -lopencv_imgcodecs455 -lopencv_objdetect455 -lopencv_features2d455 -lopencv_video455 -lopencv_dnn455 -lopencv_xfeatures2d455 -lopencv_plot455 -lopencv_tracking455 -lopencv_img_hash455 -lopencv_calib3d455 -lopencv_bgsegm455 -lopencv_photo455 -lopencv_aruco455 -lopencv_wechat_qrcode455
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
5
vendor/gocv.io/x/gocv/cgo_static.go
generated
vendored
5
vendor/gocv.io/x/gocv/cgo_static.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
//go:build !customenv && static
|
||||||
// +build !customenv,static
|
// +build !customenv,static
|
||||||
|
|
||||||
package gocv
|
package gocv
|
||||||
@ -7,8 +8,8 @@ package gocv
|
|||||||
/*
|
/*
|
||||||
#cgo CXXFLAGS: --std=c++11
|
#cgo CXXFLAGS: --std=c++11
|
||||||
#cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4
|
#cgo !windows CPPFLAGS: -I/usr/local/include -I/usr/local/include/opencv4
|
||||||
#cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath
|
#cgo !windows LDFLAGS: -L/usr/local/lib -L/usr/local/lib/opencv4/3rdparty -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_highgui -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_wechat_qrcode -lopencv_photo -lopencv_imgproc -lopencv_core -littnotify -llibprotobuf -lIlmImf -lquirc -lippiw -lippicv -lade -lz -ljpeg -ldl -lm -lpthread -lrt -lquadmath
|
||||||
#cgo windows CPPFLAGS: -IC:/opencv/build/install/include
|
#cgo windows CPPFLAGS: -IC:/opencv/build/install/include
|
||||||
#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo452 -lopencv_tracking452 -lopencv_superres452 -lopencv_stitching452 -lopencv_optflow452 -lopencv_gapi452 -lopencv_face452 -lopencv_dpm452 -lopencv_dnn_objdetect452 -lopencv_ccalib452 -lopencv_bioinspired452 -lopencv_bgsegm452 -lopencv_aruco452 -lopencv_xobjdetect452 -lopencv_ximgproc452 -lopencv_xfeatures2d452 -lopencv_videostab452 -lopencv_video452 -lopencv_structured_light452 -lopencv_shape452 -lopencv_rgbd452 -lopencv_rapid452 -lopencv_objdetect452 -lopencv_mcc452 -lopencv_highgui452 -lopencv_datasets452 -lopencv_calib3d452 -lopencv_videoio452 -lopencv_text452 -lopencv_line_descriptor452 -lopencv_imgcodecs452 -lopencv_img_hash452 -lopencv_hfs452 -lopencv_fuzzy452 -lopencv_features2d452 -lopencv_dnn_superres452 -lopencv_dnn452 -lopencv_xphoto452 -lopencv_surface_matching452 -lopencv_reg452 -lopencv_quality452 -lopencv_plot452 -lopencv_photo452 -lopencv_phase_unwrapping452 -lopencv_ml452 -lopencv_intensity_transform452 -lopencv_imgproc452 -lopencv_flann452 -lopencv_core452 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32
|
#cgo windows LDFLAGS: -LC:/opencv/build/install/x64/mingw/staticlib -lopencv_stereo455 -lopencv_tracking455 -lopencv_superres455 -lopencv_stitching455 -lopencv_optflow455 -lopencv_gapi455 -lopencv_face455 -lopencv_dpm455 -lopencv_dnn_objdetect455 -lopencv_ccalib455 -lopencv_bioinspired455 -lopencv_bgsegm455 -lopencv_aruco455 -lopencv_xobjdetect455 -lopencv_ximgproc455 -lopencv_xfeatures2d455 -lopencv_videostab455 -lopencv_video455 -lopencv_structured_light455 -lopencv_shape455 -lopencv_rgbd455 -lopencv_rapid455 -lopencv_objdetect455 -lopencv_mcc455 -lopencv_highgui455 -lopencv_datasets455 -lopencv_calib3d455 -lopencv_videoio455 -lopencv_text455 -lopencv_line_descriptor455 -lopencv_imgcodecs455 -lopencv_img_hash455 -lopencv_hfs455 -lopencv_fuzzy455 -lopencv_features2d455 -lopencv_dnn_superres455 -lopencv_dnn455 -lopencv_xphoto455 -lopencv_wechat_qrcode455 -lopencv_surface_matching455 -lopencv_reg455 -lopencv_quality455 -lopencv_plot455 -lopencv_photo455 -lopencv_phase_unwrapping455 -lopencv_ml455 -lopencv_intensity_transform455 -lopencv_imgproc455 -lopencv_flann455 -lopencv_core455 -lade -lquirc -llibprotobuf -lIlmImf -llibpng -llibopenjp2 -llibwebp -llibtiff -llibjpeg-turbo -lzlib -lkernel32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -luser32
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
15
vendor/gocv.io/x/gocv/core.cpp
generated
vendored
15
vendor/gocv.io/x/gocv/core.cpp
generated
vendored
@ -59,18 +59,21 @@ Mat Mat_NewWithSizesFromBytes(IntVector sizes, int type, struct ByteArray buf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Mat Eye(int rows, int cols, int type) {
|
Mat Eye(int rows, int cols, int type) {
|
||||||
cv::Mat temp = cv::Mat::eye(rows, cols, type);
|
cv::Mat* mat = new cv::Mat(rows, cols, type);
|
||||||
return new cv::Mat(rows, cols, type, temp.data);
|
*mat = cv::Mat::eye(rows, cols, type);
|
||||||
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat Zeros(int rows, int cols, int type) {
|
Mat Zeros(int rows, int cols, int type) {
|
||||||
cv::Mat temp = cv::Mat::zeros(rows, cols, type);
|
cv::Mat* mat = new cv::Mat(rows, cols, type);
|
||||||
return new cv::Mat(rows, cols, type, temp.data);
|
*mat = cv::Mat::zeros(rows, cols, type);
|
||||||
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat Ones(int rows, int cols, int type) {
|
Mat Ones(int rows, int cols, int type) {
|
||||||
cv::Mat temp = cv::Mat::ones(rows, cols, type);
|
cv::Mat* mat = new cv::Mat(rows, cols, type);
|
||||||
return new cv::Mat(rows, cols, type, temp.data);
|
*mat = cv::Mat::ones(rows, cols, type);
|
||||||
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat Mat_FromPtr(Mat m, int rows, int cols, int type, int prow, int pcol) {
|
Mat Mat_FromPtr(Mat m, int rows, int cols, int type, int prow, int pcol) {
|
||||||
|
13
vendor/gocv.io/x/gocv/imgproc.cpp
generated
vendored
13
vendor/gocv.io/x/gocv/imgproc.cpp
generated
vendored
@ -550,6 +550,19 @@ void DrawContours(Mat src, PointsVector contours, int contourIdx, Scalar color,
|
|||||||
cv::drawContours(*src, *contours, contourIdx, c, thickness);
|
cv::drawContours(*src, *contours, contourIdx, c, thickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DrawContoursWithParams(Mat src, PointsVector contours, int contourIdx, Scalar color, int thickness, int lineType, Mat hierarchy, int maxLevel, Point offset) {
|
||||||
|
cv::Scalar c = cv::Scalar(color.val1, color.val2, color.val3, color.val4);
|
||||||
|
cv::Point offsetPt(offset.x, offset.y);
|
||||||
|
|
||||||
|
std::vector<cv::Vec4i> vecHierarchy;
|
||||||
|
if (hierarchy->empty() == 0) {
|
||||||
|
for (int j = 0; j < hierarchy->cols; ++j) {
|
||||||
|
vecHierarchy.push_back(hierarchy->at<cv::Vec4i>(0, j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cv::drawContours(*src, *contours, contourIdx, c, thickness, lineType, vecHierarchy, maxLevel, offsetPt);
|
||||||
|
}
|
||||||
|
|
||||||
void Sobel(Mat src, Mat dst, int ddepth, int dx, int dy, int ksize, double scale, double delta, int borderType) {
|
void Sobel(Mat src, Mat dst, int ddepth, int dx, int dy, int ksize, double scale, double delta, int borderType) {
|
||||||
cv::Sobel(*src, *dst, ddepth, dx, dy, ksize, scale, delta, borderType);
|
cv::Sobel(*src, *dst, ddepth, dx, dy, ksize, scale, delta, borderType);
|
||||||
}
|
}
|
||||||
|
20
vendor/gocv.io/x/gocv/imgproc.go
generated
vendored
20
vendor/gocv.io/x/gocv/imgproc.go
generated
vendored
@ -1780,6 +1780,26 @@ func DrawContours(img *Mat, contours PointsVector, contourIdx int, c color.RGBA,
|
|||||||
C.DrawContours(img.p, contours.p, C.int(contourIdx), sColor, C.int(thickness))
|
C.DrawContours(img.p, contours.p, C.int(contourIdx), sColor, C.int(thickness))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DrawContoursWithParams draws contours outlines or filled contours.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/master/d6/d6e/group__imgproc__draw.html#ga746c0625f1781f1ffc9056259103edbc
|
||||||
|
//
|
||||||
|
func DrawContoursWithParams(img *Mat, contours PointsVector, contourIdx int, c color.RGBA, thickness int, lineType LineType, hierarchy Mat, maxLevel int, offset image.Point) {
|
||||||
|
sColor := C.struct_Scalar{
|
||||||
|
val1: C.double(c.B),
|
||||||
|
val2: C.double(c.G),
|
||||||
|
val3: C.double(c.R),
|
||||||
|
val4: C.double(c.A),
|
||||||
|
}
|
||||||
|
offsetP := C.struct_Point{
|
||||||
|
x: C.int(offset.X),
|
||||||
|
y: C.int(offset.Y),
|
||||||
|
}
|
||||||
|
|
||||||
|
C.DrawContoursWithParams(img.p, contours.p, C.int(contourIdx), sColor, C.int(thickness), C.int(lineType), hierarchy.p, C.int(maxLevel), offsetP)
|
||||||
|
}
|
||||||
|
|
||||||
// Remap applies a generic geometrical transformation to an image.
|
// Remap applies a generic geometrical transformation to an image.
|
||||||
//
|
//
|
||||||
// For further details, please see:
|
// For further details, please see:
|
||||||
|
1
vendor/gocv.io/x/gocv/imgproc.h
generated
vendored
1
vendor/gocv.io/x/gocv/imgproc.h
generated
vendored
@ -113,6 +113,7 @@ Mat GetAffineTransform(PointVector src, PointVector dst);
|
|||||||
Mat GetAffineTransform2f(Point2fVector src, Point2fVector dst);
|
Mat GetAffineTransform2f(Point2fVector src, Point2fVector dst);
|
||||||
Mat FindHomography(Mat src, Mat dst, int method, double ransacReprojThreshold, Mat mask, const int maxIters, const double confidence) ;
|
Mat FindHomography(Mat src, Mat dst, int method, double ransacReprojThreshold, Mat mask, const int maxIters, const double confidence) ;
|
||||||
void DrawContours(Mat src, PointsVector contours, int contourIdx, Scalar color, int thickness);
|
void DrawContours(Mat src, PointsVector contours, int contourIdx, Scalar color, int thickness);
|
||||||
|
void DrawContoursWithParams(Mat src, PointsVector contours, int contourIdx, Scalar color, int thickness, int lineType, Mat hierarchy, int maxLevel, Point offset);
|
||||||
void Sobel(Mat src, Mat dst, int ddepth, int dx, int dy, int ksize, double scale, double delta, int borderType);
|
void Sobel(Mat src, Mat dst, int ddepth, int dx, int dy, int ksize, double scale, double delta, int borderType);
|
||||||
void SpatialGradient(Mat src, Mat dx, Mat dy, int ksize, int borderType);
|
void SpatialGradient(Mat src, Mat dx, Mat dy, int ksize, int borderType);
|
||||||
void Remap(Mat src, Mat dst, Mat map1, Mat map2, int interpolation, int borderMode, Scalar borderValue);
|
void Remap(Mat src, Mat dst, Mat map1, Mat map2, int interpolation, int borderMode, Scalar borderValue);
|
||||||
|
32
vendor/gocv.io/x/gocv/photo.cpp
generated
vendored
32
vendor/gocv.io/x/gocv/photo.cpp
generated
vendored
@ -84,3 +84,35 @@ void AlignMTB_Process(AlignMTB b, struct Mats src, struct Mats *dst) {
|
|||||||
}
|
}
|
||||||
dst->length = (int)dstMats.size();
|
dst->length = (int)dstMats.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FastNlMeansDenoising(Mat src, Mat dst) {
|
||||||
|
cv::fastNlMeansDenoising(*src, *dst);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FastNlMeansDenoisingWithParams(Mat src, Mat dst, float h, int templateWindowSize, int searchWindowSize) {
|
||||||
|
cv::fastNlMeansDenoising(*src, *dst, h, templateWindowSize, searchWindowSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FastNlMeansDenoisingColored(Mat src, Mat dst) {
|
||||||
|
cv::fastNlMeansDenoisingColored(*src, *dst);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FastNlMeansDenoisingColoredWithParams(Mat src, Mat dst, float h, float hColor, int templateWindowSize, int searchWindowSize) {
|
||||||
|
cv::fastNlMeansDenoisingColored(*src, *dst, h, hColor, templateWindowSize, searchWindowSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdgePreservingFilter(Mat src, Mat dst, int filter, float sigma_s, float sigma_r) {
|
||||||
|
cv::edgePreservingFilter(*src, *dst, filter, sigma_s, sigma_r);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DetailEnhance(Mat src, Mat dst, float sigma_s, float sigma_r) {
|
||||||
|
cv::detailEnhance(*src, *dst, sigma_s, sigma_r);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s, float sigma_r, float shade_factor) {
|
||||||
|
cv::pencilSketch(*src, *dst1, *dst2, sigma_s, sigma_r, shade_factor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Stylization(Mat src, Mat dst, float sigma_s, float sigma_r) {
|
||||||
|
cv::stylization(*src, *dst, sigma_s, sigma_r);
|
||||||
|
}
|
||||||
|
89
vendor/gocv.io/x/gocv/photo.go
generated
vendored
89
vendor/gocv.io/x/gocv/photo.go
generated
vendored
@ -5,6 +5,7 @@ package gocv
|
|||||||
#include "photo.h"
|
#include "photo.h"
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"image"
|
"image"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
@ -225,3 +226,91 @@ func (b *AlignMTB) Process(src []Mat, dst *[]Mat) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FastNlMeansDenoising performs image denoising using Non-local Means Denoising algorithm
|
||||||
|
// http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93
|
||||||
|
//
|
||||||
|
func FastNlMeansDenoising(src Mat, dst *Mat) {
|
||||||
|
C.FastNlMeansDenoising(src.p, dst.p)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FastNlMeansDenoisingWithParams performs image denoising using Non-local Means Denoising algorithm
|
||||||
|
// http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/d1/d79/group__photo__denoise.html#ga4c6b0031f56ea3f98f768881279ffe93
|
||||||
|
//
|
||||||
|
func FastNlMeansDenoisingWithParams(src Mat, dst *Mat, h float32, templateWindowSize int, searchWindowSize int) {
|
||||||
|
C.FastNlMeansDenoisingWithParams(src.p, dst.p, C.float(h), C.int(templateWindowSize), C.int(searchWindowSize))
|
||||||
|
}
|
||||||
|
|
||||||
|
// FastNlMeansDenoisingColored is a modification of fastNlMeansDenoising function for colored images.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/d1/d79/group__photo__denoise.html#ga21abc1c8b0e15f78cd3eff672cb6c476
|
||||||
|
//
|
||||||
|
func FastNlMeansDenoisingColored(src Mat, dst *Mat) {
|
||||||
|
C.FastNlMeansDenoisingColored(src.p, dst.p)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FastNlMeansDenoisingColoredWithParams is a modification of fastNlMeansDenoising function for colored images.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/d1/d79/group__photo__denoise.html#ga21abc1c8b0e15f78cd3eff672cb6c476
|
||||||
|
//
|
||||||
|
func FastNlMeansDenoisingColoredWithParams(src Mat, dst *Mat, h float32, hColor float32, templateWindowSize int, searchWindowSize int) {
|
||||||
|
C.FastNlMeansDenoisingColoredWithParams(src.p, dst.p, C.float(h), C.float(hColor), C.int(templateWindowSize), C.int(searchWindowSize))
|
||||||
|
}
|
||||||
|
|
||||||
|
// DetailEnhance filter enhances the details of a particular image
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c
|
||||||
|
//
|
||||||
|
func DetailEnhance(src Mat, dst *Mat, sigma_s, sigma_r float32) {
|
||||||
|
C.DetailEnhance(src.p, dst.p, C.float(sigma_s), C.float(sigma_r))
|
||||||
|
}
|
||||||
|
|
||||||
|
type EdgeFilter int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// RecursFilter Recursive Filtering.
|
||||||
|
RecursFilter EdgeFilter = 1
|
||||||
|
|
||||||
|
// NormconvFilter Normalized Convolution Filtering.
|
||||||
|
NormconvFilter = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
// EdgePreservingFilter filtering is the fundamental operation in image and video processing.
|
||||||
|
// Edge-preserving smoothing filters are used in many different applications.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/df/dac/group__photo__render.html#gafaee2977597029bc8e35da6e67bd31f7
|
||||||
|
//
|
||||||
|
func EdgePreservingFilter(src Mat, dst *Mat, filter EdgeFilter, sigma_s, sigma_r float32) {
|
||||||
|
C.EdgePreservingFilter(src.p, dst.p, C.int(filter), C.float(sigma_s), C.float(sigma_r))
|
||||||
|
}
|
||||||
|
|
||||||
|
// PencilSketch pencil-like non-photorealistic line drawing.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/df/dac/group__photo__render.html#gae5930dd822c713b36f8529b21ddebd0c
|
||||||
|
//
|
||||||
|
func PencilSketch(src Mat, dst1, dst2 *Mat, sigma_s, sigma_r, shade_factor float32) {
|
||||||
|
C.PencilSketch(src.p, dst1.p, dst2.p, C.float(sigma_s), C.float(sigma_r), C.float(shade_factor))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stylization aims to produce digital imagery with a wide variety of effects
|
||||||
|
// not focused on photorealism. Edge-aware filters are ideal for stylization,
|
||||||
|
// as they can abstract regions of low contrast while preserving, or enhancing,
|
||||||
|
// high-contrast features.
|
||||||
|
//
|
||||||
|
// For further details, please see:
|
||||||
|
// https://docs.opencv.org/4.x/df/dac/group__photo__render.html#gacb0f7324017df153d7b5d095aed53206
|
||||||
|
//
|
||||||
|
func Stylization(src Mat, dst *Mat, sigma_s, sigma_r float32) {
|
||||||
|
C.Stylization(src.p, dst.p, C.float(sigma_s), C.float(sigma_r))
|
||||||
|
}
|
||||||
|
11
vendor/gocv.io/x/gocv/photo.h
generated
vendored
11
vendor/gocv.io/x/gocv/photo.h
generated
vendored
@ -4,7 +4,6 @@
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
#include <opencv2/photo.hpp>
|
#include <opencv2/photo.hpp>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -29,8 +28,11 @@ void IlluminationChange(Mat src, Mat mask, Mat dst, float alpha, float beta);
|
|||||||
void TextureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold, int kernel_size);
|
void TextureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold, int kernel_size);
|
||||||
|
|
||||||
void FastNlMeansDenoisingColoredMulti(struct Mats src, Mat dst, int imgToDenoiseIndex, int temporalWindowSize);
|
void FastNlMeansDenoisingColoredMulti(struct Mats src, Mat dst, int imgToDenoiseIndex, int temporalWindowSize);
|
||||||
|
|
||||||
void FastNlMeansDenoisingColoredMultiWithParams(struct Mats src, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize );
|
void FastNlMeansDenoisingColoredMultiWithParams(struct Mats src, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize );
|
||||||
|
void FastNlMeansDenoising(Mat src, Mat dst);
|
||||||
|
void FastNlMeansDenoisingWithParams(Mat src, Mat dst, float h, int templateWindowSize, int searchWindowSize);
|
||||||
|
void FastNlMeansDenoisingColored(Mat src, Mat dst);
|
||||||
|
void FastNlMeansDenoisingColoredWithParams(Mat src, Mat dst, float h, float hColor, int templateWindowSize, int searchWindowSize);
|
||||||
|
|
||||||
MergeMertens MergeMertens_Create();
|
MergeMertens MergeMertens_Create();
|
||||||
MergeMertens MergeMertens_CreateWithParams(float contrast_weight, float saturation_weight, float exposure_weight);
|
MergeMertens MergeMertens_CreateWithParams(float contrast_weight, float saturation_weight, float exposure_weight);
|
||||||
@ -42,6 +44,11 @@ AlignMTB AlignMTB_CreateWithParams(int max_bits, int exclude_range, bool cut);
|
|||||||
void AlignMTB_Process(AlignMTB b, struct Mats src, struct Mats *dst);
|
void AlignMTB_Process(AlignMTB b, struct Mats src, struct Mats *dst);
|
||||||
void AlignMTB_Close(AlignMTB b);
|
void AlignMTB_Close(AlignMTB b);
|
||||||
|
|
||||||
|
void DetailEnhance(Mat src, Mat dst, float sigma_s, float sigma_r);
|
||||||
|
void EdgePreservingFilter(Mat src, Mat dst, int filter, float sigma_s, float sigma_r);
|
||||||
|
void PencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s, float sigma_r, float shade_factor);
|
||||||
|
void Stylization(Mat src, Mat dst, float sigma_s, float sigma_r);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
2
vendor/gocv.io/x/gocv/version.go
generated
vendored
2
vendor/gocv.io/x/gocv/version.go
generated
vendored
@ -7,7 +7,7 @@ package gocv
|
|||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
// GoCVVersion of this package, for display purposes.
|
// GoCVVersion of this package, for display purposes.
|
||||||
const GoCVVersion = "0.29.0"
|
const GoCVVersion = "0.30.0"
|
||||||
|
|
||||||
// Version returns the current golang package version
|
// Version returns the current golang package version
|
||||||
func Version() string {
|
func Version() string {
|
||||||
|
24
vendor/gocv.io/x/gocv/win_build_opencv.cmd
generated
vendored
24
vendor/gocv.io/x/gocv/win_build_opencv.cmd
generated
vendored
@ -11,18 +11,18 @@ echo.
|
|||||||
REM This is why there is no progress bar:
|
REM This is why there is no progress bar:
|
||||||
REM https://github.com/PowerShell/PowerShell/issues/2138
|
REM https://github.com/PowerShell/PowerShell/issues/2138
|
||||||
|
|
||||||
echo Downloading: opencv-4.5.4.zip [91MB]
|
echo Downloading: opencv-4.5.5.zip [91MB]
|
||||||
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.5.4.zip -OutFile c:\opencv\opencv-4.5.4.zip"
|
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.5.5.zip -OutFile c:\opencv\opencv-4.5.5.zip"
|
||||||
echo Extracting...
|
echo Extracting...
|
||||||
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.5.4.zip -DestinationPath c:\opencv"
|
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.5.5.zip -DestinationPath c:\opencv"
|
||||||
del c:\opencv\opencv-4.5.4.zip /q
|
del c:\opencv\opencv-4.5.5.zip /q
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
echo Downloading: opencv_contrib-4.5.4.zip [58MB]
|
echo Downloading: opencv_contrib-4.5.5.zip [58MB]
|
||||||
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.5.4.zip -OutFile c:\opencv\opencv_contrib-4.5.4.zip"
|
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.5.5.zip -OutFile c:\opencv\opencv_contrib-4.5.5.zip"
|
||||||
echo Extracting...
|
echo Extracting...
|
||||||
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.5.4.zip -DestinationPath c:\opencv"
|
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.5.5.zip -DestinationPath c:\opencv"
|
||||||
del c:\opencv\opencv_contrib-4.5.4.zip /q
|
del c:\opencv\opencv_contrib-4.5.5.zip /q
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
echo Done with downloading and extracting sources.
|
echo Done with downloading and extracting sources.
|
||||||
@ -31,16 +31,16 @@ echo.
|
|||||||
echo on
|
echo on
|
||||||
|
|
||||||
cd /D C:\opencv\build
|
cd /D C:\opencv\build
|
||||||
set PATH=%PATH%;C:\Program Files (x86)\CMake\bin;C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin
|
set PATH=%PATH%;C:\Program Files (x86)\CMake\bin;C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
|
||||||
if [%1]==[static] (
|
if [%1]==[static] (
|
||||||
echo Build static opencv
|
echo Build static opencv
|
||||||
set enable_shared=OFF
|
set enable_shared=OFF
|
||||||
) else (
|
) else (
|
||||||
set enable_shared=ON
|
set enable_shared=ON
|
||||||
)
|
)
|
||||||
cmake C:\opencv\opencv-4.5.4 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.5.4\modules -DBUILD_SHARED_LIBS=%enable_shared% -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=OFF -DCPU_DISPATCH= -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -Wno-dev
|
cmake C:\opencv\opencv-4.5.5 -G "MinGW Makefiles" -BC:\opencv\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.5.5\modules -DBUILD_SHARED_LIBS=%enable_shared% -DWITH_IPP=OFF -DWITH_MSMF=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_wechat_qrcode=ON -DCPU_DISPATCH= -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_OPENCL_D3D11_NV=OFF -DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int64_t -Wno-dev
|
||||||
mingw32-make -j%NUMBER_OF_PROCESSORS%
|
mingw32-make -j%NUMBER_OF_PROCESSORS%
|
||||||
mingw32-make install
|
mingw32-make install
|
||||||
rmdir c:\opencv\opencv-4.5.4 /s /q
|
rmdir c:\opencv\opencv-4.5.5 /s /q
|
||||||
rmdir c:\opencv\opencv_contrib-4.5.4 /s /q
|
rmdir c:\opencv\opencv_contrib-4.5.5 /s /q
|
||||||
chdir /D %GOPATH%\src\gocv.io\x\gocv
|
chdir /D %GOPATH%\src\gocv.io\x\gocv
|
||||||
|
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
@ -21,7 +21,7 @@ go.uber.org/atomic
|
|||||||
# go.uber.org/multierr v1.6.0
|
# go.uber.org/multierr v1.6.0
|
||||||
## explicit; go 1.12
|
## explicit; go 1.12
|
||||||
go.uber.org/multierr
|
go.uber.org/multierr
|
||||||
# go.uber.org/zap v1.19.1
|
# go.uber.org/zap v1.21.0
|
||||||
## explicit; go 1.13
|
## explicit; go 1.13
|
||||||
go.uber.org/zap
|
go.uber.org/zap
|
||||||
go.uber.org/zap/buffer
|
go.uber.org/zap/buffer
|
||||||
@ -29,7 +29,7 @@ go.uber.org/zap/internal/bufferpool
|
|||||||
go.uber.org/zap/internal/color
|
go.uber.org/zap/internal/color
|
||||||
go.uber.org/zap/internal/exit
|
go.uber.org/zap/internal/exit
|
||||||
go.uber.org/zap/zapcore
|
go.uber.org/zap/zapcore
|
||||||
# gocv.io/x/gocv v0.29.0
|
# gocv.io/x/gocv v0.30.0
|
||||||
## explicit; go 1.13
|
## explicit; go 1.13
|
||||||
gocv.io/x/gocv
|
gocv.io/x/gocv
|
||||||
# golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
# golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
||||||
|
Loading…
Reference in New Issue
Block a user