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中的裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

R-我如何将图像裁剪/屏蔽到 AOI - Ebimage

如何使用默认裁剪意图裁剪 android marshmallow 中的图像?

如何处理IOS图像裁剪中的图像旋转问题

裁剪图像更改 iPhone 中的旋转

Swift 中的自定义相机和裁剪图像

java中的图像裁剪