存储其他信息以及 cv::Mat 元素



存储一些附加信息以及图像像素的最佳方法是什么?现在我正在考虑类似 vector<vector<vector<Info*>>> 的东西,其中有两个第一索引指示相应像素的坐标。还有更好的吗?

大多数情况下,没有单一的"最佳"解决方案。

您的向量向量似乎有点复杂,但如果每个坐标始终有很多相关信息,则可能会很好。

如果只有某些像素具有其他信息,则可以使用更稀疏的数据结构

map<coordinates, info>

并且只存储几个坐标的信息。

如果你的信息不复杂(可以用最多4通道的向量来描述),你可以将信息存储在另一个cv::Mat中,大小与你的图像相同。如果每个像素的信息更复杂,您可以在每个矩阵元素中存储一个指针:

cv::Mat additionalInfo(image.size(), CV_32S); // CV_32S = int (usually the type used for pointers)
additionalInfo.at<CV_32S>(col,row) = new ComplexStruct; // Writing
ComplexStruct* info = additionalInfo.at<CV_32S>(col,row); // Reading

在尝试此方法之前,请确保: sizeof(CV_32S) == sizeof(ComplexStruct*)

相关内容

  • 没有找到相关文章

最新更新