我可以从Mat.data
指针获取 BGR 数据,但我不知道如何计算数据大小。有人可以帮我吗?谢谢。
1 回答
1
如果您的矩阵是连续的,我将使用cv::Mat::total() 来获取元素的数量,并使用cv::Mat::elemSize()来获取以字节为单位的矩阵元素大小:
Mat m;
//...
uchar* data = m.data();
auto datasize = m.total() * m.elemSize();
另一种方法可能是(但我不太确定,所以仔细检查一下)来区分cv::Mat::dataend和cv::Mat::datastart
auto datasize = m.dataend - m.datastart;
如果您的矩阵不连续,我想您仍然可以使用第一种方法来获取大小,但不要使用memcpy()
那么多字节,因为它不会是您的图像数据。
于 2021-02-20T11:41:22.210 回答