2013-12-12 30 views
1

我使用ENVI进行卷积,如何使用CONVOL函数在IDL中获得相同的ENVI结果?

中位数组,5内核大小​​,将图像添加返回值的0%

在ENVI的结果是非常好的,

当我尝试做使用CONVOL相同的IDL我不能设法得到它的工作方式相同,

这里是我的代码:

fsize = 5 
ext = [fsize, fsize] 
kernel = REPLICATE(1, ext[0], ext[1]) 
B = BYTE(CONVOL(B, kernel, INVALID=255, MISSING=255, /CENTER, /EDGE_WRAP)) 

有人能告诉我什么是错的吗?

+0

你试过颠倒你的内核吗?在计算卷积之前,IDL不会这样做。因此,如果您查看他们的[文档](https://www.exelisvis.com/docs/CONVOL.html),您会注意到他们建议在输入时使用内核的反转。 –

回答

0

我不认为你想使用CONVOL。你实际上正在做一个中值滤波器,所以你应该使用MEDIAN函数:

result = MEDIAN(array, 5) 
相关问题