Python 3.x 如何将复数写入每行中的一个csv文件?

Python 3.x 如何将复数写入每行中的一个csv文件?,python-3.x,csv,numpy,fft,Python 3.x,Csv,Numpy,Fft,我想存储使用快速傅里叶变换生成的每个图像的复数,该变换类型为复数128。 代码如下: import cv2 import glob import numpy as np bloodVessal=[] for file in glob.glob('/home/raviraj/PycharmProjects/Diabetic/testing/*.jpeg'): img=cv2.imread(file) cv2.imshow('file',img) img = cv2.resi

我想存储使用快速傅里叶变换生成的每个图像的复数,该变换类型为复数128。 代码如下:

import cv2
import glob
import numpy as np
bloodVessal=[]
for file in glob.glob('/home/raviraj/PycharmProjects/Diabetic/testing/*.jpeg'):
    img=cv2.imread(file)
    cv2.imshow('file',img)
    img = cv2.resize(img, (255, 255), interpolation=cv2.INTER_CUBIC)

    # split image
    b, g, r = cv2.split(img)
    cv2.imshow("green window", g)

    # creating CLAHE histogram
    clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
    claheImg = clahe.apply(g)
    cv2.imshow('clahe image', claheImg)

    # Edge Detection
    edge = cv2.Canny(claheImg, 165, 40)
    cv2.imshow('Edge detection ', edge)

    # FFT
    f = np.fft.fft2(edge)

    np.savetxt('/home/raviraj/PycharmProjects/Diabetic/testing/blood vessel.csv', f, delimiter=',')

    cv2.waitKey(0)
    cv2.destroyAllWindows()

此代码正在创建一个包含255行和255列的CSV文件。我只需要一列和200行。其中每行仅包含单行中每个图像的数据

我假设您要将列表
血管
保存到纯文本文件中。要使用单个列执行此操作,请在循环后附加以下内容:

np.savetxt('data.csv',bloodVessel,delimiter=',')
这将创建一个名为
data.csv
的文件

(0.000000000000000000e+00+1.000000000000000000e+00j)
(5.000000000000000000e+00+3.000000000000000000e+00j)
0.000000000000000000e+00,+1.000000000000000000e+00
5.000000000000000000e+00,+3.000000000000000000e+00
如果希望实部和虚部在单独的列中(并希望使用逗号分隔符):

它将创建一个如下所示的文件:

(0.000000000000000000e+00+1.000000000000000000e+00j)
(5.000000000000000000e+00+3.000000000000000000e+00j)
0.000000000000000000e+00,+1.000000000000000000e+00
5.000000000000000000e+00,+3.000000000000000000e+00
我还建议预先分配
血管
作为复杂类型的numpy数组,而不是添加到列表中以培养良好习惯

回应评论和问题的明显重写

在您将傅里叶系数保存在列表中之前,通过添加。目前,我不确定您是如何编辑代码的。但是,如果您的傅里叶数据现在不仅仅是一个复数值,那么您仍然可以执行上面提到的操作,只需将所需的系数保存在列表中,而不是保存整个系数数组


也就是说,从
血脉.append(f)
血脉.append(f[0])
,我假设您只想保存第一个系数。

您能跳过所有
cv2
代码,并向我们显示您要保存的数组(或至少一个子集)吗?是
f
<代码>血管列表?非常感谢您,先生,您帮了我很多忙。但是有一个新问题,你能帮我解决吗。我正在更新我的代码部分阅读它。实际上,我正在读取每一幅图像,每次计算完这个值后都使用快速傅里叶变换,我想把那个大值存储在一行中,类似地,我想一行一行地存储200个复数。因此,该表将有200行,每行都有complex128类型值。您不应该像这样更新原始代码发布,而应该在问题中创建一个新的部分,明确标识为响应,或者提出一个新问题!