2015-05-26 3 views
1

у меня есть центр, угол наклона (направления), а также меры по бокам вспомогательного изображения, которые я хочу, чтобы обрезать с другого изображения, например:Crop изображение с заданным углом

original image

к:

final image

мне удалось поставить его с правильным наклоном с помощью:

Mat img; 
    Point center; 
    float angle; 
    Mat rotation = getRotationMatrix2D(center, angle, 1.0); 
    warpAffine(img, img, rotation, img.size()); 

Но я не знаю, как разрезать эту область с заданными сторонами ... Как я могу это сделать?

+0

У вас есть координаты углового пикселя? – manatttta

+0

Нет, я должен их рассчитать? – lulas

+0

Это была бы одна возможность. – manatttta

ответ

1

Если вы можете повернуть изображение, вам нужно только одно из углов (например, нижний правый угол), а также ширину и высоту изображения, которое вы хотите обрезать.

С учетом сказанного, вы можете установить ROI (область интереса) и урожай с

cv::Rect RegionOfInterest(top_left_x, top_left_y, rectangle_width, rectangle_height); 
cv::Mat outputImage; 

outputImage = originalImage(RegionOfInterest).clone(); 

где top_left_x и top_left_y ваши верхние левые координаты угловых и rectangle_width и rectangle_height ширина и высота из прямоугольник, который вас интересует.

+0

Удалось сделать это с помощью этой стратегии, спасибо! – lulas

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