I have done some pre processing for dft , and i am trying to save this image by imwrite.

My cropped image has this information

output.type()           5   

output.channels()       1

output.depth()          5

But everytime when i save it gives black output. I have checked old existing threads of stackoverflow but all seems not working for me. e.g. OpenCV2.3 imwrite saves black image

I have tried many color conversions and depth conversion as well but i dont know why it does not work.

std::vector<int> qualityType;
qualityType.push_back(CV_IMWRITE_JPEG_QUALITY);
qualityType.push_back(90);

Mat out1,out2;

cv::cvtColor(output, out1, CV_GRAY2BGR);
//out1.convertTo(out2,CV_8U,1./256); // i tried this too 
cv::imwrite("dft1.jpg",out1,qualityType); // tried even using quality type

imshow display this image fine only problem comes when i save it.

please help

[EDIT] Maybe my dft class that i made has problem because i whenever i use dft function then the output can only work with inshow but for save it does not work.

CDftRidgeAnalyses::CDftRidgeAnalyses(void)
{
}

CDftRidgeAnalyses::~CDftRidgeAnalyses(void)
{
}


Mat CDftRidgeAnalyses::GetRidgeAnalyses(Mat inpGray)
{
    Mat img = inpGray;
    int WidthPadded=0,HeightPadded=0;
    WidthPadded=img.cols*2;
    HeightPadded=img.rows*2;
    int M = getOptimalDFTSize( img.rows );
    //Create a Gaussian Highpass filter 5% the height of the Fourier transform
    double db  = 0.05 * HeightPadded;

    Mat fft = ForierTransform(img.clone(),HeightPadded,WidthPadded);

    Mat ghpf = CreateGaussianHighPassFilter(Size(WidthPadded, HeightPadded), db);
    Mat res;

    cv::mulSpectrums(fft,ghpf,res,DFT_COMPLEX_OUTPUT);

    Mat mag  = GetDftToImage(res,img);

    int cx = mag.cols/2;
    int cy = mag.rows/2;
    cv::M
Edit
Report