サンプルソースを見ていいると
for (int y = 0; y < frame.cols ; y++) {
... frame.ptr<unsigned char>(y) ...
}
という記述があり、何をしているかわからなかった。
mat.hppのソースを見てみると、
template<typename _Tp> inline _Tp* Mat::ptr(int y)
{
CV_DbgAssert( y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0]) );
return (_Tp*)(data + step.p[0]*y);
}
と定義されており、画像データのラインY行目の先頭のポインタを求め、指定の型にcastするものとわかった。
その他
OpenCVをさわっていると、source, distinationの並びに慣れてしまい、memcpyがto, fromの並びなので、ソースを見ていて悩んでしまうようになった
0 件のコメント:
コメントを投稿