目标
我试图模拟粗数据,就好像它们是用一个粗略的PSF (点扩展函数)测量的一样。
数据
我有一个15m像素大小的卫星图像,我想将它与高斯核进行转换,以将空间分辨率降低到460米。要做到这一点,我需要应用一个传递函数(TF;例如,高斯)到精细数据,但宽度非常大。这就产生了粗略的数据。
是否有任何函数作为输入,以一个好的分辨率图像,应用高斯TF和产生一个粗糙的空间分辨率图像?
为了使我的问题更加清楚,我遵循了“点扩展函数对降尺度连续性的影响”这篇论文。总之,作者希望使用辅助的精细空间分辨率变量缩小粗卫星图像的规模。降尺度由两个步骤组成:
在回归过程中,为了匹配粗分辨率图像的像素大小,必须对高分辨率图像进行放大,然后进行回归。这个升级的必须使用PSF完成。
你可以从这里下载我的图片。
发布于 2022-11-04 01:11:20
因此,由于缩放因子不是整数(即目标分辨率为460 m,输入栅格在100 m,即460/100 = 4.6),解决方案是:模糊图像,然后使用最近的邻居重采样模糊图像:
library(raster)
library(gridkernel)
library(gridprocess)
fr = raster("path/fine_resolution_image.tif") # image to be blurred
cr = raster("path/coarse_resolution_image.tif") # another image at the target resolution. to be used for the resampling of the blurred fr image
g = as.grid(fr)
smoothed = gaussiansmooth(g, sd = 0.3 * 460, max.r = 100) # units in pixels
r <- raster(smoothed)
resample(fr, cr, method="ngb", filename="path/blurred_resampled.tif")
发布于 2022-09-23 16:28:55
基于这个问题,发明了方法区域对点回归Kriging的人的代码,王群明和OpenImageR
软件包的函数down_sample_image
的描述,我设法用Gaussian blur
来提升图像的质量。总之,我必须乘以PSF *变焦因子。
library(raster)
library(OpenImageR)
r = raster("path/tirs.tif")
m = as.matrix(r)
psf = down_sample_image(m,
factor = 4.6, # zoom factor
gaussian_blur = T,
gauss_sigma = 0.5) # sigma of pixel size
e <- extent(r)
m2r <- raster(psf)
extent(m2r) <- e
raster::crs(m2r) <- "EPSG:7767"
res(m2r)
writeRaster(m2r, "path/tirs460.tif")
https://stackoverflow.com/questions/73583077
复制相似问题