将cv :: Mat存储在Swift变量中

时间:2018-11-12 19:13:53

标签: c++ ios swift opencv

我有一个c ++ opencv函数,它可以获取图像的灰度并将其存储到数组中。

+(cv::Mat) makeGray:(UIImage *) image {
    // Transform UIImage to cv::Mat
    cv::Mat imageMat;
    UIImageToMat(image, imageMat);

    //Transform image to grayscale
    cv::Mat grayMat;
    cv::cvtColor(imageMat, grayMat, CV_BGR2GRAY);
    return grayMat;
}

每当我尝试使用swift将其存储在变量中

快捷功能:

@IBAction func convertImage(_ sender: UIButton) {
    let grayMat = OpenCVWrapper.makeGray(photoImageView.image)
}

整个程序只是冻结而不会抛出错误。

当我返回UIImage时,swift函数的效果很好:

+(UIImage *) makeGray:(UIImage *) image {
    // Transform UIImage to cv::Mat
    cv::Mat imageMat;
    UIImageToMat(image, imageMat);

    //Transform image to grayscale
    cv::Mat grayMat;
    cv::cvtColor(imageMat, grayMat, CV_BGR2GRAY);
    return MatToUIImage(grayMat);
}

但是我希望返回一个3darray而不是一个图像。

0 个答案:

没有答案