Эта функция помогает визуализировать каналы Y, U и V входного изображения. input_image
- это входное изображение YUV, u_colormap
- карта для визуализации канала u, а v_colormap
- карта для визуализации канала v.
Я использую карту цветов в качестве таблицы поиска, а затем я сохраню новое значение из карты цветов в массиве каналов, а затем назначу значение для output_image.
Когда я компилирую код, я не получаю никаких ошибок, однако при запуске код я получаю сообщение об ошибке
vector :: _ M_range_check: __n (1886417008)> = this-> size () (256)
У кого-нибудь есть идея, где ошибка может быть?
void show::display_channels(const Mat &:input_image, const std::vector<std::vector<int> > u_colormap,
const std::vector<std::vector<int> > v_colormap,
std::vector<Mat> &output_image) {
Mat channel[3];
cv::split(input_image,channel);
cv::cvtColor(channel[0],output_image[0], CV_GRAY2BGR);
//Y is already grayscale and I can convert it to BGR without using colormaps
for (int i = 0; i < output_image.rows; i++) {
for (int j = 0; j < output_image.cols; j++) {
output_image[1].at<int>(i,j) = u_colormap.at(1).at(channel[1].at<int>(i,j));
}
}
}