使用其他图像的像素中位数创建图像



>我有六张图像,我想找到每个像素的中位数并从中创建一张新图片。我以这种方式创建了一个图像列表:

imgs=['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg']

然后我写了一个这样的 for 循环:

for image in imgs:

我发现有一个函数可以使用numpy找到中位数,但我不知道如何使用它。另外,找到中位数后,如何在屏幕的正确位置创建所有中位数的图片?如何将图像转换为数组?

您可以使用opencv读取图像

import cv2
import numpy as np
imgs=['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg'] 
np_images = []
for img in imgs:
    image = cv2.imread(img,1)
    if image is None:
        print(img, "doesnot exist")
    else:
        np_images.append(image)
# assuming the dimensions of all images are the same
np_array = np.array(np_images)
median_image = np.median(np_array,axis=0)
cv2.imwrite("median_image.jpg",median_image)

编辑:

  • np_images是一个数组,用于存储OpenCV读取的图像
  • p_value是一个数组,用于存储像素的颜色值(row,col)
  • np.zeros是一个产生零矩阵的函数(其值为零)的给定形状。

加快程序速度。

最新更新