Ask Your Question

Revision history [back]

Issues by performing non-local means filter operation on 16bit image

Dear great OpenCV community, I have some issues by processing 16bit Images through the cv::fastNlMeansDenoising Image filter. I have read in the documentation that it is possible if you set the normType = NORM_L1 So i have tried it but nothing happens. The Images still look like the origin Images. So i thought maybe it is a issue with the depth of the Images. Therefore i have integrated in my program a down sampling of the Image before the filtering Operation (16bit -> 8bit) and after the filtering Operation is performed i integrated a up sampling of the Images (8bit -> 16bit). And now the supprising result was that it works with 8bit data perfectly and with 16bit data it seems like the filtering Operation isn't performed because the processed Images look exactly like the original Images

This is my code which i use for the filtering Operation. The Settings of the filter become inserted by the user of my program

//this works perfectly cv::Mat inputIm; cv::Mat outputIm; filterInputCvImage.convertTo(inputIm, CV_8U, 1 / 256.); cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1); outputIm.convertTo(filterOutputImage, CV_16U, 256.0);

//this does not work cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1);

Issues by performing non-local means filter operation on 16bit image

Dear great OpenCV community, community,

I have some issues by processing 16bit Images through the cv::fastNlMeansDenoising Image filter. I have read in the documentation that it is possible if you set the normType = NORM_L1 So i have tried it but nothing happens. The Images still look like the origin Images. So i thought maybe it is a issue with the depth of the Images. Therefore i have integrated in my program a down sampling of the Image before the filtering Operation (16bit -> 8bit) and after the filtering Operation is performed i integrated a up sampling of the Images (8bit -> 16bit). And now the supprising result was that it works with 8bit data perfectly and with 16bit data it seems like the filtering Operation isn't performed because the processed Images look exactly like the original Images

This is my code which i use for the filtering Operation. The Settings of the filter become inserted by the user of my program

//this works perfectly perfectly

cv::Mat inputIm; cv::Mat outputIm; filterInputCvImage.convertTo(inputIm, CV_8U, 1 / 256.); cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1); outputIm.convertTo(filterOutputImage, CV_16U, 256.0);

//this does not work cv::fastNlMeansDenoising(inputIm, outputIm, cv::fastNlMeansDenoising(filterInputImage, filterOutputImage, h, templateWindowSize, searchWindowSize, cv::NORM_L1);

Issues by performing non-local means filter operation on 16bit image

Dear great OpenCV community,

I have some issues by processing 16bit Images through the cv::fastNlMeansDenoising Image filter. I have read in the documentation that it is possible if you set the normType = NORM_L1 So i have tried it but nothing happens. The Images still look like the origin Images. So i thought maybe it is a issue with the depth of the Images. Therefore i have integrated in my program a down sampling of the Image before the filtering Operation (16bit -> 8bit) and after the filtering Operation is performed i integrated a up sampling of the Images (8bit -> 16bit). And now the supprising result was that it works with 8bit data perfectly and with 16bit data it seems like the filtering Operation isn't performed because the processed Images look exactly like the original Images

This is my code which i use for the filtering Operation. The Settings of the filter become inserted by the user of my program

//this works perfectly

cv::Mat inputIm; cv::Mat outputIm; filterInputCvImage.convertTo(inputIm, CV_8U, 1 / 256.); cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1); outputIm.convertTo(filterOutputImage, CV_16U, 256.0);

//this does not work cv::fastNlMeansDenoising(filterInputImage, filterOutputImage, h, templateWindowSize, searchWindowSize, cv::NORM_L1);

Issues by performing non-local means filter operation on 16bit image

Dear great OpenCV community,

I have some issues by processing 16bit Images through the cv::fastNlMeansDenoising Image filter. I have read in the documentation that it is possible if you set the normType = NORM_L1 So i have tried it but nothing happens. The Images still look like the origin Images. So i thought maybe it is a issue with the depth of the Images. Therefore i have integrated in my program a down sampling of the Image before the filtering Operation (16bit -> 8bit) and after the filtering Operation is performed i integrated a up sampling of the Images (8bit -> 16bit). And now the supprising result was that it works with 8bit data perfectly and with 16bit data it seems like the filtering Operation isn't performed because the processed Images look exactly like the original Images

This is my code which i use for the filtering Operation. The Settings of the filter become inserted by the user of my program

//this works perfectly

cv::Mat inputIm; cv::Mat outputIm; filterInputCvImage.convertTo(inputIm, CV_8U, 1 / 256.); cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1); outputIm.convertTo(filterOutputImage, CV_16U, 256.0);

//this does not work work

cv::fastNlMeansDenoising(filterInputImage, filterOutputImage, h, templateWindowSize, searchWindowSize, cv::NORM_L1);

Issues by performing non-local means filter operation on 16bit image

Dear great OpenCV community,

I have some issues by processing 16bit Images through the cv::fastNlMeansDenoising Image filter. I have read in the documentation that it is possible if you set the normType = NORM_L1 So i have tried it but nothing happens. The Images still look like the origin Images. So i thought maybe it is a issue with the depth of the Images. Therefore i have integrated in my program a down sampling of the Image before the filtering Operation (16bit -> 8bit) and after the filtering Operation is performed i integrated a up sampling of the Images (8bit -> 16bit). And now the supprising result was that it works with 8bit data perfectly and with 16bit data it seems like the filtering Operation isn't performed because the processed Images look exactly like the original Images

This is my code which i use for the filtering Operation. The Settings of the filter become inserted by the user of my program

//this works perfectly

perfectly cv::Mat inputIm; cv::Mat outputIm; filterInputCvImage.convertTo(inputIm, CV_8U, 1 / 256.); cv::fastNlMeansDenoising(inputIm, outputIm, h, templateWindowSize, searchWindowSize, cv::NORM_L1); outputIm.convertTo(filterOutputImage, CV_16U, 256.0);

256.0); //this does not work

work cv::fastNlMeansDenoising(filterInputImage, filterOutputImage, h, templateWindowSize, searchWindowSize, cv::NORM_L1);

cv::NORM_L1);