diff --git a/opencv/calib3d/calib3d.go b/opencv/calib3d/calib3d.go deleted file mode 100644 index ee02884..0000000 --- a/opencv/calib3d/calib3d.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2014 . All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Bindings for OpenCV's Calib3d (Camera Calibration -// and 3D Reconstruction) module -package calib3d - -//#include "../opencv.h" -//#cgo linux pkg-config: opencv -//#cgo darwin pkg-config: opencv -//#cgo freebsd pkg-config: opencv -//#cgo windows LDFLAGS: -lopencv_core242.dll -lopencv_imgproc242.dll -lopencv_photo242.dll -lopencv_highgui242.dll -lstdc++ -import "C" -import "unsafe" - -/* -void cvInitIntrinsicParams2D( -const CvMat* object_points, const CvMat* image_points, -const CvMat* npoints, CvSize image_size, CvMat* camera_matrix, -double aspect_ratio=1. ) -*/ - -func InitIntrinsicParams2D(objPoints, imgPoints, nPoints *Mat, imgWidth, imgHeight int, aspectRatio float64) (cameraMatrix *Mat) { - cameraMatrix = CreateMat(3, 3, CV_64F) - - size := C.cvSize(C.int(imgWidth), C.int(imgHeight)) - - C.cvInitIntrinsicParams2D( - unsafe.Pointer(objPoints), - unsafe.Pointer(imgPoints), - unsafe.Pointer(nPoints), - size, - unsafe.Pointer(cameraMatrix), - aspectRatio) - - return cameraMatrix -} diff --git a/opencv/calib3d/calib3d_test.go b/opencv/calib3d/calib3d_test.go deleted file mode 100644 index 34bfa8c..0000000 --- a/opencv/calib3d/calib3d_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package calib3d - -import ( - "testing" -) - -func TestInitIntrinsicParams2D(t *testing.T) { - -} diff --git a/opencv/calib3d/go_calib3d.cpp b/opencv/calib3d/go_calib3d.cpp new file mode 100644 index 0000000..1910eec --- /dev/null +++ b/opencv/calib3d/go_calib3d.cpp @@ -0,0 +1,29 @@ +#include +#include "go_calib3d.hpp" +#include "iostream" +#include "vector" + +using namespace std; + +void +GoCalib3d::foo() { + cout << "Hello there" << endl; + vector< vector> objPts; + vector< vector> imgPts; + + objPts.push_back(vector()); + imgPts.push_back(vector()); + + objPts[0].push_back(cv::Point3f(0, 25, 0)); + objPts[0].push_back(cv::Point3f(0, -25, 0)); + objPts[0].push_back(cv::Point3f(-47, 25, 0)); + objPts[0].push_back(cv::Point3f(-47, -25, 0)); + + imgPts[0].push_back(cv::Point2f(1136.4140625, 1041.89208984)); + imgPts[0].push_back(cv::Point2f(1845.33190918, 671.39581299)); + imgPts[0].push_back(cv::Point2f(302.73373413, 634.79998779)); + imgPts[0].push_back(cv::Point2f(1051.46154785, 352.76107788)); + + cv::Mat cameraMatrix = cv::initCameraMatrix2D(objPts, imgPts, cv::Size(1920, 1080), 1); + std::cout << cameraMatrix << std::endl; +} diff --git a/opencv/calib3d/go_calib3d.go b/opencv/calib3d/go_calib3d.go new file mode 100644 index 0000000..4aa2eae --- /dev/null +++ b/opencv/calib3d/go_calib3d.go @@ -0,0 +1,5 @@ +package go_calib3d + +// #cgo CXXFLAGS: -std=c++11 +// #cgo darwin pkg-config: opencv +import "C" diff --git a/opencv/calib3d/go_calib3d.hpp b/opencv/calib3d/go_calib3d.hpp new file mode 100644 index 0000000..b78be85 --- /dev/null +++ b/opencv/calib3d/go_calib3d.hpp @@ -0,0 +1,9 @@ +class GoCalib3d +{ +public: + GoCalib3d () {}; + virtual ~GoCalib3d () {}; + void foo(); +private: + /* data */ +}; diff --git a/opencv/calib3d/go_calib3d.swigcxx b/opencv/calib3d/go_calib3d.swigcxx new file mode 100644 index 0000000..98d6160 --- /dev/null +++ b/opencv/calib3d/go_calib3d.swigcxx @@ -0,0 +1,7 @@ +%module go_calib3d + +%{ +#include "go_calib3d.hpp" +%} + +%include "go_calib3d.hpp" diff --git a/opencv/calib3d/go_calib3d_test.go b/opencv/calib3d/go_calib3d_test.go new file mode 100644 index 0000000..ff1546d --- /dev/null +++ b/opencv/calib3d/go_calib3d_test.go @@ -0,0 +1,24 @@ +package go_calib3d + +import "testing" + +// [[[ 0. 25. 0.] +// [ 0. -25. 0.] +// [-47. 25. 0.] +// [-47. -25. 0.]]] +// [[[ 1136.4140625 1041.89208984] +// [ 1845.33190918 671.39581299] +// [ 302.73373413 634.79998779] +// [ 1051.46154785 352.76107788]]] +// (1920, 1080) +// [[ 4.82812906e+03 0.00000000e+00 9.59500000e+02] +// [ 0.00000000e+00 4.82812906e+03 5.39500000e+02] +// [ 0.00000000e+00 0.00000000e+00 1.00000000e+00]] + +func TestMain(t *testing.T) { + // objPoints := opencv.CreateMat(4, 3, opencv.CV_64F) + // spew.Dump(objPoints.Get(0, 0)) + // InitIntrinsicParams2D(objPoints) + xxx := NewGoCalib3d() + xxx.Foo() +}