Moja implementacja pozwala na przesunięcie się w kierunku dowolny ...
using namespace cv;
//and whatever header 'abs' requires...
Mat offsetImageWithPadding(Const Mat& originalImage, int offsetX, int offsetY, Scalar backgroundColour){
padded = Mat(originalImage.rows + 2 * abs(offsetY), originalImage.cols + 2 * abs(offsetX), CV_8UC3, backgroundColour);
originalImage.copyTo(padded(Rect(abs(offsetX), abs(offsetY), originalImage.cols, originalImage.rows)));
return Mat(padded,Rect(abs(offsetX) + offsetX, abs(offsetY) + offsetY, originalImage.cols, originalImage.rows));
}
//example use with black borders along the right hand side and top:
Mat offsetImage = offsetImageWithPadding(originalImage, -10, 6, Scalar(0,0,0));
Zajęło z własną rękę działający kod, ale niektóre zmienne uległy zmianie, jeśli się nie skompiluje, najprawdopodobniej mała rzecz wymaga zmiany - ale masz pomysł na ponowne. funkcja abs ...
czy możesz pokazać kod, który próbowałeś do tej pory? –
Jeśli możesz od początku osadzać obrazy na większych obrazach (a możesz ograniczyć przesunięcie o maksymalny rozmiar granicy), możesz użyć podobrazów zamiast przenosić czegokolwiek. – Micka