Ask Your Question

Revision history [back]

before calling bm3dDenoising you must init gray1 (InputOupuArray):

    gray1 = Mat::zeros(img.size(), CV_8UC1);
    cv::xphoto::bm3dDenoising(gray, gray1, gray2, h, templateWindowSize, searchWindowSize, blockMatchingStep1, blockMatchingStep2, groupSize, slidingStep, beta, normType, step, transformType);

before calling bm3dDenoising you must init gray1 (InputOupuArray):(InputOupuArray array for in place computation):

    gray1 = Mat::zeros(img.size(), CV_8UC1);
    cv::xphoto::bm3dDenoising(gray, gray1, gray2, h, templateWindowSize, searchWindowSize, blockMatchingStep1, blockMatchingStep2, groupSize, slidingStep, beta, normType, step, transformType);

before calling bm3dDenoising bm3dDenoising you must init gray1 (InputOupuArray array for in place computation):

    gray1 = Mat::zeros(img.size(), CV_8UC1);
    cv::xphoto::bm3dDenoising(gray, gray1, gray2, h, templateWindowSize, searchWindowSize, blockMatchingStep1, blockMatchingStep2, groupSize, slidingStep, beta, normType, step, transformType);

before calling bm3dDenoising bm3dDenoising, you must init gray1 (InputOupuArray array for in place computation):

    gray1 = Mat::zeros(img.size(), CV_8UC1);
    cv::xphoto::bm3dDenoising(gray, gray1, gray2, h, templateWindowSize, searchWindowSize, blockMatchingStep1, blockMatchingStep2, groupSize, slidingStep, beta, normType, step, transformType);

but I think there is a problem in code : you give BM3D_STEPALL then I think code should be :

case BM3D_STEPALL:
    _basic.create(srcSize, type);
    _dst.create(srcSize, type);
    break;

Doc is here and BM3D_ALL does it mean you can get result BM3D_STEP1 and BM3D_STEP2 ?

May be you can post an issue.

before calling bm3dDenoising, you must init gray1 (InputOupuArray array for in place computation):

    gray1 = Mat::zeros(img.size(), CV_8UC1);
    cv::xphoto::bm3dDenoising(gray, gray1, gray2, h, templateWindowSize, searchWindowSize, blockMatchingStep1, blockMatchingStep2, groupSize, slidingStep, beta, normType, step, transformType);

but I think there is a problem in code : you give BM3D_STEPALL then I think code should be :

case BM3D_STEPALL:
    _basic.create(srcSize, type);
    _dst.create(srcSize, type);
    break;

Doc is here here and BM3D_ALL does it mean you can get result BM3D_STEP1 and BM3D_STEP2 ?

May be you can post an issue.