OpenCV_画素アクセスメモ

cv::Mat の深度アクセス時の型合わせる必要あり。
合わせないと例外が発生する。

 

ex )
CV_8U は unsigned char 型なので アクセス時の型もこれにする。

    cv::Mat hoge = cv::Mat::zeros(3, 1, CV_8U);
    for (int y = 0; y < hoge.rows; y++)
    {
        for (int x = 0; x < hoge.cols; x++)
        {
            int hh = hoge.at<unsigned char>(y, x); // .at<int> は NG
            std::cout << hh << std::endl;
            // 0
            // 0
            // 0 と表示。 auto だとコンソールに出力されなかった。エラーは出ない。
        }
    }

CV_64F なら double でアクセスする。

 

 

初期化の書き方メモ

    cv::Mat m = (cv::Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);

    cv::Mat hoge(cv::Size(3, 1), CV_64FC1, cv::Scalar(0));
        //cv::Mat hoge = cv::Mat::zero ~ と結果は同じ。

 

 

こちらから。
http://answers.opencv.org/question/113449/how-to-initialize-mat-size-and-fill-it-with-zeros-in-a-class/
http://opencv.jp/cookbook/opencv_mat.html#matlab

以上。