簡體   English   中英

opencv-C ++:我如何使用fastNlMeansDenoisingColoredMulti()

[英]opencv - c++: how i use fastNlMeansDenoisingColoredMulti()

我有一個視頻(130幀)。 當我運行代碼時,我的結果是一行而不是圖像,所以我想我沒有正確使用fastNlMeansDenoisingColoredMulti函數。 我該怎么辦?

int main(int argc, char** argv){
    VideoCapture video("F:\\tarashi\\datasets\\video\\1.mp4");
    if (!video.isOpened())
    {
        cout << "Error opening video stream or file" << endl;
        return -1;
    }
    namedWindow("test video", 1);
    int i = 0;
    Mat image[130];
    for (;i<130;i=i+1)
    {
        Mat frame;
        video >> frame; // get a new frame from camera   
        image[i] = frame;
        imshow("test video", frame);

        if (waitKey(30) >= 0) break;
    }
    //Video opened and the image sequence is created.

    Mat result;
    fastNlMeansDenoisingColoredMulti(image[129],result,65,129,3,3,7,21);
    imshow("denoised Image", result);
    waitKey();
    return 0;
    }

示例:這是視頻的屏幕截圖: 在此輸入圖像描述 因此,希望輸出完整圖片。 但我的輸出(結果)是: 在此輸入圖像描述

fastNlMeansDenoisingColoredMulti(InputArrayOfArrays srcImgs,OutputArray dst,int imgToDenoiseIndex,inttemporalWindowSize,float h = 3,float hColor = 3,int templateWindowSize = 7,int searchWindowSize = 21);

InputArrayOfArrays srcImgs-圖片數組,但只放置了一幀。 嘗試這個:

std::vector<cv::Mat> images;
...
images.push_back(frame);
...
fastNlMeansDenoisingColoredMulti(images, ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM