2014-12-07 4 views
4

Java OpenCV로 매트를 만들고 할당하려면 어떻게해야합니까? this page의 C++ 버전은OpenCV Java에서 Mat를 선언하십시오.

Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); 

Java OpenCV의 해당 기능은 무엇입니까? Java OpenCV의 설명서가 부족한 것 같습니다. 존재하는 것은 종종 Java에서 작동하지 않는 C++ 코드를 포함합니다.

답변

10

예. 문서가 최소한이거나 존재하지 않습니다. 동등한 우리는 double 이외의 데이터 유형에 대한 것을 볼 수 있습니다

public int put(int row, int col, double... data) 
public int put(int row, int col, float[] data) 
public int put(int row, int col, int[] data) 
public int put(int row, int col, short[] data) 
public int put(int row, int col, byte[] data) 

오버로드 put 방법을 참조 Mat 클래스 OpenCV의 자바 문서 (1)에서

Mat img = new Mat(3, 3, CvType.CV_64FC1); 
int row = 0, col = 0; 
img.put(row ,col, 0, -1, 0, -1, 5, -1, 0, -1, 0); 

것, 마지막 매개 변수는있다 배열이며 가변 인수 유형이 아닙니다. 따라서 다른 유형의 Mat을 만들려면 다음과 같이 배열을 사용해야합니다.

int row = 0, col = 0; 
int data[] = { 0, -1, 0, -1, 5, -1, 0, -1, 0 }; 
//allocate Mat before calling put 
Mat img = new Mat(3, 3, CvType.CV_32S); 
img.put(row, col, data); 
관련 문제