OpenCV 行列要素 type.type() とそのアクセス メソッド.at<>()

  1. cv::Mat のメンバー関数 type() は Mat 行列要素のデータ型を取得できますが、type() 関数は int 値を返すため、対応するデータ型を取得するにはさらにテーブル検索が必要です。

    履歴書記号 C++ 型
    8U 符号なし文字
    8S 文字
    16U 符号なしショート
    16S 短い
    32秒 整数
    32階 浮く
    64F ダブル

    C(n) はチャネル数を示します

    タイプ C1 C2 C3 C4
    CV_8U 0 8 16 24
    CV_8S 1 9 17 25
    CV_16U 2 10 18 26
    CV_16S 3 11 19 27
    CV_32S 4 12 20 28
    CV_32F 5 13 21 29
    CV_64F 6 14 22 30
  2. .at<>() は要素にアクセスします
    。at<>() はアクセスする要素のタイプを知っている必要があります。
    単一チャネルを例にとると、at メソッドで受け入れられるデータ型は CV_8U ではなく uchar です。つまり、3 チャネル CV8SC3 を例にimg.at<uchar>(2,3)
    とるimg.at<cv::Vec<uchar,3>>(行,列)、またはimg.at<cv::Vec3i>(行,列)

    データの種類 C1 C2 C3 C4 C6
    CV_8U 飛ぶ cv::Vec2b cv::Vec3b cv::Vec<uchar,4> cv::Vec<uchar,6>
    CV_8S 文字 cv::Vec<char,2> cv::Vec<char,3> cv::Vec<char,4> cv::Vec<char,6>
    CV_16U ウーショート cv::Vec<ushort,2> cv::Vec<ushort,3> cv::Vec<ushort,4> cv::Vec<ushort,6>
    CV_16S 短い cv::Vec2s cv::Vec3s cv::Vec4s cv::Vec<short,6>
    CV_32S 整数 cv::Vec2i cv::Vec3i cv::Vec4i cv::Vec<int,6>
    CV_32F 浮く cv::Vec2f cv::Vec3f cv::Vec4f cv::Vec6f
    CV_64F ダブル cv::Vec2d cv::Vec3d cv::Vec4d cv::Vec6d

おすすめ

転載: blog.csdn.net/qq_41253960/article/details/129984569