次のコードがあります。
string filename = "frame_00003_depth.bin";
int16_t* depth_img = loadDepthImageCompressed(filename.c_str());
Mat depth_img_meters = Mat(480, 640, CV_16UC1);
for(int row = 0; row < 480; row++){
    for(int col = 0; col < 640; col++){
        depth_img_meters.at<int16_t>(row, col) = depth_img[(640*row + col)]  * 0.001;
        cout << depth_img_meters.at<int16_t>(row,col)<< "meters" <<  endl;  
    }
}
配列int16_t* depth_imgに100より大きい値があることを確認しましたが、Matここに割り当てるとすべてゼロが出力されます