Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 网格图像变换的边界条件_Image Processing_Numpy - Fatal编程技术网

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
您应该始终对目标图像中的像素应用逆变换,并使用它查找源图像中的(插值)颜色/值。否则,最终会出现孔洞和量化问题。这里有一个参考资料,或者在任何图像处理教科书中查找图像变换/扭曲:

这是您提出的一个非常好的观点。注意这一点非常重要。