与 cv::Mat 元素一起存储附加信息

发布于 2024-11-07 04:35:36 字数 141 浏览 0 评论 0 原文

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

What's the best way to store some additional info along with pixels of image? Right now I'm thinking about something like vector<vector<vector<Info*>>> with two first indices indicating corresponding pixel's coordinates. Is there something better?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

七色彩虹 2024-11-14 04:35:36

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

你的向量向量看起来有点复杂,但如果每个坐标总是有很多相关信息,那就很好了。

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

map<coordinates, info>

并仅存储几个坐标的信息。

Most often there is no single "best" solution.

Your vector of vectors seems a bit complicated, but can be good if each coordinate always have a lot of associated information.

If only some of the pixels have additional Info, you can possibly use a more sparse data structure

map<coordinates, info>

and only store info for a few coordinates.

凡尘雨 2024-11-14 04:35:36

如果您的信息并不复杂(可以用最多 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*)

If your information is not complex (can be described by a up-to-4-channel vector) you could store the information in another cv::Mat with the same size as you image. If the information for each pixel is more complex you could store a pointer in each matrix element:

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

Before you try this approach, ensure that:
sizeof(CV_32S) == sizeof(ComplexStruct*)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文