Compare commits
1 commit
master
...
feature/th
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71854e5f60 |
6 changed files with 66 additions and 0 deletions
|
|
@ -2,3 +2,4 @@
|
|||
|
||||
%include "gocv_core.i"
|
||||
%include "gocv_calib3d.i"
|
||||
%include "gocv_imgproc.i"
|
||||
|
|
|
|||
16
gocv/gocv_imgproc.cpp
Normal file
16
gocv/gocv_imgproc.cpp
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#include <opencv2/opencv.hpp>
|
||||
#include <opencv2/core/core.hpp>
|
||||
#include <iostream>
|
||||
|
||||
#include "gocv_imgproc.hpp"
|
||||
|
||||
double GcvThreshold_(cv::Mat src, cv::Mat& dst, double thresh, double maxval, int type) {
|
||||
std::cout << "src " << std::endl << src << std::endl;
|
||||
std::cout << "thresh " << std::endl << thresh << std::endl;
|
||||
std::cout << "maxval " << std::endl << maxval << std::endl;
|
||||
std::cout << "type " << std::endl << type << std::endl;
|
||||
|
||||
double rtn;
|
||||
rtn = cv::threshold(src, src, 1.0, 3.0, 0);
|
||||
return rtn;
|
||||
}
|
||||
17
gocv/gocv_imgproc.go
Normal file
17
gocv/gocv_imgproc.go
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package gocv
|
||||
|
||||
// #cgo CXXFLAGS: -std=c++11
|
||||
// #cgo darwin pkg-config: opencv
|
||||
// #cgo linux pkg-config: opencv
|
||||
import "C"
|
||||
import "github.com/gonum/matrix/mat64"
|
||||
|
||||
// GcvThreshold takes a 3D column vector, and apply cv::Threshold to it.
|
||||
func GcvThreshold(src *mat64.Dense) (dst *mat64.Dense, rtn float64) {
|
||||
gcvSrc := Mat64ToGcvMat(src)
|
||||
gcvDst := NewGcvMat()
|
||||
rtn = GcvThreshold_(gcvSrc, gcvDst, 1.0, 2.0, 0)
|
||||
dst = GcvMatToMat64(gcvDst)
|
||||
|
||||
return dst, rtn
|
||||
}
|
||||
3
gocv/gocv_imgproc.hpp
Normal file
3
gocv/gocv_imgproc.hpp
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#include <opencv2/opencv.hpp>
|
||||
|
||||
double GcvThreshold_(cv::Mat src, cv::Mat& dst, double thresh, double maxval, int type);
|
||||
5
gocv/gocv_imgproc.i
Normal file
5
gocv/gocv_imgproc.i
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
%{
|
||||
#include "gocv_imgproc.hpp"
|
||||
%}
|
||||
|
||||
%include "gocv_imgproc.hpp"
|
||||
24
gocv/gocv_imgproc_test.go
Normal file
24
gocv/gocv_imgproc_test.go
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
package gocv
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/gonum/matrix/mat64"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGcvThreshold(t *testing.T) {
|
||||
rvec := mat64.NewDense(3, 1, []float64{
|
||||
3,
|
||||
-0.3,
|
||||
0.2,
|
||||
})
|
||||
rmat, _ := GcvThreshold(rvec)
|
||||
|
||||
assert.InDeltaSlice(t, []float64{0.59922526, 0.57799222, -0.55394411},
|
||||
rmat.Row(nil, 0), 1e-5)
|
||||
assert.InDeltaSlice(t, []float64{0.20413818, 0.558743, 0.80382452},
|
||||
rmat.Row(nil, 1), 1e-5)
|
||||
assert.InDeltaSlice(t, []float64{0.77411672, -0.5947531, 0.21682264},
|
||||
rmat.Row(nil, 2), 1e-5)
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue