Image processing 网格图像变换的边界条件
我使用Image processing 网格图像变换的边界条件,image-processing,numpy,Image Processing,Numpy,我使用meshgrid对图像进行了变换,但新坐标部分超出了原始图像的范围,导致变换失败 首先我用的是夹子 ... tX = numpy.clip(tX.astype(numpy.int),0,image.w) tY = numpy.clip(tY.astype(numpy.int),0,image.h) result image([tX,tY]) 其结果类似于“最近”边界条件 我想所有的外部像素都是黑色的。我想我可以通过在网格上使用布尔数组来实现这一点,但我不知道如何将布尔数组正确地应用到网格
meshgrid
对图像进行了变换,但新坐标部分超出了原始图像的范围,导致变换失败
首先我用的是夹子
...
tX = numpy.clip(tX.astype(numpy.int),0,image.w)
tY = numpy.clip(tY.astype(numpy.int),0,image.h)
result image([tX,tY])
其结果类似于“最近”边界条件
我想所有的外部像素都是黑色的。我想我可以通过在网格上使用布尔数组来实现这一点,但我不知道如何将布尔数组正确地应用到网格上
tXbool = numpy.abs(tX) < image.w
tXbool.shape
(850, 1280)
tX[tXbool].shape
(193180,)
tXbool=numpy.abs(tX)
好的,我最后就是这样做的:
tXbool = (0 < tX) & (tX < image.w )
tybool = (0 < tY) & (tY < image.h )
outliers = tXbool & tybool
mask = where(outliers,1,0)
mask4channels = dstack([mask,mask,mask])
image = image*mask4channels
tXbool=(0
您应该始终对目标图像中的像素应用逆变换,并使用它查找源图像中的(插值)颜色/值。否则,最终会出现孔洞和量化问题。这里有一个参考资料,或者在任何图像处理教科书中查找图像变换/扭曲:这是您提出的一个非常好的观点。注意这一点非常重要。