объявить Mat в OpenCV java
Как я могу создать и назначить мат С Java OpenCV? Версия C++ от на этой странице is
Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
что было бы эквивалентом в Java OpenCV? Похоже, что документация для Java OpenCV отсутствует. Что существуют зачастую содержит код C++, который не работает в Java.
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 );
в opencv Java doc (1) для Mat
класс, смотрите перегруженный put
метод
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 )
мы видим, что для типов данных, кроме double
, последний параметр является массивом, а не тип переменной аргумент. Поэтому, если вы решите создать 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 );