扫描并在复杂矩阵中存储简单图像

时间:2016-01-23 20:27:59

标签: r image linear-algebra

我一直在玩R中的线性代数变换,围绕在复平面上绘制的一堆点移动。我发布了结果here - 代码链接在第一句话。

我想对真实图像进行相同的操作。显然,我不想进入傅里叶变换图像,或处理颜色或灰度。我想得到任何旧的jpeg,把它变成黑色和白色点的总结图,根据它在复杂平面中的位置找到每个点,然后像我做的那样应用线性代数运算来绘制房子

问题是,1。我所描述的精简基本黑白图像的名称是什么? 2.如何将常规jpeg(或其他文件)转换为该类型的图像?然后,如何将图像将包含的数千个点中的每个点存储到复数矩阵中?

有软件可以吗? R或python中是否有代码可以执行此操作?

1 个答案:

答案 0 :(得分:2)

目前还不清楚你正在尝试用那些复杂的矢量做什么,使用标准的x,y坐标更容易获得,但这里有一个可能的起点

library(jpeg)

im <- readJPEG(system.file("img", "Rlogo.jpg", package="jpeg"))
gr <- apply(im, 1:2, mean)
bw <- which(gr < 0.5, arr.ind = TRUE)

conjure_matrix_of_darkness <- function(bw, xlim=c(-2, 2), ylim=c(-2,2)){

  x <- (bw[,1] - min(bw[,1]))/diff(range(bw[,1])) * diff(xlim) + min(xlim)
  y <- (bw[,2] - min(bw[,2]))/diff(range(bw[,2])) * diff(ylim) + min(ylim)
  x+1i*y
}

test <- conjure_matrix_of_darkness(bw)
par(mfrow=c(2,1), mar=c(0,0,0,0))
plot(test, pch=19, xaxt="n", yaxt="n")
plot(test*exp(1i*pi), pch=19, xaxt="n", yaxt="n")

enter image description here