OpenCVのcv::Matクラスに格納された画像データの各画素にアクセスする方法を、以下の2種類ご紹介する。 atメソッドを用いる方法 dataメソッドを用いる方法 画素にアクセスする回数が少ないのならatメソッド、全画素に順番に読み出すなど頻繁に画素にアクセスするのならdataメソッドを用いる方法が良いと思う。 atメソッドを用いる場合 画素をピンポイントで読んだり書いたりするには、atメソッドを使う。ただし、atメソッドを使うには、Matクラスが1画素あたり何バイトからなるのかを事前に知っていないといけない。 例:白黒画像の場合 1画素の濃淡は1バイト(0〜255)で表されるので、以下のようになる。 cv::Mat img = cv::imread("cat.jpg"); int intensity = img.at<unsigned char>(y, x); //X座標がx, Y座
![cv::Mat使用時の画素へのアクセス方法 - minus9d's diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/beb8e381399128ffbbb0c4f056c890269860afed/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fminus9d%2F20130126%2F20130126185317.jpg)