Может, здесь явно сделать разыменование, чтобы везде не таскать операцию?
``
Mat image = *((Mat*)userData);
``