opencv之随机添加噪音

# -*- coding: utf-8 -*-
# Author: Xiaofeng Li
#
#.jpg image generate noise
#

import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
import random
from PIL import Image


class NoiseGenerator(object):

  def generated_noise(self, img):
    """
    Choose which noise to produce.
    :param img(.jpg):
    """
    noise_count = random.randint(1, 6)
    for i in range(noise_count):
      index_noise = random.randint(0, 5)
      if index_noise == 0:
        img = self.gaussian_img(img)
      elif index_noise == 1:
        img = self.salt_img(img)
      elif index_noise == 2:
        img = self.line_img(img)
      elif index_noise == 3:
        img = self.rotate_whole_img(img)
      elif index_noise == 4:
        img = self.erode_img(img)
      elif index_noise == 5:
        img = self.rotate_local_img(img)
    return img

  def gaussian_
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在OpenCV Python添加高斯噪声,可以使用cv2.randn()函数生成随机高斯噪声数组,然后将其添加到图像。具体步骤如下: 1.导入OpenCV库和NumPy库: import cv2 import numpy as np 2.读取图像: img = cv2.imread('image.jpg') 3.生成随机高斯噪声数组: mean = var = .1 sigma = var ** .5 gauss = np.random.normal(mean, sigma, img.shape) 4.将噪声数组添加到图像: noisy_img = img + gauss 5.显示添加噪声后的图像: cv2.imshow('Noisy Image', noisy_img) cv2.waitKey() cv2.destroyAllWindows() 以上就是在OpenCV Python添加高斯噪声的方法。 ### 回答2: 在OpenCV Python添加高斯噪声可以通过以下步骤实现: 步骤1:导入必要的库 首先,需要导入OpenCV、Numpy和Matplotlib等必要的库来实现添加高斯噪声。 import cv2 import numpy as np import matplotlib.pyplot as plt 步骤2:读取图像 使用cv2.imread()函数读取图像,并转换为灰度图像。这里我们使用了一个名为“Lena”的图片。 img = cv2.imread('lena.png', 0) 步骤3:添加高斯噪声 使用numpy.random.normal()函数来生成高斯噪声,并将其添加到原始图像上。第一个参数为均值,第二个参数为方差,第三个参数为原始图像的大小。生成的高斯噪声将被加到原始图像上。 mean = 0 var = 100 sigma = var ** 0.5 gaussian = np.random.normal(mean, sigma, (img.shape)) noisy_image = np.zeros(img.shape, np.float32) if len(img.shape) == 2: noisy_image = img + gaussian else: noisy_image[:, :, 0] = img[:, :, 0] + gaussian noisy_image[:, :, 1] = img[:, :, 1] + gaussian noisy_image[:, :, 2] = img[:, :, 2] + gaussian 步骤4:显示和保存图像 最后,通过Matplotlib包来显示和保存图像。 plt.subplot(121) plt.imshow(img, cmap='gray') plt.title('原始图像') plt.xticks([]), plt.yticks([]) plt.subplot(122) plt.imshow(noisy_image, cmap='gray') plt.title('高斯噪声图像') plt.xticks([]), plt.yticks([]) plt.show() cv2.imwrite('gaussian_noise.png', noisy_image) 总结: 本文介绍了如何使用OpenCV Python添加高斯噪声添加高斯噪声可以帮助我们更好地理解图像处理的过程,并为其他图像处理任务的准备提供了基础。在实践,可能需要调整均值、方差和正态分布等参数来生成最适合特定应用程序的噪声图像。 ### 回答3: 什么是高斯噪声? 高斯噪声是一种常见的图像噪声,其特随机分布在图像的不同区域上,通常由于光照条件的变化、传感器的失真或图像的压缩等原因而产生。该噪声的特随机的,不规则的,它会使图像变得看起来更加模糊和不清晰,包含了在图像上看起来 like white noise 的随机噪声。 如何使用 OpenCV Python 添加高斯噪声OpenCV 为 Python 提供了一个内置方法,可以使用该方法在图像添加高斯噪声。我们可以使用 Gaussian Noise 函数 cv2.randn() 来添加高斯噪声。 | 函数 | 描述 | | ------ | -------------------- | | cv2.randn() | 计算具有正态分布的数组 | 以下是添加高斯噪声的步骤: 1.导入模块和读取图像 ``` import cv2 import numpy as np # 读取图像 img = cv2.imread('lena.jpg') ``` 2.声明高斯 noise 周期和其标准差并获取高斯 noise ``` #设置高斯 noise 周期 period_noise = 50 #设置 sigma sigma = 1.5 #计算高斯随机数 noise = np.array(img.shape, dtype=np.uint8) cv2.randn(noise, 0, sigma) ``` 3.将高斯噪声添加到原始图像 ``` noisy_image = cv2.add(img, noise) ``` 4.保存输出图像 ``` cv2.imwrite('noisy_img.jpg', noisy_image) ``` 如上所述,添加高斯噪声只需要几个简单的步骤。在实际应用,您可以调整高斯 noise 周期,sigma 或添加高斯噪声的函数参数以获得所需的输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者无疆兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值