R中的裁剪图像
Posted
技术标签:
【中文标题】R中的裁剪图像【英文标题】:Crop image in R 【发布时间】:2017-09-27 04:02:54 【问题描述】:我正在尝试使用 R 中的 magick 包裁剪图像。我的目标是裁剪图像的左上角部分。到目前为止,我的代码似乎适用于某些图像,但相同的尺寸不适用于其他图像。这是我的代码:
library(magick)
library(tidyverse)
image_read("http://www.gettyimages.com/gi-resources/images/Plugins/Chrometab.jpg")%>%
image_chop("0x185+190")%>%image_crop("50x55+1")
我正在为几张尺寸宽度为 320 高度为 240 的图像执行此操作。此代码似乎适用于某些图像,但会裁剪某些图像的左上角以外的部分。有没有办法修改我的代码,无论图片尺寸如何,它都会始终裁剪左上角。
【问题讨论】:
【参考方案1】:我不知道 R,但是如果我使用等效的 imagemagick 命令,您的裁剪将大致裁剪,图像的下半部分和随后的裁剪将裁剪裁剪底部的左上角。你为什么用筷子?同样在裁剪后,如果您保存为 PNG 或 TIFF,图像将留下一个虚拟画布,应使用 +repage 将其删除。不确定 R 中的内容,但可能是 repage +0+0。如果你想裁剪左上角,只需使用 -gravity 西北并裁剪成你想要的大小 WxH+0+0,除非你想要一个偏移量来代替 +0+0
convert Chrometab.jpg -chop 0x185+190 +write tmp1.png -crop 50x55+1 tmp2.png
tmp1.png
tmp2.png
鉴于:
convert Chrometab.jpg -gravity northwest -crop 50x55+1+0 +repage tmp3.png
tmp3.png
【讨论】:
R 中的代码相同。obj <- magick::image_read("http://www.gettyimages.com/gi-resources/images/Plugins/Chrometab.jpg"); magick::image_crop(obj,geometry="50x55+1+0",gravity="NorthWest",repage=TRUE)
以上是关于R中的裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章