如何使用python将图像转换为公式

2024-10-16 20:47:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题可能有点。。。大的。我受到了that的启发,不知道是否可以用python实现:

pic2for

按照它的想法,我首先得到了图像的边缘,把它作为一个矩阵,并评估了点的位置,然后尝试使它连续,像那样(显然不漂亮…): Demo

(如果我不这样做的话,用线来画他们会是这样的:)

OriPlot

然后对x和y坐标做fft,得到:

[ 92897.00000000    +0.j         -16312.65365042 -5708.43473681j
   6403.02886691-11902.98323505j ...

我想这些数字代表下面的数字:

Demo_Formula

所以我用这些复数来构造一个公式:

^{pr2}$

给了我这个:

185794.0+17282.618327763143*np.sin(2*t+-2.804972121911925)+13515.908721371954*np.sin(4*t+-1.0772633933209355)+11927.354784757847*np.sin(6*t+1.847507468889795)+...

我对它做了eval(),认为这就是公式,总代码如下:

x, y = getBorder('target.png', maxRes = 256) 
x, y = sortNearest(x, y, maxDistance = 15) 

fx = np.fft.fft(x)
fy = np.fft.fft(y)

equaX = generateEqua(fx) #the codes beyond
equaY = generateEqua(fy)

t = np.linspace(0, len(x), 10000)
fsX = eval(equaX)
fsY = eval(equaY)

fig = plt.figure(figsize = (15, 15))
plt.plot(fsX, fsY, linewidth = 0.5)
plt.show()

这就是它给的:Wrong显然不是我想要的。。。在

在这里我不是在问细节,只是想知道哪里可能不正确,我的概念是错误的吗?缺少什么?或者我用错了选择?在


Tags: fftthatevalnpplt数字sin公式
1条回答
网友
1楼 · 发布于 2024-10-16 20:47:33

如果我没有完全错的话,你应该看到,如果你分散图像,有些x值有多个y值。这将违反笛卡尔坐标系的基本原理。因此,您无法为图像推导一个公式。在

在处理图像时,通常使用二维坐标数组,然后对每个x-y坐标应用函数。在

相关问题 更多 >