Python代码:特征图相乘生成新图片
import os
import numpy as np
from PIL import Image
# 获取所有子目录
def get_subdirs(root_dir):
subdirs = []
for dirpath, dirnames, filenames in os.walk(root_dir):
for dirname in dirnames:
subdir = os.path.join(dirpath, dirname)
subdirs.append(subdir)
return subdirs
# 加载图片并转换为numpy数组
def load_image(image_path):
image = Image.open(image_path)
image = image.convert('L') # 转换为灰度图像
image_data = np.array(image)
return image_data
# 将numpy数组保存为图片
def save_image(image_data, save_path):
image = Image.fromarray(image_data)
image.save(save_path)
# 获取特征图乘积
def get_feature_product(feature_dirs):
feature_product = None
for feature_dir in feature_dirs:
subdirs = get_subdirs(feature_dir)
for subdir in subdirs:
save_dir = os.path.join('D:/论文代码/特征图乘积', os.path.relpath(subdir, feature_dir))
if not os.path.exists(save_dir):
os.makedirs(save_dir)
filenames = os.listdir(subdir)
for i in range(len(filenames)):
filename = filenames[i]
if i == 0:
feature_product = load_image(os.path.join(subdir, filename))
else:
feature = load_image(os.path.join(subdir, filename))
feature_product *= feature
save_path = os.path.join(save_dir, filename)
save_image(feature_product, save_path)
print('特征图乘积已保存至D:/论文代码/特征图乘积')
# 对应的特征图进行特征图相乘
if __name__ == '__main__':
feature_dirs = ['D:/论文代码/spectrograms', 'D:/论文代码/语谱图', 'D:/论文代码/MFCC']
get_feature_product(feature_dirs)
注:需安装Pillow库,可使用pip install Pillow命令进行安装。
原文地址: http://www.cveoy.top/t/topic/nI8D 著作权归作者所有。请勿转载和采集!