相关疑难解决方法(0)

OpenCV imwrite保存完整的黑色jpeg

我已经为dft做了一些预处理,我试图通过imwrite保存这个图像.

我的裁剪图像有此信息

output.type()           5   

output.channels()       1

output.depth()          5
Run Code Online (Sandbox Code Playgroud)

但每当我保存它时会产生黑色输出.我已经检查了堆栈流的旧现有线程,但似乎都不适合我.例如 OpenCV2.3 imwrite保存黑色图像

我也尝试了很多颜色转换和深度转换,但我不知道为什么它不起作用.

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
Run Code Online (Sandbox Code Playgroud)

imshow显示这个图像很好只有问题来我保存它.

请帮忙

[编辑]也许我制作的dft类有问题,因为每当我使用dft函数时输出只能用于inshow但是为了保存它不起作用.

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 …
Run Code Online (Sandbox Code Playgroud)

c++ opencv matrix save depth

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

depth ×1

matrix ×1

opencv ×1

save ×1