У меня есть проблема программирования, касающаяся извлечения подизображения (подматрицы) из большего изображения (матрицы). У меня есть две точки (верхнюю и нижнюю границу подизображения, которое я хочу извлечь), и я хочу извлечь подизображение из большего изображения на основе этих точек. Но я не могу найти, как это сделать с C / C ++.
Я знаю, что это очень легко сделать с Matlab. Предположим, что эти две точки (x_max, y_max) и (x_min, y_min). Чтобы извлечь образ, мне просто нужно написать следующее:
(MATLAB CODE)-> small_image=big_image(x_min:x_max,y_min,y_max);
Но в C я не могу использовать интервал индексов с: как я делаю с Matlab. Кто-нибудь здесь сталкивался с этой проблемой раньше?
Если вы выполняете обработку изображений в C / C ++, вам, вероятно, следует использовать OpenCV.
cv :: Mat класс можно сделать это с помощью Регион интересов (ROI).
В прямой с ++ вы бы использовали цикл.
int* small_im[]; // or whatever the syntax is
int i = 0, j = 0;
for (i = 0; i < (x_max-x_min); i++)
{
for (j = 0; j < (y_max-y_min); j++)
{
small_im[i][j] = big_im[x_min+i][y_min+j];
}
}