【问题标题】:How to efficiently design a system that stores image data corresponding to a coordinate system?如何高效地设计一个存储坐标系对应图像数据的系统?
【发布时间】:2020-11-15 10:30:39
【问题描述】:

我正在构建一种设备,该设备使用电动载物台和相机对样本进行光栅扫描并存储其图像,以用于下游的可视化或感知任务。

我附上一张图片用于说明。(图中红色和黄色方块是映射样本区域的图像。红色方块映射较小的区域,黄色方块映射较大的区域)

舞台有自己的坐标系(黑点),可以映射到图像数据,因为每个图像中的黑点数量(>1)取决于放大倍数(红点或黄点) .

我一直想知道如何设计一个能够存储这些图像的系统。我的舞台坐标系从 -50,000 扩展到 + 50,000,步长为 0.1,因此创建 500k * 500k 大小的参考数组以将每个点映射到可能属于这些点的任何像素是没有用的。

我正在尝试在 python 中执行此操作。

【问题讨论】:

  • 也许可以试试k维树?我仍然不完全确定您要做什么,但是假设我正确理解了这个问题,这似乎是使用 k 维树的好地方。
  • 我正在尝试以不同的物理分辨率(使用不同的放大镜)映射样本区域。我想要一个抽象的数据结构,它可以让我使用这些不同的数据表示形式——我有一个物理区域,其中有一个 10 倍图像和一个 100 倍图像。有点像具有不同缩放级别的谷歌地图。
  • 也许是等级金字塔表示法?
  • 我想我正在寻找类似于图像的层次坐标系的东西。谢谢!

标签: python image-processing data-structures mapping system-design


【解决方案1】:

有一些众所周知的技术可以解决这些问题。

mm 中定义底层空间坐标系 或其他一些方便的计量单位。

定义三个(可逆)函数(黑色、红色、黄色) 这将在空间坐标和像素坐标之间来回转换。 听起来线性函数就足够了。 如果您的测量中有噪声,您可能会发现离散化 通过将低位设置为零很方便。

您将拍摄多张照片并将它们存储在文件系统中。 文件名基于中心像素的空间坐标。 以这种方式组成名称:

x_bits 为空间X 坐标,MSB 在前。 y_bits 也是如此。 让文件名交替 X 和 Y 位, 所以例如两位分辨率的坐标 (0, 3) 变为 "0101"。 将四位组变成十六进制半字节, 并将文件名的早期部分视为目录名称, 你觉得方便。

现在在查询时,附近不同分辨率的图片都一起出现。

或者,使用任意文件名, 并将坐标 + 文件名存储在 postgres PostGIS 表中。 然后geometry 像 ST_Distance 或 ST_Within 这样的查询 将有效地检索相关图像, 使用类似于我上面概述的“交错位”四叉树方法的技术。

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 2016-10-11
    • 2011-02-07
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多