python图形在固定区域移动_python – 在numpy中移动图像

我有一个2d numpy数组的图像.我想通过X和Y偏移来移动图像,并希望框架的其余部分用零填充.我已经看过关于’roll’功能的讨论,但这只适用于1轴. (除非有人能指出我带填充的2D版本).我尝试过切片但是当转移偏移有所有可能的方向时我遇到了麻烦.我不想浏览所有X Y偏移/ – 排列.有一个简单的通用解决方案吗?我有下面的代码,适用于X-offset = 100.但它崩溃了X-offset = -100.

谢谢,

格特

import matplotlib.pyplot as plt

import scipy.misc as msc

import numpy as np

lena = msc.lena()

lena.dtype

(imx,imy)= lena.shape

ox= 100

oy= 20

shift_lena = np.zeros((imx,imy))

shift_lena[0:imy-oy,0:imx-ox] = lena[oy:,ox:]

shift_lena_m = shift_lena.astype(np.int64)

shift_lena_m.dtype

plt.figure(figsize=(10, 3.6))

plt.subplot(131)

plt.imshow(lena, cmap=plt.cm.gray)

plt.subplot(132)

plt.imshow(shift_lena_m, cmap=plt.cm.gray)

plt.subplots_adjust(wspace=0, hspace=0., top=0.99, bottom=0.01, left=0.05, right=0.99)

plt.show()

解决方法:

没有别的方法可以相应地处理负面和正面的变化:

non = lambda s: s if s<0 else None

mom = lambda s: max(0,s)

ox, oy = 100, 20

shift_lena = numpy.zeros_like(lena)

shift_lena[mom(oy):non(oy), mom(ox):non(ox)] = lena[mom(-oy):non(-oy), mom(-ox):non(-ox)]

标签:python,slice,numpy

来源: https://codeday.me/bug/20190528/1172186.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值