Я не знаю, как указать цвет, используя Scalar class в нижеприведенном методе?Как указать цвет с помощью Scalar class
Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
Я не знаю, как указать цвет, используя Scalar class в нижеприведенном методе?Как указать цвет с помощью Scalar class
Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
Использование Scalar
для указания цвета, в зависимости от типа Mat
. Попытка сохранить/нарисовать Red
цвет в оттенках серого Mat
не удастся.
Тип CV_8UC1
- черно-белое изображение
//8 bits per pixel and so range of [0:255].
Scalar color = new Scalar(255)
//For type: 16UC1, range of [0:65535]. For 32FC1 range is [0.0f:1.0f]
Тип CV_8UC3
- 3 канала цветного изображения
// BLUE: color ordering as BGR
Scalar color = new Scalar(255, 0, 0)
Тип CV_8UC4
- цветное изображение с прозрачностью
//Transparent GREEN: BGRA with alpha range - [0 : 255]
Scalar color = new Scalar(0, 255, 0, 128)
В этом вопросе первым параметром drawKeyPoints
должно быть ваше исходное изображение (Mat
), а не ключевые точки. Код был бы скомпилирован, потому что MatOfKeyPoint
получен из Mat
Обязательно ознакомьтесь с Java API (http://docs.opencv.org/java/3.1.0/org/opencv/core/Scalar.html)
Scalar colour = new Scalar(B,G,R);
Где B, G, R двойники, по одному для каждого цветового канала.
Почему этот помеченный C++? – MuertoExcobito
@MuertoExcobito, потому что opencv имеет C++ Api, а также – user2121
OpenCV также имеет привязки python, но так как ваш пример кода находится в java (?), Вероятно, не имеет смысла помечать его как C++. – MuertoExcobito