я следующая функция, которая извлекает суб-изображение из OpenCV cv::Mat
Переприсвоить к Мат в OpenCV
void Process(int a,int b,int c,int d)
{
// Extract img(a:b,c:d) each time
subImg = img(cv::Range(a, b), cv::Range(c,d));
}
Я называю Process()
в цикле. При каждом вызове значения a,b,c,d
продолжают меняться. Если subImg
было объявлено как cv::Mat subImg;
, могу ли я сделать выше? т.е. Может OpenCV динамически изменять размер subImg
или я должен пойти для подхода на основе указателей, где я объявляю:
cv::Mat* subImg; // Initialized to NULL in constructor
и изменить функцию следующим образом:
void Process(int a,int b,int c,int d)
{
// Extract img(a:b,c:d) each time
if(subImg) delete subImg;
subImg = img(cv::Range(a, b), cv::Range(c,d)).clone();
}