2014-10-17 4 views
0

Я хотел бы переделать квадратный патч изображения в (x, y, ширина, высота) (45, 104, 37, 37) в другое место (80, 200, 37 , 37). Могу ли я узнать, почему коды ниже не так?OpenCV Remap из одного места в другое

for (int i =0;i<37;i++) //width 
{ 
    for (int j =0;j<37;j++) //width 
    { 

    map_x.at<float>(45+i,104+j) = 80+i ; 
    map_y.at<float>(45+i,104+j) = 200+j ; 
    } 
} 

или

for (int i =45; i <82; i++) 
{ 
    for (int j =104; j<141; j++) 
    { 
    map_x.at<float>(i,j) = i+37 ; 
    map_y.at<float>(i,j) = j+37 ; 
    } 
} 

ответ

0

С map_x.at<float>(i,j) = i+37; вы хранения номер я + 37 в месте (индекс)i. Не номер на. То же самое для заявления, следующего за ним.

У OpenCV есть удобный метод, включающий ROI.

Mat roi = map_x(Rect(45, 104, 37, 37)); 
map_x(Rect(80, 200, 37,37)) = roi; 

 Смежные вопросы

  • Нет связанных вопросов^_^