void cv2fdcm(const Mat &cvImage, Ptr<Image<uchar> > &fdcmImage)
{
  CV_Assert(cvImage.type() == CV_8UC1);

  fdcmImage = new Image<uchar>(cvImage.cols, cvImage.rows, false);

  CV_Assert(cvImage.isContinuous());
  memcpy(fdcmImage->data, cvImage.data, cvImage.total());

  //TODO: remove
  for (int i = 0; i < cvImage.rows; ++i)
  {
    for (int j = 0; j < cvImage.cols; ++j)
    {
      CV_Assert(cvImage.at<uchar>(i, j) == fdcmImage->Access(j, i));
    }
  }
}