第5章 Python 数字图像处理(DIP) - 图像复原与重建4 - 指数噪声
标题指数噪声指数噪声指数噪声的PDF为P(z)={ae−az,z≥00,z<0(5.10)P(z) = \begin{cases} ae^{-az}, & z\geq 0 \\ 0, & z < 0 \end{cases} \tag{5.10}P(z)={ae−az,0,z≥0z<0(5.10)均值和方差为zˉ=1a(5.11)\bar{z} = \frac{
·
标题
指数噪声
指数噪声的PDF为
P ( z ) = { a e − a z , z ≥ 0 0 , z < 0 (5.10) P(z) = \begin{cases} ae^{-az}, & z\geq 0 \\ 0, & z < 0 \end{cases} \tag{5.10} P(z)={ae−az,0,z≥0z<0(5.10)
均值和方差为
z ˉ = 1 a (5.11) \bar{z} = \frac{1}{a} \tag{5.11} zˉ=a1(5.11)
σ 2 = 1 a 2 (5.12) \sigma^2 = \frac{1}{a^2} \tag{5.12} σ2=a21(5.12)
def exponential_pdf(z, a=1):
"""
create exponential PDF, math $$P(z) = \begin{cases} ae^{-az}, & z\geq 0 \\ 0, & z < 0 \end{cases}$$
param: z: input grayscale value of iamge
param: a: float,
"""
exp = a * np.exp(-a * z)
exp = np.where(z >= 0, exp, 0)
return exp
更正下面代码,如果之前已经复制的,也请更正
def add_exponent_noise(img, scale=1.0):
"""
add gamma noise for image
param: img: input image, dtype=uint8
param: mean: noise mean
param: sigma: noise sigma
return: image_out: image with gamma noise
"""
# image = np.array(img/255, dtype=float) # 这是有错误的,将得不到正确的结果,修改如下
image = np.array(img, dtype=float)
noise = np.random.exponential(scale=scale, size=image.shape)
image_out = image + noise
image_out = np.uint8(normalize(image_out)*255)
return image_out
# 指数噪声
a = 0.5
z = np.linspace(0, 10, 200)
z_ = 1 / a
sigma = 1 / a**2
print(f"z_ -> {z_}, sigma -> {sigma}")
exponet = exponential_pdf(z, a=a)
plt.figure(figsize=(9, 6))
plt.plot(z, exponet)
plt.show()
z_ -> 2.0, sigma -> 4.0
# 指数噪声
img_ori = cv2.imread("DIP_Figures/DIP3E_Original_Images_CH05/Fig0503 (original_pattern).tif", 0)
# img_ori = np.ones((512, 512)) * 128
img_exponent = add_exponent_noise(img_ori, scale=20)
plt.figure(figsize=(9, 6))
plt.subplot(121), plt.imshow(img_ori, 'gray', vmin=0, vmax=255), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(img_exponent, 'gray', vmin=0, vmax=255), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()
hist, bins = np.histogram(img_exponent.flatten(), bins=255, range=[0, 255], density=True)
bar = plt.bar(bins[:-1], hist[:])

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)