存储一些额外信息以及图像像素的最佳方法是什么?现在我正在考虑类似vector<vector<vector<Info*>>>
的东西,其中有两个第一个索引表示相应的像素坐标。还有更好的东西吗?
答案 0 :(得分:1)
通常没有单一的“最佳”解决方案。
你的矢量矢量看起来有点复杂,但如果每个坐标总是有很多相关的信息,那就好了。
如果只有部分像素具有其他信息,则可以使用更稀疏的数据结构
map<coordinates, info>
并且仅存储几个坐标的信息。
答案 1 :(得分:1)
如果您的信息不复杂(可以通过最多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 *)