请问如何将一张超大分辨率的图拆分成一张一张的小图呢,比如分辨率为1W*1W的,拆分成正常能显示的一块一块的图片。最好能给个思路,谢谢~

解决方案 »

  1.   

    谢谢楼上的,不需要压缩处理,应该是JPEG格式的,是不是需要解码然后重新编码?
      

  2.   

    我一般用的是gdal库,你可以试下,一个函数就可以将图像数据读出来,只要不超过4g的处理起来都很简单~
      

  3.   

    1W*1W的图像,应该不可能一次读进内存。如果是JPEG,你可以每次读50行数据,那么内存大小是10000*50*通道数,大概150M,这150M的内存,你可以把每行10000在内存里再分,如每行100,那么你每个小图片的大小是100*50.直到你整个图片写完
      

  4.   

    首先要想办法把JPEG解码出来成一张完整的图片,然后再按照长和宽进行分割成一块一块的。
    分割的大小要看你是如何定义的了,分割方法则就按照行进行分段读取对应列的数据
      

  5.   

    其实有个更简单的方法 用OpenCV 设置ROI就可以了
      

  6.   

    太狠了,不过roi的trick很危险,lz必须得使用数据真正的拷贝到每一个小块中,我遇到过这种问题