Wie der Zugriff auf die RGB-Werte in Opencv?

Bin ich verwirrt über die Verwendung der Anzahl der Kanäle.
Welches ist das richtige von den folgenden?

//roi is the image matrix

for(int i = 0; i < roi.rows; i++)
{
    for(int j = 0; j < roi.cols; j+=roi.channels())
    {
        int b = roi.at<cv::Vec3b>(i,j)[0];
        int g = roi.at<cv::Vec3b>(i,j)[1];
        int r = roi.at<cv::Vec3b>(i,j)[2];
        cout << r << " " << g << " " << b << endl ;
    }
}

Oder,

for(int i = 0; i < roi.rows; i++)
{
    for(int j = 0; j < roi.cols; j++)
    {
        int b = roi.at<cv::Vec3b>(i,j)[0];
        int g = roi.at<cv::Vec3b>(i,j)[1];
        int r = roi.at<cv::Vec3b>(i,j)[2];
        cout << r << " " << g << " " << b << endl ;
    }
}
  • Zweite ist richtig. Check-Dokumentation für details
  • mehr sehen Ans 1 und Ans 2
InformationsquelleAutor Barshan Das | 2012-11-26
Schreibe einen Kommentar