R中的像素化图像对象

R中的像素化图像对象,r,image,processing,pixel,R,Image,Processing,Pixel,如何在R中创建图像对象?换句话说,如何将高质量图像对象转换为较低位(例如8像素)的图像对象 我已经开始使用“EBimage”软件包进行图像处理,但找不到一个可以实现这一点的函数。有什么想法吗?我们可以用下面的例子来讨论 source("http://bioconductor.org/biocLite.R") biocLite("EBImage",dependencies=T) require("EBImage") link1 <- "https://raw.githubuserconte

如何在R中创建图像对象?换句话说,如何将高质量图像对象转换为较低位(例如8像素)的图像对象

我已经开始使用“EBimage”软件包进行图像处理,但找不到一个可以实现这一点的函数。有什么想法吗?我们可以用下面的例子来讨论

source("http://bioconductor.org/biocLite.R")
biocLite("EBImage",dependencies=T)
require("EBImage")

link1 <- "https://raw.githubusercontent.com/algons/coursera/master/junk_pic.png"
#Download images and create img objects
download.file(link1, "img1.jpg", mode="wb", quiet=TRUE)
img1 <- readImage("img1.jpg")
源代码(“http://bioconductor.org/biocLite.R")
biocLite(“EBImage”,相关性=T)
要求(“EBImage”)

link1不确定两幅图像的比较是整个应用程序的一部分,还是仅仅是为了处理其他事情而碰巧需要做的一部分。如果是后者,ImageMagick对此非常有能力—请参阅

假设您有两个不同大小的图像(
a.jpg
b.jpg
),您可以将它们的副本强制为100x100像素(例如),然后比较像素之间的均方根差,如下所示:

convert a.jpg -resize 100x100! 1.jpg
convert b.jpg -resize 100x100! 2.jpg
compare 1.jpg 2.jpg -metric rmse null:
它会给你一个均方根差作为它的数值输出,
0
意味着图像是相同的

您可以从R中退出,并使用
system()
命令执行上述操作

system("compare 1.jpg 2.jpg -metric rmse null:",intern=TRUE);
或者,您可以将图像转换为4x4,然后自己进行矢量比较:

convert a.jpg -resize 4x4! smallA.jpg
convert b.jpg -resize 4x4! smallB.jpg

你是指像素化的图像(像素大得像块一样)还是像素化的图像(只有很少的独特颜色)?我可能会忽略命名约定,但我认为这是像素化。问题是我想匹配两个“几乎相等”的图像(相同的图像,但其中一个质量更高-肉眼不会注意到,但会影响图像值)。我假设如果我将两幅图像像素化为少量像素,它们将具有相同的图像值。