2013-08-23 6 views
2

У меня есть проблема программирования, касающаяся извлечения субимага (подматрицы) из большего изображения (матрицы). У меня есть две точки (верхняя и нижняя граница субимажа, который я хочу извлечь), и я хочу извлечь из них более сильное изображение на основе этих точек. Но я не могу найти, как делать thins с C/C++.Подматрица в C++

Я знаю, что это очень легко сделать с помощью Matlab. Предположим, что эти две точки (x_max, y_max) и (x_min, y_min). Чтобы извлечь SubImage мне просто нужно закодировать следующее:

(MATLAB CODE)-> small_image=big_image(x_min:x_max,y_min,y_max); 

Но в C я не могу использовать интервал индексов с: как я с Matlab. Кто-нибудь здесь сталкивался с этой проблемой раньше?

+0

Просто используйте вложенную петлю? – Dan

ответ

2

Если вы занимаетесь обработкой изображений на C/C++, вы, вероятно, должны использовать OpenCV.

cv::Mat class может это сделать, используя Region Of Interest (ROI).

+0

Я связан с документацией на C++, но есть и аналогичные функции C. – Simon

1

В прямом C++ вы должны использовать цикл.

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]; 
    } 
} 
Смежные вопросы