我最近发现了一个吉特布包裹,开发人员分析了由安东尼奥·普罗希亚斯( Antonio Prohias )在“疯狂杂志”( Mad Magazine )上出现的248个间谍对间谍漫画系列的粉丝策划数据。
他进行了一些基本的探索性数据分析,计算出黑人间谍获胜的净得分,然后进行非参数检验(沃尔德沃尔福威茨检验),观察其中一名间谍的连续胜利,以确定普罗哈斯是否通过逆转先前的结果来保持得分平衡,或者他是否可能选择了最爱的人。
虽然我发现这是一个有趣的练习,我最感兴趣的间谍阴谋。

间谍图的点数据实际上来自一个MATLAB复活节彩蛋 spy()包,开发人员将这个点数据作为蒂布尔::特里布放入R中。
我的问题是,如何从图像中创建点数据?是否可以做imager()来获得一个大纲

然后以某种方式将这些图像数据转换成tbl_df?我不熟悉位图数组,但也许答案就在于这样的东西?
发布于 2018-01-25 11:56:43
我们可以使用imager::cannyEdges获取边缘,然后将坐标放在一个数据帧中进行绘制。
library('ggplot2')
library('imager')
plot(boats)

img <- cannyEdges(boats)
plot(img)

看起来,img是一个具有4个维度的逻辑数组。
dim(img)
# [1] 256 384 1 3我只想要两个维度,所以我会放弃其中的两个维度。
img <- img[, , 1, 1]
img[1:8, 1:8]
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
# [1,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [2,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [3,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [4,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [5,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [6,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [7,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [8,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSEwhich可以将此矩阵转换为坐标列表。
coords <- which(img, arr.ind = T)
head(coords)
# row col
# [1,] 255 1
# [2,] 255 2
# [3,] 255 3
# [4,] 255 4
# [5,] 255 5
# [6,] 255 6现在可以画出来了。
df <- data.frame(x = coords[,1], y = coords[,2])
ggplot(df, aes(x, -y)) +
geom_point()

https://stackoverflow.com/questions/48441119
复制相似问题