【问题标题】:R raster - change image size, keep aspect ratio and DPI unchangedR raster - 改变图像大小,保持纵横比和 DPI 不变
【发布时间】:2015-05-01 20:39:03
【问题描述】:
    library(raster)
    r1 <- brick(system.file("external/rlogo.grd", package="raster"))
    plotRGB(r1)
    png(filename = "boy.png",width=50, height=50)
    x <- crop(r1, extent(0,50,0,50))
    plotRGB(x)
    dev.off()

以上代码在我的默认工作目录中创建了 boy.png。 图像为 50 x 50 像素。

  1. 如何制作该图像 - 100 x 100 像素,同时保持 纵横比和 DPI 一样吗?
  2. 在我的png(filename = "boy.png",width=50, height=50) 命令中,我必须 指定图像大小。否则我得到大小为 480 像素 x 480 的图像 裁剪部分图像的像素 - x &lt;- crop(r1, extent(0,50,0,50)) 的大小被放大了。如果在我的 png 命令中我提到宽度为 100,并且在我的裁剪命令中如果图像宽度小于 100,那么我的实际图像周围会出现两个白色带(似乎光栅包用白色填充了额外的空间)。有没有办法获得裁剪命令中提到的精确大小的图像,但没有在 png 命令中指定图像宽度和高度?

【问题讨论】:

    标签: r image image-processing raster


    【解决方案1】:
    library(raster)
    r1 <- brick(system.file("external/rlogo.grd", package="raster"))
    x <- crop(r1, extent(0,50,0,50))
    
    png(filename="boy.png", width=ncol(x), height=nrow(x))
    plotRGB(x)
    dev.off()
    

    DPI(每英寸点数)不是图像属性。这取决于您打印它的纸张尺寸(以及图像覆盖的纸张比例)。

    【讨论】:

    • 我收到了您对 DPI 的评论。但是有没有办法在不影响图像质量的情况下将图像大小更改为 2 倍?
    • 当然,做width=ncol(x)*2, height=nrow(x)*2,可以试试plotRGB(x, interpolate=TRUE)
    猜你喜欢
    • 2013-02-26
    • 2013-06-26
    • 2012-04-15
    • 2012-08-20
    • 2018-06-11
    • 2019-11-02
    相关资源
    最近更新 更多