Como copiar matriz de inteiros para o tipo Mat em OpenCV?

Gostaria de saber como copiar uma matriz de inteiros para um dado do tipo Mat do OpenCV e em seguida mostrar para o usuário através do imshow ?

A seguir segue um exemplo que criei para ilustrar o meu objetivo, que corresponde a uma dada matriz gerada pelo usuário ( variando de 0 ate 255 - variação de cor no OpenCV) ser mostrada na tela em forma de cor através do imshow. Contudo o que está aparecendo na tela é um quadrado todo preto, ou seja, a copia não esta sendo bem executada uma vez que deveria aparecer uma faixa de cor branca, outra de cor preta e uma terceira de uma cor qualquer.

#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "opencv2/videoio.hpp"
#include "opencv2/video/tracking.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
using namespace cv;


int main()
{

int image[128][128];
    // Zerando a matriz pra nao pegar lixo da memoria
    for(int i=0; i< 128 ;i++)
    {
        for(int j=0; j<128 ; j++)
        {
            image[i][j]=0;
        }

    }
    // Colorindo a matriz
    for(int i=0; i< 128 ;i++)
    {
        for(int j=0; j<128 ; j++)
        {
            if(i<40){
                image[i][j]=0;
            }
            if(i>40 && i<80){
                image[i][j]=255;
            }
             if(i>80 && i<128){
                image[i][j]=122;
            }
        }

    }
    // Criando matriz para mostrar para o usuario
    Mat Mostrar(128,128, CV_64FC4 );
    // Copiando a matriz original para a outra matriz
    for(int i=0; i< 128 ;i++)
    {
        for(int j=0; j<128 ; j++)
        {
        Mostrar.at<int>(i,j)= image[i][j];
        }

    }
    // Exibindo a matriz em forma de cor para o usuario
    imshow("Exibindo", Mostrar);
    waitKey();
    return 0;
}

Fiz um exemplo simples pra vc em Java, no Java a matriz de inteiros é iniciado com Zero (0) então eu fiz assim:

public class TesteMatriz {

public static void main(String[] args) {
    int[][] matriz = new int[9][10];

    for (int i = 0; i < matriz.length; i++) {
        for (int j = 0; j < matriz[i].length; j++) {
            if (i >= 3 && i <= 6) {
                matriz[i][j] = 255;
            }
            if (i >= 6 && i < 10) {
                matriz[i][j] = 122;
            }
        }
    }

    for (int i = 0; i < matriz.length; i++) {
        for (int j = 0; j < matriz[i].length; j++) {
            System.out.print(matriz[i][j]);
        }
        System.out.println("");
    }
}

}

nesse pequeno exemplo na saída vou ter 3 faixas pretas, 3 brancas e 3 de outra cor

Sim, é bem por ai mesmo. Mas eu quero é fazer as implementações em uma matriz normal mesmo, assim como você mostrou, e em seguida mostrar o resultado para o usuário através da função imshow ( responsável por mostrar imagens por uma janela para o usuário). O problema é que essa função só aceita a entrada do tipo Mat ai o que eu estou tentando fazer é converter a matriz que vinha trabalhando para esse tipo especifico conforme mostrei no código, mas ao tentar mostrar essa matriz pelo imshow as coisas não estão saindo como o esperado ( tá tudo preto ou seja há algo errado nessa conversão ).