制作深度学习高光谱图像数据集时,进行数据增广,如何为高光谱多通道图片添加模拟噪声?
我的图片为54通道的tif格式图片
为了添加噪声到高光谱多通道图片,可以使用 Python 的 random
模块来生成随机数,并使用 NumPy 库来对图片进行矩阵运算。下面是一个例子:
import random
import numpy as np
# 读入图片
img = cv2.imread('image.jpg')
# 判断图片是否为多通道图片
if len(img.shape) > 2:
# 获取图片的高度和宽度
h, w, c = img.shape
# 使用 NumPy 生成一个具有指定大小和类型的随机数组
noise = np.random.rand(h, w, c)
# 将噪声添加到图片中
img = img + noise
# 保存修改后的图片
cv2.imwrite('noisy_image.jpg', img)
接上面回复,如果想向 TIF 格式的多通道图像添加噪声,可以使用 Python 的第三方库来实现。其中一个选择是使用 NumPy 库来处理数组数据,并使用 skimage 库中的 random_noise
函数来添加不同类型的噪声。
首先,需要安装这两个库:
pip install numpy
pip install scikit-image
然后,可以使用 NumPy 库读取 TIF 格式图像的数组数据,并使用 skimage 库中的 random_noise
函数来添加噪声,如下所示:
import numpy as np
from skimage.util import random_noise
# 读取 TIF 格式图像的数组数据
img = np.imread('image.tif')
# 添加椒盐噪声
noisy_img = random_noise(img, mode='salt')
# 添加高斯噪声
noisy_img = random_noise(img, mode='gaussian')
# 添加椒盐噪声
noisy_img = random_noise(img, mode='pepper')
# 添加高斯噪声
noisy_img = random_noise(img, mode='gaussian', var=0.01)
可以根据需要使用不同的噪声类型和参数来添加噪声。最后,可以使用 NumPy 库将噪声后的图像数据写入 TIF 格式文件中。
# 将噪声后的图像数据写入 TIF 格式文件
np.imwrite('noisy_image.tif', noisy_img)