簡體   English   中英

cv::Mat.data 總是返回相同的值

[英]cv::Mat.data always returns the same value

我有一個紅色圖像 - 僅用於測試。 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;
}

它總是返回“205”。

如果我將圖像更改為完全黃色,它會返回完全相同的值。 怎么可能?

問候, 簡

好的,對不起,我明白了。 你看不到它。 我為SrcImageDestImage提供了相同的圖像,所以DestImage = Mat(newWidth, newHeight, SrcImage.type()); 覆蓋圖像。 在該行之前,值是正確的。

對不起……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM