¿Qué es la mejor manera de hacer en OpenVin?

Quiero hacer una rotación de imagen de round robin como se muestra a continuación.

La línea x vertical desde el inicio de la imagen se elimina y se agrega al final de la imagen.

¿Cuál es la mejor manera de hacer esto en OpenCV, GDI ++ y WPF? Necesito una solución para cada una de estas plataformas, pero se podrían implementar de manera diferente.

Necesito implementarlo en una función con la siguiente firma (para opencv)

  Mat CircShift(Mat inputImage, int PixelInXdirectionToShift);

Sé cómo puedo hacer esto manipulando píxeles, pero estoy buscando una solución que haga esto muy rápido cuando la manipulación de píxeles no es tan rápida.

Respuestas a la pregunta(2)

Su respuesta a la pregunta