ter_nk 0 Жалоба Опубликовано November 28, 2014 Создаю Mat больший по размеру и пытаюсь как бы по центру Size sz; sz.width = mat_gray.size().width + 200; sz.height = mat_gray.size().height + 200; Mat big_mat = Mat::zeros(sz, CV_8UC3); const Rect roi_rect(100, 100, mat_gray.size().width, mat_gray.size().height); mat_gray.copyTo(big_mat(roi_rect)); на этой строчке ошибка Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано November 28, 2014 Прошу прощения! Написал CV_8UC3 а надо CV_8UC1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано November 28, 2014 Mat big_mat = Mat::zeros(sz, CV_8UC3); Написал CV_8UC3 а надо CV_8UC1 Сами и ответили Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано December 15, 2014 В ПО версии 2.3.1 этой функции нет, может кто знает как это делать в старых версиях? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано December 23, 2014 может кому понадобится for(int x=src_rect.x; x < src_rect.width; ++x) { for(int y=src_rect.y; y< src_rect.height; ++y) { for( int c = 0; c < 3; c++ ) { dst_mat.at<Vec3b>(y + y_shift,x + x_shift)[c] = src_mat.at<Vec3b>(y,x)[c]; } } } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано December 23, 2014 это как бы неэфективное решение. я думаю в начале была ошибка в том, что размер roi был меньше чем mat_gray Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано December 24, 2014 Вначале была ошибка, что там Mat не совпадали. Неэффективно, да, но а есть другие варианты, там же кусками массивов не покопируешь Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах