缩放将图像变为白色?

时间:2013-07-16 11:27:57

标签: c++ ios opencv

我正在使用OpenCV在iOS上进行一些实时视频处理。

我对图像做了一些事情,首先我检查它并绘制一些叠加层,然后我将其缩放两倍。

processImage中,如果我只做第一步,一切都很好,但如果我添加对我的函数zoom的调用,它会使图像显得非常白和半透明:

enter image description here

这是我的代码:

static void resizeLock_(cv::Mat &img, int rows, int cols){
    cv::Size newSize;
    newSize.width = cols;
    newSize.height = rows;
    cv::resize(img, img, newSize,0, 0, CV_INTER_AREA);
}

static void zoom(cv::Mat &img, int ratio){
    cv::Size originalSize = img.size();
    resizeLock_(img,img.rows*ratio,img.cols*ratio);
    double c = ((double)ratio -1)/(double)2;
    img(cv::Rect(cvRound(originalSize.width*c),cvRound(originalSize.height*c),originalSize.width,originalSize.height)).copyTo(img);
}

...

- (void)processImage:(Mat&)image;
{
    doProcessing(image);
    // if the next call is omitted, image looks fine.
    zoom(image,2);
}

0 个答案:

没有答案