日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cv::Mat::step step1 elemSize elemSize1介绍

發布時間:2023/12/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cv::Mat::step step1 elemSize elemSize1介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

在看slam源碼中,常見到cv::Mat類中的step,step1,elemSize和elemSize1等函數和屬性,不了解這些函數和屬性的含義的話,難以看懂slam源碼中對圖像的操作,因此本文介紹這些函數和屬性的含義,并給出具體的例子。

OpenCV圖像的存儲方式

要理解上述函數的函數,首先需要了解圖像在opencv中的存儲方式,圖1顯示了rgb圖像在opencv中的存儲方式。每個元素包含三個通道。

圖1 opencv圖像存儲方式

?step,step1,elemSize,elemSize1含義

  • step[0]: 圖像一行元素的字節數,圖1中,step[0]就是任意一行,比如row0,所有元素的字節數
  • step:是cv::Mat類的一個屬性,等同于step[0]
  • step[1]: 圖像一個元素的字節數,圖1中,任意一個元素,比如(row0, col0),該元素又包含三個通道,step[1]就是該任意元素所有通道的字節數
  • step1(0): 圖像一行元素的通道數,圖1中,每個元素有3個通道,一行有4個元素,所以step(0)=12, step1()函數等同于step1(0),因為該函數的默認參數是0
  • step1(1): 圖像一個元素的通道數,圖1中,每個元素有3個通道,所以step1(1)=3
  • elemSize(): 圖像中一個元素的字節數,圖1中,任意一個元素,比如(row0, col0),該元素又包含三個通道,elemSize()就是該任意元素所有通道的字節數
  • elemSize1():圖像中一個元素中的一個通道的字節數,圖1中,任意一個元素,比如(row0, col0),該元素又包含三個通道,elemSize1()就是該任意元素一個通道的字節數

示例

可能上面的文字介紹還是比較抽象,下面通過一個例子來進一步介紹

#include <opencv2/core.hpp> #include <iostream>int main(int argc, char **argv) {cv::Mat img(3, 4, CV_16UC3, cv::Scalar_<uchar>(1, 2, 3));std::cout << img << std::endl;std::cout << "step = " << img.step << std::endl;std::cout << "step[0] = " << img.step[0] << std::endl;std::cout << "step[1] = " << img.step[1] << std::endl;std::cout << "step1 = " << img.step1() <<std::endl;std::cout << "step1(0) = " << img.step1(0) << std::endl;std::cout << "step1(1) = " << img.step1(1) << std::endl;std::cout << "elemSize() = " << img.elemSize() << std::endl;std::cout << "elemSize1() = " << img.elemSize1() << std::endl;return 0; }

代碼中定義了一個3行4列的Mat類對象img,其中img的每個元素的類型是CV_16UC3,其中CV_16UC3是OpenCV定義好的數據類型,16U代表每個元素的類型是16位的unsigned short類型,C3代表每個元素有3個通道。代碼輸出img的step,step1,elemSize和elemSize1。

?可以看出img的存儲方式與上文介紹的保持一致,每個元素有3個通道。

step:img中一行元素的字節數,img中每個元素的類型是16位unsigned short,也就是說每個元素占2個字節,每個元素有3個通道,一行有4個元素,因此

step[0]:等同于step

step[1]: img中一個元素的字節數,一個元素2字節,包含3通道,

step1(): img中一行元素的通道數,每個元素3通道,一行4個元素,

step1(0): 等同于step1()

step1(1):img中一個元素的通道數,每個元素3通道,?

elemSize(): img中一個元素的字節數,

elemSize1(): img中一個元素的一個通道的字節數,

總結

以上是生活随笔為你收集整理的cv::Mat::step step1 elemSize elemSize1介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。