想要通过图像相加得到以下效果:
代码如下:
from skimage import util
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
def get_avge(k):
img = cv.imread("D:\windows\Desktop\Fig(galaxy_pair_original).png",0)
result=img.copy()
sumimg=np.zeros((img.shape[0],img.shape[1]))
for i in range(k):
locals()['noiseimg'+str(i)] = util.random_noise(img, mode='gaussian', mean=0, var=0.1)
for i in range(0, img.shape[0]):
for j in range(0, img.shape[1]):
for m in range(k):
sumimg[i,j]+=locals()['noiseimg'+str(m)][i,j]*255
result[i,j]=sumimg[i,j]/k
return result
if __name__ =='__main__':
plt.figure(dpi=160)
ax1 = plt.subplot(151)
plt.imshow(get_avge(5), cmap='gray')#k=5
ax2 = plt.subplot(152)
plt.imshow(get_avge(10), cmap='gray')#k=10
ax3 = plt.subplot(153)
plt.imshow(get_avge(20), cmap='gray')#k=20
ax4 = plt.subplot(154)
plt.imshow(get_avge(50), cmap='gray')#k=50
ax5 = plt.subplot(155)
plt.imshow(get_avge(100), cmap='gray')#k=100
plt.show()
运行结果如下: