簡體   English   中英

訪問cv :: Mat中的所有像素

[英]Accessing all pixels in cv::Mat

這是訪問cv::Mat所有像素的正確方法:

for( row = 0; row < mat.rows; ++row) 
    {
            for ( col = 0; col < mat.cols; ++col) 
            {



            }
    }

還是有一個類似於IplImage *的公式方法:

temp_ptr = &((uchar*)(img->imageData + (img->widthStep*pt.x)))[pt.y*3];

在最好的情況下,所有像素都連續存儲,您應該能夠:

uchar* pixel = mat.data;
for(int i = 0; i < mat.rows * mat.cols; ++i) 
{
    // access pixel[0],pixel[1],pixel[2] here
    pixel += 3; // move to next pixel
}

為了更通用一些,但仍然較快,請看一下Mat::isContinuous()提到的示例代碼 可以在此處看到用於計算元素地址的通用公式(轉載如下)。

地址計算

暫無
暫無

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

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