代码之家  ›  专栏  ›  技术社区  ›  Jan021981

简历:材料数据始终返回相同的值

  •  0
  • Jan021981  · 技术社区  · 6 年前

    我有一个红色的图像-只是为了测试。RGB颜色是(217/18/36)。

    我执行以下代码:

    void QuaterImage(Mat& SrcImage, Mat& DestImage, bool Downsample) {
        int newWidth = 0, newHeight = 0;
        int newOrigWidth = 0, newOrigHeight = 0;
    
        if (SrcImage.cols % 2 > 0) { newOrigWidth = SrcImage.cols - 1; } else { newOrigWidth = SrcImage.cols; }
        if (SrcImage.rows % 2 > 0) { newOrigHeight = SrcImage.rows - 1; } else { newOrigHeight = SrcImage.rows; }
    
        if (SrcImage.depth() != CV_8U) { return; }
    
        newHeight = newOrigHeight / 2;
        newWidth = newOrigWidth / 2;
    
        DestImage = Mat(newWidth, newHeight, SrcImage.type());
        int r = 0, c = 0;
        uchar* DataPtr = SrcImage.ptr<uchar>(0);
    
        std::cout << std::to_string(*DataPtr) << std::endl;
        return;
    }
    

    如果我将图像更改为完全黄色,它将返回完全相同的值。怎么可能呢?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Jan021981    6 年前

    好的,对不起,我知道了。你看不见。我给了你同样的印象 SrcImage DestImage DestImage = Mat(newWidth, newHeight, SrcImage.type()); 过度改写图像。在该行之前,值是正确的。