Tipo de elemento de matriz OpenCV.type() y su método de acceso.at<>()

  1. La función miembro type() de cv::Mat puede obtener el tipo de datos de los elementos de la matriz Mat, pero la función type() devuelve un valor int y se requiere una búsqueda adicional en la tabla para obtener el tipo de datos correspondiente.

    símbolo de currículum tipo c++
    8U carácter sin firmar
    8S carbonizarse
    16U corto sin firmar
    16S corto
    32s En t
    32F flotar
    64F doble

    C(n) indica el número de canales

    tipo C1 C2 C3 C4
    CV_8U 0 8 dieciséis 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<>() para acceder a los elementos
    .at<>() necesita saber el tipo de elemento para acceder.
    Tomando como ejemplo el canal único, el tipo de datos aceptado por el método at es uchar, no CV_8U, es decir, img.at<uchar>(2,3)
    tomando CV8SC3 de tres canales, img.at<cv::Vec<uchar,3>>(行,列)oimg.at<cv::Vec3i>(行,列)

    tipo de datos C1 C2 C3 C4 C6
    CV_8U volar cv::Vec2b cv::Vec3b cv::Vec<uchar,4> cv::Vec<uchar,6>
    CV_8S carbonizarse cv::Vec<carácter,2> cv::Vec<carácter,3> cv::Vec<carácter,4> cv::Vec<carácter,6>
    CV_16U corto cv::Vec<ucorto,2> cv::Vec<ucorto,3> cv::Vec<ucorto,4> cv::Vec<ucorto,6>
    CV_16S corto cv::Vec2s cv::Vec3s cv::Vec4s cv::Vec<corto,6>
    CV_32S En t cv::Vec2i cv::Vec3i cv::Vec4i cv::Vec<int,6>
    CV_32F flotar cv::Vec2f cv::Vec3f cv::Vec4f cv::Vec6f
    CV_64F doble cv::Vec2d cv::Vec3d cv::Vec4d cv::Vec6d

Supongo que te gusta

Origin blog.csdn.net/qq_41253960/article/details/129984569
Recomendado
Clasificación