Я работаю с библиотекой OpenCv + qt. Задача сравнивать цвета пикселей матрицы с определенными цветами и выводить результат. Чтобы получить цвет использую вот:
cv::Mat3b src=src0;
for(int r = 0; r < src.rows; ++r) {
for(int c = 0; c < src.cols; ++c) {
cv::Vec3b pixel = src(r,c);
uchar blue = pixel[0];
uchar green = pixel[1];
uchar red = pixel[2];
qDebug() <<"blue="<<blue <<"green=" <<green <<"red=" <<red;
// image(r,c);
}
}
Mat3b получаю из Mat. Но при использовании нестандартных размеров получаю вылет с ошибкой. Можно ли это как то исправить?
В переводе ошибка значит: Общее число матричных элементов не делится на новое число строк, я делал так src.create(height,width,CV_8UC(3)) и 5, но так не работает получение пикселей цвета. Библиотеку только начал изучать, так что 80% как там чего не знаю. В другом похожем вопросе не указано, где конкретно возникала, проблема. Тут же указано где возникает проблема, я просто не знаю как ее решить и прошу помощи.