为了账号安全,请及时绑定邮箱和手机立即绑定

当兴趣点位于图像边缘时如何裁剪 3D 图像?

当兴趣点位于图像边缘时如何裁剪 3D 图像?

慕尼黑8549860 2021-08-17 10:03:05
我有一个大小为 的 3D 图像512*512*30。我还有一个 csv 文件,其中存储了兴趣点。我想在32*32*16兴趣点周围裁剪一个大小为 3D 的体积,点在其中心。我写了以下内容来实现这一目标:block = [32, 32, 16]img = imageio.volread('path\\to\\tiff\\file')x, y, z = 191, 303, 17img_block = img_block[x - int(block[0] / 2):x + int(block[0] / 2),                              y - int(block[1] / 2):y + int(block[1] / 2),                              z - int(block[2] / 2):z + int(block[2] / 2)]这在上述情况下有效,但是当我在边缘上有一个 x、y、z 点时失败,例如在z = 28我得到超出范围的错误时,这是预期的。如何避免此问题并确保顺利应对?
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

填充的答案可能如下所示:


import numpy as np


point = [0,1,2]

img = imageio.volread('path\\to\\tiff\\file')

block = [32,32,16]

img_x, img_y, img_z = img.shape

img_padded = np.pad(img, block, 'constant', constant_values=0) #lookup np.pad for other padding options

img_block = img_padded[point[0]-block[0]/2:point[0]+block[0]/2...]


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号