mirror of
https://github.com/opencv/opencv.git
synced 2026-07-25 21:33:04 +04:00
e19b0ebc5c
Migrated chessboard and circles grid detectors to objdetect #28804 OpenCV Contrib: https://github.com/opencv/opencv_contrib/pull/4125 OpenCV Extra: https://github.com/opencv/opencv_extra/pull/1375 ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [ ] The PR is proposed to the proper branch - [ ] There is a reference to the original bug report and related work - [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake
74 lines
3.4 KiB
JSON
74 lines
3.4 KiB
JSON
{
|
|
"ManualFuncs" : {
|
|
"QRCodeEncoder" : {
|
|
"QRCodeEncoder" : {
|
|
"j_code" : [
|
|
"\n",
|
|
"/** Generates QR code from input string.",
|
|
"@param encoded_info Input bytes to encode.",
|
|
"@param qrcode Generated QR code.",
|
|
"*/",
|
|
"public void encode(byte[] encoded_info, Mat qrcode) {",
|
|
" encode_1(nativeObj, encoded_info, qrcode.nativeObj);",
|
|
"}",
|
|
"\n"
|
|
],
|
|
"jn_code": [
|
|
"\n",
|
|
"private static native void encode_1(long nativeObj, byte[] encoded_info, long qrcode_nativeObj);",
|
|
"\n"
|
|
],
|
|
"cpp_code": [
|
|
"//",
|
|
"// void cv::QRCodeEncoder::encode(String encoded_info, Mat& qrcode)",
|
|
"//",
|
|
"\n",
|
|
"JNIEXPORT void JNICALL Java_org_opencv_objdetect_QRCodeEncoder_encode_11 (JNIEnv*, jclass, jlong, jbyteArray, jlong);",
|
|
"\n",
|
|
"JNIEXPORT void JNICALL Java_org_opencv_objdetect_QRCodeEncoder_encode_11",
|
|
"(JNIEnv* env, jclass , jlong self, jbyteArray encoded_info, jlong qrcode_nativeObj)",
|
|
"{",
|
|
"",
|
|
" static const char method_name[] = \"objdetect::encode_11()\";",
|
|
" try {",
|
|
" LOGD(\"%s\", method_name);",
|
|
" Ptr<cv::QRCodeEncoder>* me = (Ptr<cv::QRCodeEncoder>*) self; //TODO: check for NULL",
|
|
" const char* n_encoded_info = reinterpret_cast<char*>(env->GetByteArrayElements(encoded_info, NULL));",
|
|
" const jsize n_encoded_info_size = env->GetArrayLength(encoded_info);",
|
|
" Mat& qrcode = *((Mat*)qrcode_nativeObj);",
|
|
" (*me)->encode( std::string(n_encoded_info, n_encoded_info_size), qrcode );",
|
|
" } catch(const std::exception &e) {",
|
|
" throwJavaException(env, &e, method_name);",
|
|
" } catch (...) {",
|
|
" throwJavaException(env, 0, method_name);",
|
|
" }",
|
|
"}",
|
|
"\n"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"type_dict": {
|
|
"NativeByteArray": {
|
|
"j_type" : "byte[]",
|
|
"jn_type": "byte[]",
|
|
"jni_type": "jbyteArray",
|
|
"jni_name": "n_%(n)s",
|
|
"jni_var": "jbyteArray n_%(n)s = env->NewByteArray(static_cast<jsize>(%(n)s.size())); env->SetByteArrayRegion(n_%(n)s, 0, static_cast<jsize>(%(n)s.size()), reinterpret_cast<const jbyte*>(%(n)s.c_str()));",
|
|
"cast_from": "std::string"
|
|
},
|
|
"vector_NativeByteArray": {
|
|
"j_type": "List<byte[]>",
|
|
"jn_type": "List<byte[]>",
|
|
"jni_type": "jobject",
|
|
"jni_var": "std::vector< std::string > %(n)s",
|
|
"suffix": "Ljava_util_List",
|
|
"v_type": "vector_NativeByteArray"
|
|
}
|
|
},
|
|
"func_arg_fix" : {
|
|
"findChessboardCorners" : { "corners" : {"ctype" : "vector_Point2f"} },
|
|
"drawChessboardCorners" : { "corners" : {"ctype" : "vector_Point2f"} }
|
|
}
|
|
}
|