메뉴 건너뛰기

프로그래밍


OpenCV에서 (자주) 다루는 vector<Point2f> 타입의 변수의 값을  JAVA 코드로 리턴하는 방법입니다.

깔끔한 방법을 찾지 못해 정리해 둡니다^^ 아울러, 이전에 정리했던 방법에는 문제가 있어 수정본을 다시 써 놓습니다.


JAVA Code :

public native double[][] callNativeCode(long matAddrInput);

Mat input = new Mat(480, 640, CV_8UC3);
double[][] ret = callNativeCode(input.getNativeObjAddr());


HPP Code :

JNIEXPORT jobjectArray JNICALL Java_org_airpage_Activity_MainActivity_callNativeCode
  (JNIEnv *, jobject, jlong);


CPP Code :

JNIEXPORT jobjectArray JNICALL Java_org_airpage_Activity_MainActivity_callNativeCode
  (JNIEnv *env, jobject instance, jlong matAddrInput) {

        vector<Point2f> retapprox = someFunc();
              jobjectArray result = NULL;
              for (int k = 0; k < size; k++) {
                    jdoubleArray element = env->NewDoubleArray(2);
                    if (element == NULL)
                        break;
                    jdouble buf[2] = { retapprox[k].x, retapprox[k].y };
                    env->SetDoubleArrayRegion(element, 0, 2, buf);
                    env->SetObjectArrayElement(result, k, element);
              }

              return result;
}

건투를 빕니다~!




번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [48] 파이팅건맨 2016.02.20 100171
공지 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 14213
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 14074
165 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [48] 파이팅건맨 2016.02.20 100171
164 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 14213
163 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 14074
162 [TIP] JQuery와 PHP로 이미지 파일을 업로드 하는 간단한 소스 (How to upload image file on PHP server by using JQuery) 파이팅건맨 2015.04.03 11269
161 [TIP] php로 기상청에서 제공하는 기상정보 API 호출하기 파이팅건맨 2017.01.17 8018
160 [TIP] 파이선에서 서브프로세스를 실행시키고 출력되는 내용을 얻어오기 파이팅건맨 2018.01.22 6425
159 [TIP] 네이버 영화 정보와 전문가 평점 얻어오기 파이팅건맨 2017.02.10 5948
158 [TIP] 파이선에서 구글 스프레드시트 사용하기 [5] 파이팅건맨 2016.03.27 4735
157 [TIP] 자바스크립트와 PHP코드간에 암호화 통신하기 (Encrypt with Javascript, Decrypt with PHP) [2] 파이팅건맨 2017.03.16 3474
156 [펌] ARM GCC Inline Assembler Cookbook 파이팅건맨 2006.08.18 3278
155 [TIP] 인터넷으로 문자메시지 (SMS) 보내기 파이팅건맨 2008.03.23 2996
154 [TIP] Visual Studio 2019 에서 (배포용)설치파일 만들기 파이팅건맨 2019.09.30 2960
153 C에서 string사용건에 대한 문의 [1] 민정이 2000.05.26 2956
152 [TIP] 네이버 오픈 API를 로컬 PC에서 호출하기 파이팅건맨 2017.02.01 2710
151 [펌] 클래스 맴버함수를 콜백함수로 사용하기 파이팅건맨 2006.08.25 2460
150 [TIP] The function size must be used with a prefix when a default namespace is not specified 오류 해결하기 파이팅건맨 2017.08.02 2167
149 [TIP] Docker상의 Syntaxnet 결과 포맷을 수정하기 파이팅건맨 2016.08.07 1862
148 [TIP] AWS Lambda, API Gateway 를 이용하여 S3에 파일 업로드 하기 파이팅건맨 2018.06.12 1816
147 [TIP] 홈페이지 자동 클릭하기 소스 파이팅건맨 2009.10.25 1810
146 [TIP] 파이선에서 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position ... 오류 해결 방법 파이팅건맨 2017.09.29 1759
위로