R:检测两个图形是否相同

时间:2014-08-06 14:27:32

标签: r graphics shapes

我目前正致力于开发一个用于在R中生成视觉资质评估项目的软件包。这些项目通常以组合开始,然后以某种方式转换组合元素以创建新组合。我需要知道的是,如果存在可导致相同构成的替代变换。以数学方式浏览每个合成潜在选项并查看合成是否对某些转换不变(例如,圆不能旋转)或者如果不同的转换导致相同的结果(等边三角形旋转180与翻转相同)似乎太累了由于众多潜在的组合。

因此,我想知道是否有可用于检查R中两个图是否相同?

假设我们有两组命令都产生正方形:

plot(c(0,1), c(0,1), type='n')
  lines(c(.15,.85,.85,.15,.15),c(.15,.15,.85,.85,.15))

plot(c(0,1), c(0,1), type='n')
  rect(.15,.15,.85,.85)

是否有任何工具可用于逐个像素比较两个图形渲染?

1 个答案:

答案 0 :(得分:2)

您可以将照片保存为png并加载它们并比较各自的栅格。比较栅格只是比较像素矩阵。例如,这样做:

png(filename="pic1.png")
plot(c(0,1), c(0,1), type='n')
lines(c(.15,.85,.85,.15,.15),c(.15,.15,.85,.85,.15))
dev.off()

png(filename="pic2.png")
plot(c(0,1), c(0,1), type='n')
rect(.15,.15,.85,.85)
dev.off()

然后比较栅格我们发现它们是相同的:

library(png)
pic1 = as.raster(readPNG("pic1.png"))
pic2 = as.raster(readPNG("pic2.png"))

identical(pic1,pic2)
[1] TRUE