def add_pepper_noise(img_path): """ 给图片添加椒盐噪声 """ image, x, y = read_image(img_path) for i in range(x): for j in range(y): pixel = image.getpixel((i, j)) if random.random() > 0.99: image.putpixel((i, j), 255 if random.random() > 0.5 else 0) else: image.putpixel((i, j), pixel) return image
def add_gaussian_noise(img_path): """ 给图片添加高斯噪声 """ image, x, y = read_image(img_path) gaussian_noise = 30 * np.random.normal(0, 1, (x, y)) for i in range(x): for j in range(y): pixel = image.getpixel((i, j)) if random.random() > 0.99: new_pixel = int(gaussian_noise[i, j] + pixel) image.putpixel((i, j), new_pixel) else: image.putpixel((i, j), pixel) return image
from Gray import read_image import math image, x, y = read_image('c.png') table = [] for i in range(256): table.append(40 * math.log1p(i)) image = image.point(table, 'L') image.save('c_log.png')
from Gray import read_image image,x,y=read_image('b.png') table=[] for i in range(256): table.append(i**0.5) image=image.point(table,'L') image.save('b_pow.png')
from Gray import read_image import pandas as pd import matplotlib.pyplot as plt image, x, y = read_image('e.png') pixels = [] for i in range(x): for j in range(y): pixel = image.getpixel((i, j)) pixels.append((pixel)) pixels = pd.Series(pixels) proportitionDict = dict(pixels.value_counts(normalize=True)) hist_dict = {} add = 0 for i in range(256): if i in proportitionDict.keys(): add += proportitionDict[i] hist_dict[i] = add table = [] for i in range(256): table.append(hist_dict[i] * 255) print(table) image = image.point(table, 'L') image.show() image.save('e_hist.png')
from Gray import read_image import pandas as pd import matplotlib.pyplot as plt # 原图 image,x,y=read_image('g.png') pixels=[] for i in range(x): for j in range(y): pixel=image.getpixel((i,j)) pixels.append((pixel)) pixels=pd.Series(pixels) proportitionDict=dict(pixels.value_counts(normalize=True)) hist_dict={} add=0 for i in range(256): if i in proportitionDict.keys(): add+=proportitionDict[i] hist_dict[i]=add table=[] for i in range(256): table.append(hist_dict[i]*255) plt.subplot(221) plt.hist(pixels,bins=256) # 目标图片
from Gray import read_image image, x, y = read_image('a.png') for i in range(x): for j in range(y): pixel = image.getpixel((i, j)) image.putpixel((i, j), 255 - pixel) image.save('a_neg.png')