这次是一个很简单的代码,用途如标题
folder_path是读取的路径
os.path.join后面的括号中第一个是保存路径
都能看得懂的吧?
import numpy as np
import os
import cv2
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体
# 定义绘制频谱图的函数
def plot_spectrum(image, title,_path):
f = np.fft.fft2(image)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
plt.subplot(121), plt.imshow(magnitude_spectrum, cmap='gray')
plt.title(title), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(image, cmap='gray')
plt.title('输入图像'), plt.xticks([]), plt.yticks([])
plt.savefig(os.path.join("D:\Signal_and_System_PBL\salt_pepper_picture\\butterworth", title + '_spectrum.png'))
plt.close()
# 定义读取文件夹中所有图片的函数
def read_images_from_folder(folder_path):
images = []
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.png'):
img = cv2.imread(os.path.join(folder_path, filename), cv2.IMREAD_GRAYSCALE)
if img is not None:
images.append(img)
return images
# 读取文件夹中的所有图片
folder_path ="D:\Signal_and_System_PBL\salt_pepper_picture\\butterworth"
images = read_images_from_folder(folder_path)
# 对每张图片绘制频谱图并保存
for i, image in enumerate(images):
title = 'image_{}'.format(i)
plot_spectrum(image, title, folder_path)