python - 如何在openCV中创建和保存超过3个通道的图像
问题描述
我有一个维度为 19X30000 的二维数组,其中维度为 1X30000 的每一行代表一个信号。这些行中的每一行都将在稍后转换为它们的频谱图。我想要做的是生成一个具有 19 个通道的图像文件,其中每一层将代表初始二维数组中行的频谱图。到目前为止,我已经成功生成了 19 个频谱图,并将它们存储在一个列表中。
def makeSpec(row):
spec,freq,t,im = plt.specgram(row,Fs=100,NFFT=100,noverlap=50)
plt.axis('off')
figure = plt.gcf()
figure.set_size_inches(12, 1)
figure.canvas.draw()
img = np.array(figure.canvas.buffer_rgba())
img = cv2.cvtColor(img, cv2.COLOR_RGBA2BGRA)
b = figure.axes[0].get_window_extent()
img = np.array(figure.canvas.buffer_rgba())
img = img[int(b.y0):int(b.y1),int(b.x0):int(b.x1),:]
img = cv2.cvtColor(img, cv2.COLOR_RGBA2BGRA)
return img
eeg = np.load('data/c2_ar/'+filename) #2d array
images = []
pool = mp.Pool(mp.cpu_count())
images = pool.map(makeSpec, [row for row in eeg])
pool.close()
如何将它们全部拼接成一个 19 通道图像(在“图像”列表中),以后可以将其用于训练需要 19 通道输入的 CNN?
解决方案
推荐阅读
- hangfire - 执行 Hangfire 作业时引发“线程被中止”异常
- c# - 如何使用另一个数组和那个数组中存在的值在数组中找到索引?
- hadoop - 该示例如何在 Oozie 最佳案例中找到库?
- elasticsearch - Elasticsearch 汇总作业可以像 Logstash 那样动态创建索引吗?
- css - Bootstrap 3.3.1 间距选项不起作用。有谁知道可能出了什么问题?
- azure - Azure AD B2C - 无法调用 MS Graph API 或 Azure AD Grap API
- google-cloud-platform - 网络的 GCP 错误
- vba - 向每张幻灯片添加蓝色三角形 - 填充不起作用
- python - pygame.mask 对 renpy 不起作用
- c# - CefSharp.BrowserSubprocess 不会随机关闭