首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:如何通过应用大宽度的高斯滤波器来增加卫星图像的像素大小(降低空间分辨率)

R:如何通过应用大宽度的高斯滤波器来增加卫星图像的像素大小(降低空间分辨率)
EN

Stack Overflow用户
提问于 2022-09-02 13:08:07
回答 2查看 101关注 0票数 -1

目标

我试图模拟粗数据,就好像它们是用一个粗略的PSF (点扩展函数)测量的一样。

数据

我有一个15m像素大小的卫星图像,我想将它与高斯核进行转换,以将空间分辨率降低到460米。要做到这一点,我需要应用一个传递函数(TF;例如,高斯)到精细数据,但宽度非常大。这就产生了粗略的数据。

是否有任何函数作为输入,以一个好的分辨率图像,应用高斯TF和产生一个粗糙的空间分辨率图像?

为了使我的问题更加清楚,我遵循了“点扩展函数对降尺度连续性的影响”这篇论文。总之,作者希望使用辅助的精细空间分辨率变量缩小粗卫星图像的规模。降尺度由两个步骤组成:

  1. 回归
  2. 关于回归残差的克里格

在回归过程中,为了匹配粗分辨率图像的像素大小,必须对高分辨率图像进行放大,然后进行回归。这个升级的必须使用PSF完成。

你可以从这里下载我的图片。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-04 01:11:20

因此,由于缩放因子不是整数(即目标分辨率为460 m,输入栅格在100 m,即460/100 = 4.6),解决方案是:模糊图像,然后使用最近的邻居重采样模糊图像:

代码语言:javascript
运行
复制
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")
票数 0
EN

Stack Overflow用户

发布于 2022-09-23 16:28:55

基于这个问题,发明了方法区域对点回归Kriging的人的代码,王群明和OpenImageR软件包的函数down_sample_image描述,我设法用Gaussian blur来提升图像的质量。总之,我必须乘以PSF *变焦因子。

代码语言:javascript
运行
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73583077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档