
大型图像进行碎片化分割
计算横向和纵向切片的数量。 生成每个切片的起始和结束坐标。 将切片坐标存储在一个二维数组中,并按照行优先的顺序展开。
发布日期:2021-05-14 15:14:00
浏览次数:20
分类:精选文章
本文共 1243 字,大约阅读时间需要 4 分钟。
大型图像进行碎片化分割是一种高效的图像处理方式,常见于处理大尺寸或高分辨率图像时。这种方法通过将原始图像分割成多个小块(碎片),逐一处理后再组合回原始图像,从而在保证质量的同时提高处理效率。
下面是一个实现大型图像碎片化分割的函数示例:
import rasteriofrom rasterio.windows import Windowdef make_grid(shape, window=512, min_overlap=32): """返回一个大小为(N,4)的数组,N为片数,第二个轴表示切片的x1,x2,y1,y2坐标。""" x, y = shape # 计算横向切片数量 nx = x // (window - min_overlap) + 1 x1 = np.linspace(0, x, num=nx, endpoint=False, dtype=np.int64) x1[-1] = x - window x2 = (x1 + window).clip(0, x) # 计算纵向切片数量 ny = y // (window - min_overlap) + 1 y1 = np.linspace(0, y, num=ny, endpoint=False, dtype=np.int64) y1[-1] = y - window y2 = (y1 + window).clip(0, y) # 创建切片坐标数组 slices = np.zeros((nx, ny, 4), dtype=np.int64) for i in range(nx): for j in range(ny): slices[i, j] = x1[i], x2[i], y1[j], y2[j] return slices.reshape(nx * ny, 4)
代码解释
该函数 make_grid
接受以下参数:
shape
:存储图像尺寸的元组,格式为(x, y)
。window
:默认值为 512,设置图像切片的大小。min_overlap
:默认值为 32,设置切片之间的最小重叠大小。
函数返回一个二维数组 slices
,每个元素表示一个切片的坐标 (x1, x2, y1, y2)
。通过将原始图像分割成多个小块后,开发者可以根据需要对每个切片进行处理。
这个函数的主要步骤如下:
应用场景
这个函数适用于大型图像的分割任务,特别是在需要将图像分割成多个小块后进行处理(如分类、检测或语义分割)。通过合理设置窗口大小和重叠值,可以在保持图像完整性的同时提高处理效率。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月06日 22时24分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mac实现远程服务器登录管理
2025-04-11
mac常用命令
2025-04-11
Mac打包dmg文件(更换背景图)
2025-04-11
Mac搭建appium环境
2025-04-11
mac更新后 homestead 无法使用
2025-04-11
mac环境安装docker
2025-04-11
MAC生成公钥私钥、PKCS1 转 PKCS8
2025-04-11
Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
2025-04-11
Mac电脑生成git的公私钥(拉取代码更便捷)
2025-04-11
MAC解决端口号被占用
2025-04-11
mac配置自定义域名
2025-04-11
magento mysql主从_Magento数据库配置选项,以及mysql 读写分离
2025-04-11
magento1给customer添加自定义属性
2025-04-11
Magic Leap是快出产品的节奏,已开放内容开发者注册通道
2025-04-11
Makefile 使用小结
2025-04-11
makefile 打印
2025-04-11