【问题标题】:randomly select a 200x200 square inside an image in python在python中的图像内随机选择一个200x200的正方形
【发布时间】:2012-01-14 15:58:54
【问题描述】:

我正在使用 python 来处理我的图像处理项目。假设我有一个非常大的图像(100000 x 100000),我需要从这个大图像中随机选择一个 200 x 200 的正方形。有什么简单的方法可以完成这项工作吗?请与我分享一些光。谢谢

------------------ 编辑 ----- -------------------

对不起,我认为它不是 100000 x 100000,但图像的分辨率是 1 公里和 2 公里。我无法选择 200 x 200 的区域。

【问题讨论】:

  • 图像是如何存储在内存中的?作为矩阵还是作为字节序列?
  • 您在哪个部分遇到了问题? (a) 选择一个随机的 200x200 位置,(b) 从您的大图像中提取一个给定的正方形,或者 (c) 处理一个 100 亿像素的图像?
  • 这是一个非常大的图像......要么是一个 疯狂的内存量(即 4*10^5*10^5 = 4*10^10 = 40 GIGABYTES 4bytes/pixel!)和一个非常非常快磁盘阵列和一个公平位时间还是使用可以分段的图像格式? (例如,单个文件或可以映射到)我觉得后者将是一个不错的选择......我敢打赌,已经有专门的解决方案可以这样做。

标签: python image-processing matplotlib python-imaging-library


【解决方案1】:

如果您转换为二进制 PPM 格式,那么应该有一种简单的方法来寻找适当的偏移量 - 它没有被压缩,所以应该有简单的关系。

所以在 0 和 100000-200-1 之间选择两个随机数,然后去镇上。

(我假设您的系统没有 10 GB 的 RAM)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多