Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Это зависит от того, что вы хотите добавить . Например, у вас есть два 3x3 Mat:
cv::Mat matA(3, 3, CV_8UC1, cv::Scalar(20));
cv::Mat matB(3, 3, CV_8UC1, cv::Scalar(80));
Вы можете добавить matA
и matB
к новому Matrix 3x3 со значением 100, используя операцию matrix :
auto matC = matA + matB;
Или используя операцию массива cv :: add , которая выполняет ту же работу:
cv::Mat matD;
cv::add(matA, matB, matD);
Или даже смешивание два изображения с помощью cv :: addWeighted :
cv::Mat matE;
cv::addWeighted(matA, 1.0, matB, 1.0, 0.0, matE);
Иногда вам нужно объединить два мата, например, создать Matrix 3x6, используя cv :: Mat :: push_back :
cv::Mat matF;
matF.push_back(matA);
matF.push_back(matB);
Даже сливайтесь в двухканальный 3x3 мат, используя cv :: merge :
auto channels = std::vector<cv::Mat>{matA, matB};
cv::Mat matG;
cv::merge(channels, matG);
Подумайте о том, что вы хотите добавить и выбрать правильную функцию.
Вы можете использовать push_back ():
newMat.push_back(Mat1);
newMat.push_back(Mat2);