我一直在玩R中的线性代数变换,围绕在复平面上绘制的一堆点移动。我发布了结果here - 代码链接在第一句话。
我想对真实图像进行相同的操作。显然,我不想进入傅里叶变换图像,或处理颜色或灰度。我想得到任何旧的jpeg,把它变成黑色和白色点的总结图,根据它在复杂平面中的位置找到每个点,然后像我做的那样应用线性代数运算来绘制房子
问题是,1。我所描述的精简基本黑白图像的名称是什么? 2.如何将常规jpeg(或其他文件)转换为该类型的图像?然后,如何将图像将包含的数千个点中的每个点存储到复数矩阵中?
有软件可以吗? R或python中是否有代码可以执行此操作?
答案 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")