import os
import cv2
import numpy as np

# 定义文件夹路径
spectrograms_path = r'D:\论文代码\spectrograms'
spectrograms_out_path = r'D:\论文代码\spectrograms_out'
mfcc_path = r'D:\论文代码\MFCC'
mfcc_out_path = r'D:\论文代码\mfcc_out'
spectrogram_cqt_path = r'D:\论文代码\语谱图'
spectrogram_cqt_out_path = r'D:\论文代码\spectrogram_cqt_out'

# 遍历文件夹中的所有图片
for root, dirs, files in os.walk(spectrograms_path):
    for file in files:
        # 读取原始图片
        img1 = cv2.imread(os.path.join(root, file), cv2.IMREAD_GRAYSCALE)
        # 读取对应的图片
        img2 = cv2.imread(os.path.join(spectrogram_cqt_path, root.split('\\')[-1], file), cv2.IMREAD_GRAYSCALE)
        # 图片相乘
        img_out = cv2.multiply(img1, img2)
        # 保存新图片
        save_path = os.path.join(spectrograms_out_path, root.split('\\')[-1])
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        cv2.imwrite(os.path.join(save_path, file), img_out)

# 遍历文件夹中的所有图片
for root, dirs, files in os.walk(mfcc_path):
    for file in files:
        # 读取原始图片
        img1 = cv2.imread(os.path.join(root, file), cv2.IMREAD_GRAYSCALE)
        # 读取对应的图片
        img2 = cv2.imread(os.path.join(spectrogram_cqt_path, root.split('\\')[-1], file), cv2.IMREAD_GRAYSCALE)
        # 图片相乘
        img_out = cv2.multiply(img1, img2)
        # 保存新图片
        save_path = os.path.join(mfcc_out_path, root.split('\\')[-1])
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        cv2.imwrite(os.path.join(save_path, file), img_out)

# 遍历文件夹中的所有图片
for root, dirs, files in os.walk(spectrogram_cqt_path):
    for file in files:
        # 读取原始图片
        img1 = cv2.imread(os.path.join(root, file), cv2.IMREAD_GRAYSCALE)
        # 读取对应的图片
        img2 = cv2.imread(os.path.join(spectrograms_path, root.split('\\')[-1], file), cv2.IMREAD_GRAYSCALE)
        # 图片相乘
        img_out = cv2.multiply(img1, img2)
        # 保存新图片
        save_path = os.path.join(spectrogram_cqt_out_path, root.split('\\')[-1])
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        cv2.imwrite(os.path.join(save_path, file), img_out)

代码中使用了 OpenCV 库来读取和保存图片,使用了 os 库来遍历文件夹和创建新文件夹。对于每个文件夹中的每个子目录,都会遍历其中的所有图片,并根据文件名相同的规则来对应特征图进行相乘,生成新的图片后保存到对应的新文件夹中。

Python 代码实现特征图相乘并保存到新文件夹

原文地址: http://www.cveoy.top/t/topic/nI8i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录