示例#1
0
 public void map(InfoMap infoMap) {
   infoMap
       .put(new Info("algorithm", "opencv_adapters.h").skip())
       .put(new Info("__cplusplus", "CV_StaticAssert").define())
       .put(
           new Info(
                   "defined __ICL",
                   "defined __ICC",
                   "defined __ECL",
                   "defined __ECC",
                   "defined __INTEL_COMPILER",
                   "defined WIN32 || defined _WIN32",
                   "defined(__clang__)",
                   "defined(__GNUC__)",
                   "defined(_MSC_VER)",
                   "OPENCV_NOSTL_TRANSITIONAL",
                   "CV_COLLECT_IMPL_DATA")
               .define(false))
       .put(
           new Info(
                   "CV_ENABLE_UNROLLED",
                   "CV_CDECL",
                   "CV_STDCALL",
                   "CV_IMPL",
                   "CV_EXTERN_C",
                   "CV_Func")
               .cppTypes()
               .cppText(""))
       .put(
           new Info(
                   "CV_DEFAULT",
                   "CV_INLINE",
                   "CV_EXPORTS",
                   "CV_NEON",
                   "CPU_HAS_NEON_FEATURE",
                   "CV_NORETURN",
                   "CV_SUPPRESS_DEPRECATED_START",
                   "CV_SUPPRESS_DEPRECATED_END")
               .cppTypes()
               .annotations())
       .put(new Info("CVAPI").cppText("#define CVAPI(rettype) rettype"))
       .put(
           new Info(
                   "CV_EXPORTS_W",
                   "CV_EXPORTS_W_SIMPLE",
                   "CV_EXPORTS_AS",
                   "CV_EXPORTS_W_MAP",
                   "CV_IN_OUT",
                   "CV_OUT",
                   "CV_PROP",
                   "CV_PROP_RW",
                   "CV_WRAP",
                   "CV_WRAP_AS")
               .cppTypes()
               .annotations()
               .cppText(""))
       .put(
           new Info("CvRNG")
               .cast()
               .valueTypes("long")
               .pointerTypes("LongPointer", "LongBuffer", "long[]"))
       .put(
           new Info(
                   "CV_MAT_DEPTH",
                   "CV_8UC",
                   "CV_8SC",
                   "CV_16UC",
                   "CV_16SC",
                   "CV_32SC",
                   "CV_32FC",
                   "CV_64FC")
               .cppTypes("int", "int"))
       .put(new Info("CV_MAKETYPE", "CV_MAKE_TYPE").cppTypes("int", "int", "int"))
       .put(
           new Info(
                   "CV_8UC1",
                   "CV_8UC2",
                   "CV_8UC3",
                   "CV_8UC4",
                   "CV_8SC1",
                   "CV_8SC2",
                   "CV_8SC3",
                   "CV_8SC4",
                   "CV_16UC1",
                   "CV_16UC2",
                   "CV_16UC3",
                   "CV_16UC4",
                   "CV_16SC1",
                   "CV_16SC2",
                   "CV_16SC3",
                   "CV_16SC4",
                   "CV_32SC1",
                   "CV_32SC2",
                   "CV_32SC3",
                   "CV_32SC4",
                   "CV_32FC1",
                   "CV_32FC2",
                   "CV_32FC3",
                   "CV_32FC4",
                   "CV_64FC1",
                   "CV_64FC2",
                   "CV_64FC3",
                   "CV_64FC4")
               .cppTypes("int")
               .translate())
       .put(
           new Info("CV_MAT_CN", "CV_MAT_TYPE", "CV_IS_CONT_MAT", "CV_IS_MAT_CONT")
               .cppTypes("int", "int"))
       .put(new Info("CV_WHOLE_ARR", "CV_WHOLE_SEQ").cppTypes("CvSlice").translate())
       .put(new Info("CvArr").skip().pointerTypes("CvArr"))
       .put(new Info("_IplROI").pointerTypes("IplROI"))
       .put(new Info("_IplImage").pointerTypes("IplImage"))
       .put(new Info("_IplTileInfo").pointerTypes("IplTileInfo"))
       .put(new Info("IplImage").base("AbstractIplImage"))
       .put(
           new Info("IplConvKernel")
               .base("org.bytedeco.javacpp.helper.opencv_imgproc.AbstractIplConvKernel"))
       .put(new Info("CvMat").base("AbstractCvMat"))
       .put(new Info("CvMatND").base("AbstractCvMatND"))
       .put(new Info("CvSparseMat").base("AbstractCvSparseMat"))
       .put(
           new Info("CvHistogram")
               .base("org.bytedeco.javacpp.helper.opencv_imgproc.AbstractCvHistogram"))
       .put(new Info("CvRect").base("AbstractCvRect"))
       .put(
           new Info("CvPoint")
               .cast()
               .pointerTypes("CvPoint", "IntBuffer", "int[]")
               .base("AbstractCvPoint"))
       .put(
           new Info("CvPoint2D32f")
               .cast()
               .pointerTypes("CvPoint2D32f", "FloatBuffer", "float[]")
               .base("AbstractCvPoint2D32f"))
       .put(
           new Info("CvPoint3D32f")
               .cast()
               .pointerTypes("CvPoint3D32f", "FloatBuffer", "float[]")
               .base("AbstractCvPoint3D32f"))
       .put(
           new Info("CvPoint2D64f")
               .cast()
               .pointerTypes("CvPoint2D64f", "DoubleBuffer", "double[]")
               .base("AbstractCvPoint2D64f"))
       .put(
           new Info("CvPoint3D64f")
               .cast()
               .pointerTypes("CvPoint3D64f", "DoubleBuffer", "double[]")
               .base("AbstractCvPoint3D64f"))
       .put(new Info("CvSize").base("AbstractCvSize"))
       .put(new Info("CvSize2D32f").base("AbstractCvSize2D32f"))
       .put(new Info("CvBox2D").base("AbstractCvBox2D"))
       .put(new Info("CvScalar").base("AbstractCvScalar"))
       .put(new Info("CvMemStorage").base("AbstractCvMemStorage"))
       .put(new Info("CvSeq").base("AbstractCvSeq"))
       .put(new Info("CvSet").base("AbstractCvSet"))
       .put(new Info("CvChain", "CvContour", "CvContourTree").base("CvSeq"))
       .put(new Info("CvGraph").base("AbstractCvGraph"))
       .put(new Info("CvGraphVtx2D").base("CvGraphVtx"))
       .put(new Info("CvChainPtReader").base("CvSeqReader"))
       .put(new Info("CvFileStorage").base("AbstractCvFileStorage"))
       .put(new Info("CvGraphScanner").base("AbstractCvGraphScanner"))
       .put(new Info("CvFont").base("AbstractCvFont"))
       .put(new Info("cvGetSubArr").cppTypes("CvMat*", "CvArr*", "CvMat*", "CvRect"))
       .put(new Info("cvZero").cppTypes("void", "CvArr*"))
       .put(
           new Info("cvCvtScale", "cvScale", "cvCvtScaleAbs")
               .cppTypes("void", "CvArr*", "CvArr*", "double", "double"))
       .put(new Info("cvConvert", "cvT").cppTypes("void", "CvArr*", "CvArr*"))
       .put(new Info("cvCheckArray").cppTypes("int", "CvArr*", "int", "double", "double"))
       .put(new Info("cvMatMulAdd").cppTypes("void", "CvArr*", "CvArr*", "CvArr*", "CvArr*"))
       .put(new Info("cvMatMul").cppTypes("void", "CvArr*", "CvArr*", "CvArr*"))
       .put(
           new Info("cvMatMulAddEx")
               .cppTypes(
                   "void", "CvArr*", "CvArr*", "double", "CvArr*", "double", "CvArr*", "int"))
       .put(new Info("cvMatMulAddS").cppTypes("void", "CvArr*", "CvArr*", "CvMat*", "CvMat*"))
       .put(new Info("cvMirror", "cvInv").cppTypes("void", "CvArr*", "CvArr*", "int"))
       .put(new Info("cvMahalonobis").cppTypes("double", "CvArr*", "CvArr*", "CvArr*"))
       .put(new Info("cvFFT").cppTypes("void", "CvArr*", "CvArr*", "int", "int"))
       .put(new Info("cvGraphFindEdge").cppTypes("CvGraphEdge*", "CvGraph*", "int", "int"))
       .put(
           new Info("cvGraphFindEdgeByPtr")
               .cppTypes("CvGraphEdge*", "CvGraph*", "CvGraphVtx*", "CvGraphVtx*"))
       .put(
           new Info("cvDrawRect", "cvDrawLine")
               .cppTypes("void", "CvArr*", "CvPoint", "CvPoint", "CvScalar", "int", "int", "int"))
       .put(
           new Info("cvDrawCircle")
               .cppTypes("void", "CvArr*", "CvPoint", "int", "CvScalar", "int", "int", "int"))
       .put(
           new Info("cvDrawEllipse")
               .cppTypes(
                   "void",
                   "CvArr*",
                   "CvPoint",
                   "CvSize",
                   "double",
                   "double",
                   "double",
                   "CvScalar",
                   "int",
                   "int",
                   "int"))
       .put(
           new Info("cvDrawPolyLine")
               .cppTypes(
                   "void",
                   "CvArr*",
                   "CvPoint**",
                   "int*",
                   "int",
                   "int",
                   "CvScalar",
                   "int",
                   "int",
                   "int"))
       .put(new Info("__CV_BEGIN__", "__CV_END__", "__CV_EXIT__").cppTypes())
       .put(
           new Info("std::vector<std::vector<char> >", "std::vector<std::vector<unsigned char> >")
               .cast()
               .pointerTypes("ByteVectorVector")
               .define())
       .put(new Info("std::vector<std::vector<int> >").pointerTypes("IntVectorVector").define())
       .put(new Info("std::vector<cv::String>").pointerTypes("StringVector").define())
       .put(new Info("std::vector<cv::Point_<int> >").pointerTypes("PointVector").define())
       .put(new Info("std::vector<cv::Point_<float> >").pointerTypes("Point2fVector").define())
       .put(new Info("std::vector<cv::Point_<double> >").pointerTypes("Point2dVector").define())
       .put(new Info("std::vector<cv::Size_<int> >").pointerTypes("SizeVector").define())
       .put(new Info("std::vector<cv::Rect_<int> >").pointerTypes("RectVector").define())
       .put(new Info("std::vector<cv::KeyPoint>").pointerTypes("KeyPointVector").define())
       .put(new Info("std::vector<cv::DMatch>").pointerTypes("DMatchVector").define())
       .put(
           new Info("std::vector<std::vector<cv::Point_<int> > >")
               .pointerTypes("PointVectorVector")
               .define())
       .put(
           new Info("std::vector<std::vector<cv::Point_<float> > >")
               .pointerTypes("Point2fVectorVector")
               .define())
       .put(
           new Info("std::vector<std::vector<cv::Point_<double> > >")
               .pointerTypes("Point2dVectorVector")
               .define())
       .put(
           new Info("std::vector<std::vector<cv::Rect_<int> > >")
               .pointerTypes("RectVectorVector")
               .define())
       .put(
           new Info("std::vector<std::vector<cv::KeyPoint> >")
               .pointerTypes("KeyPointVectorVector")
               .define())
       .put(
           new Info("std::vector<std::vector<cv::DMatch> >")
               .pointerTypes("DMatchVectorVector")
               .define())
       .put(new Info("std::vector<cv::Mat>").pointerTypes("MatVector").define())
       .put(new Info("std::vector<cv::UMat>").pointerTypes("UMatVector").define())
       .put(new Info("std::pair<int,int>").pointerTypes("IntIntPair").define())
       .put(new Info("std::vector<std::pair<int,int> >").pointerTypes("IntIntPairVector").define())
       .put(
           new Info("std::vector<std::pair<cv::Mat,unsigned char> >")
               .pointerTypes("MatBytePairVector")
               .define())
       .put(
           new Info("std::vector<std::pair<cv::UMat,unsigned char> >")
               .pointerTypes("UMatBytePairVector")
               .define())
       .put(new Info("cv::randu<int>").javaNames("intRand"))
       .put(new Info("cv::randu<float>").javaNames("floatRand"))
       .put(new Info("cv::randu<double>").javaNames("doubleRand"))
       .put(
           new Info(
                   "CvModule::first",
                   "CvModule::last",
                   "CvType::first",
                   "CvType::last",
                   "cv::fromUtf16",
                   "cv::toUtf16",
                   "cv::Exception",
                   "cv::Allocator",
                   "cv::DataDepth",
                   "cv::DataType",
                   "cv::ParamType",
                   "cv::_InputArray",
                   "cv::_OutputArray",
                   "cv::Mat_",
                   "cv::SparseMat_",
                   "cv::cuda::GpuMat",
                   "cv::Matx_AddOp",
                   "cv::Matx_SubOp",
                   "cv::Matx_ScaleOp",
                   "cv::Matx_MulOp",
                   "cv::Matx_MatMulOp",
                   "cv::Matx_TOp",
                   "cv::Matx",
                   "cv::Vec",
                   "cv::MatIterator_",
                   "cv::MatConstIterator_",
                   "cv::Mat::MSize",
                   "cv::Mat::MStep",
                   "cv::MatCommaInitializer_",
                   "cv::MatxCommaInitializer",
                   "cv::VecCommaInitializer",
                   "cv::MatConstIterator(cv::Mat*, int*)",
                   "cv::SparseMatIterator(cv::SparseMat*, int*)",
                   "cv::SparseMatIterator_",
                   "cv::SparseMatConstIterator_",
                   "cv::SparseMatConstIterator::operator --",
                   "cv::AlgorithmInfoData",
                   "cv::AlgorithmInfo::addParam",
                   "cv::CommandLineParser")
               .skip())
       .put(new Info("cv::AutoBuffer<double>").cast().pointerTypes("Pointer"))
       .put(new Info("cv::Mat").base("AbstractMat"))
       .put(new Info("cv::noArray()").javaText("public static Mat noArray() { return null; }"))
       .put(
           new Info("cv::Mat(int, int, int, void*, size_t)")
               .javaText(
                   "public Mat(int rows, int cols, int type, Pointer data, @Cast(\"size_t\") long step/*=AUTO_STEP*/) { super((Pointer)null); allocate(rows, cols, type, data, step); this.data = data; }\n"
                       + "private native void allocate(int rows, int cols, int type, Pointer data, @Cast(\"size_t\") long step/*=AUTO_STEP*/);\n"
                       + "private Pointer data; // a reference to prevent deallocation\n"
                       + "public Mat(int rows, int cols, int type, Pointer data) { this(rows, cols, type, data, AUTO_STEP); }\n"
                       + "public Mat(CvArr arr) { super(cvarrToMat(arr)); this.data = arr; }\n"
                       + "public Mat(byte ... b) { this(b, false); }\n"
                       + "public Mat(byte[] b, boolean signed) { this(new BytePointer(b), signed); }\n"
                       + "public Mat(short ... s) { this(s, true); }\n"
                       + "public Mat(short[] s, boolean signed) { this(new ShortPointer(s), signed); }\n"
                       + "public Mat(int ... n) { this(new IntPointer(n)); }\n"
                       + "public Mat(double ... d) { this(new DoublePointer(d)); }\n"
                       + "public Mat(float ... f) { this(new FloatPointer(f)); }\n"
                       + "public Mat(BytePointer p, boolean signed) { this(p.limit - p.position, 1, signed ? CV_8SC1 : CV_8UC1, p); }\n"
                       + "public Mat(ShortPointer p, boolean signed) { this(p.limit - p.position, 1, signed ? CV_16SC1 : CV_16UC1, p); }\n"
                       + "public Mat(IntPointer p) { this(p.limit - p.position, 1, CV_32SC1, p); }\n"
                       + "public Mat(FloatPointer p) { this(p.limit - p.position, 1, CV_32FC1, p); }\n"
                       + "public Mat(DoublePointer p) { this(p.limit - p.position, 1, CV_64FC1, p); }\n"))
       .put(new Info("cv::Mat::zeros(int, int*, int)", "cv::Mat::ones(int, int*, int)").skip())
       .put(
           new Info("cv::Mat::size")
               .javaText(
                   "public native @ByVal Size size();\n@MemberGetter public native int size(int i);"))
       .put(
           new Info("cv::Mat::step")
               .javaText(
                   "@MemberGetter public native long step();\n@MemberGetter public native int step(int i);"))
       .put(new Info("cv::UMat::zeros(int, int*, int)", "cv::UMat::ones(int, int*, int)").skip())
       .put(
           new Info("cv::UMat::size")
               .javaText(
                   "public native @ByVal Size size();\n@MemberGetter public native int size(int i);"))
       .put(
           new Info("cv::UMat::step")
               .javaText(
                   "@MemberGetter public native long step();\n@MemberGetter public native int step(int i);"))
       .put(
           new Info(
                   "cv::InputArray",
                   "cv::OutputArray",
                   "cv::InputOutputArray",
                   "cv::_InputOutputArray")
               .skip()
               .
               /*cast().*/ pointerTypes("Mat"))
       .put(
           new Info(
                   "cv::InputArrayOfArrays",
                   "cv::OutputArrayOfArrays",
                   "cv::InputOutputArrayOfArrays")
               .skip()
               .
               /*cast().*/ pointerTypes("MatVector"))
       .put(new Info("cv::Point_<int>").pointerTypes("Point").base("IntPointer"))
       .put(new Info("cv::Point_<float>").pointerTypes("Point2f").base("FloatPointer"))
       .put(new Info("cv::Point_<double>").pointerTypes("Point2d").base("DoublePointer"))
       .put(new Info("cv::Point3_<int>").pointerTypes("Point3i").base("IntPointer"))
       .put(new Info("cv::Point3_<float>").pointerTypes("Point3f").base("FloatPointer"))
       .put(new Info("cv::Point3_<double>").pointerTypes("Point3d").base("DoublePointer"))
       .put(new Info("cv::Size_<int>").pointerTypes("Size").base("IntPointer"))
       .put(new Info("cv::Size_<float>").pointerTypes("Size2f").base("FloatPointer"))
       .put(new Info("cv::Size_<double>").pointerTypes("Size2d").base("DoublePointer"))
       .put(new Info("cv::Rect_<int>").pointerTypes("Rect").base("IntPointer"))
       .put(new Info("cv::Rect_<float>").pointerTypes("Rectf").base("FloatPointer"))
       .put(new Info("cv::Rect_<double>").pointerTypes("Rectd").base("DoublePointer"))
       .put(new Info("cv::RotatedRect").pointerTypes("RotatedRect").base("FloatPointer"))
       .put(new Info("cv::Scalar_<double>").pointerTypes("Scalar").base("AbstractScalar"))
       .put(new Info("cv::Scalar_<int>").pointerTypes("Scalar4i").base("IntPointer"))
       .put(new Info("cv::Vec2i").pointerTypes("Point"))
       .put(new Info("cv::Vec2d").pointerTypes("Point2d"))
       .put(new Info("cv::Vec3d").pointerTypes("Point3d"))
       .put(new Info("cv::Vec4i").pointerTypes("Scalar4i"))
       .put(
           new Info(
                   "defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32)",
                   "defined __GNUC__",
                   "defined WIN32 || defined _WIN32 || defined WINCE")
               .define(false))
       .put(
           new Info(
                   "cv::saturate_cast(uchar)",
                   "cv::saturate_cast(ushort)",
                   "cv::saturate_cast(unsigned)")
               .skip())
       .put(new Info("cv::saturate_cast<uchar>").javaNames("ucharSaturateCast"))
       .put(new Info("cv::saturate_cast<schar>").javaNames("scharSaturateCast"))
       .put(new Info("cv::saturate_cast<ushort>").javaNames("ushortSaturateCast"))
       .put(new Info("cv::saturate_cast<short>").javaNames("shortSaturateCast"))
       .put(new Info("cv::saturate_cast<int>").javaNames("intSaturate"))
       .put(new Info("cv::saturate_cast<unsigned>").javaNames("unsignedSaturateCast"))
       .put(new Info("cv::normL2Sqr", "cv::normL1", "cv::seqPopMulti").skip())
       .put(
           new Info("cv::Formatted(cv::Mat&, cv::Formatter*, int*)")
               .javaText(
                   "public Formatted(@Const @ByRef Mat m, @Const Formatter fmt,\n"
                       + "              @StdVector IntPointer params) { allocate(m, fmt, params); }\n"
                       + "private native void allocate(@Const @ByRef Mat m, @Const Formatter fmt,\n"
                       + "              @Cast({\"\", \"std::vector<int>&\"}) @StdVector IntPointer params);"))
       .put(new Info("cv::MinProblemSolver", "cv::DownhillSolver", "cv::ConjGradSolver").purify())
       .put(new Info("cv::MinProblemSolver::Function").virtualize())
       .put(
           new Info(
                   "HAVE_OPENCV_CUDA",
                   "HAVE_OPENCV_CUDAIMGPROC",
                   "HAVE_OPENCV_CUDAOPTFLOW",
                   "HAVE_OPENCV_CUDAWARPING",
                   "HAVE_OPENCV_CUDALEGACY",
                   "HAVE_OPENCV_XFEATURES2D",
                   "defined(HAVE_OPENCV_CUDAWARPING)",
                   "defined(HAVE_OPENCV_CUDAIMGPROC) && defined(HAVE_OPENCV_CUDAOPTFLOW)",
                   "defined(HAVE_OPENCV_CUDA) && defined(HAVE_OPENCV_CUDAWARPING)")
               .define(false))
       .put(new Info("cv::Ptr").skip().annotations("@Ptr"))
       .put(new Info("cv::String").skip().annotations("@Str").valueTypes("BytePointer", "String"));
 }