编写程序输入噪声强度值

编写程序输入噪声强度值,第1张

您好,编写程序输入噪声强度值,可以通过以下步骤实现:

1. 确定编程语言和编程环境。根据自己的喜好和熟练程度,选择一种适合的编程语言,如Python、Java、C++等,并安装相应的编程环境。

2. 设计程序界面。根据需求,设计一个简单的程序界面,用于输入噪声强度值。可以使用图形用户界面(GUI)工具,如Tkinter、Qt等,或者使用命令行界面(CLI)。

3. 编写程序代码。根据程序界面的设计,编写程序代码,实现输入噪声强度值的功能。可以使用标准输入函数,如scanf()、input()等,或者使用GUI工具提供的输入框。

4. 添加输入检查。为了保证输入的正确性,可以添加输入检查功能。例如,判断输入的值是否为数字、是否在合法范围内等。

5. 测试程序。在编写完程序后,进行测试,确保程序能够正常运行,并且输入的噪声强度值能够被正确处理。

总之,编写程序输入噪声强度值需要根据具体需求进行设计和实现,同时要考虑程序的可靠性和用户体验。

白噪声是时间序列预测中的一个重要概念。如果一个时间序列是白噪声,它是一个随机数序列,不能预测。如果预测误差不是白噪声,它暗示了预测模型仍有改进空间。

什么是白噪声时间序列?

时间序列可能是白噪声。时间序列如果变量是独立的且恒等分布的均值为0,那么它是白噪声。这意味着所有变量具有相同的方差 (sigma^2),并且每个值与该系列中的所有其他值具有零相关。

如果序列中的变量被高斯分布绘制,则该系列称为高斯白噪声。

为什么这么重要?

白噪声是时间序列分析和预测中的一个重要的概念。

重要的两个主要原因为:

1.可预测性:如果你的时间序列是白噪声,那么根据定义它是随机的。你无法对它合理的建模并进行预测。

2.模型诊断:时间序列上一系列误差的预测模型最好是白噪声。

模型诊断是时间序列预测的重要领域。

时间序列数据在潜在的因素产生的信号上被预测,它包含一些白噪声成分。

例如:

y(t)= signal(t)+ noise(t)

通过时间序列预测模型进行预测,可以对其进行收集和分析。在理想情况下,预测误差应该是白噪声。

当预测误差为白噪声时,意味着时间序列中的所有信号已全部被模型利用进行预测。剩下的就是无法建模的随机波动。

模型预测的信号不是白噪声则表明可以进一步对预测模型改进。

你的时间序列白噪音吗?

你的时间序列如果符合下面条件则不是白噪声:

你的序列均值为零吗?

方差随时间变化吗?

值与延迟值相关吗?

你可以用一些工具来检查你的时间序列是否为白噪音:

创建一个折线图。检查总体特征,如变化的平均值,方差或延迟变量之间的明显关系。

计算汇总统计。对照序列中有意义的连续块的均值和方差,检查整个序列的均值和方差(如年、月、日)。

创建一个自相关的图。检查延迟变量之间的总体相关性。

白噪声时间序列的例子

在本节中,我们将使用Python创建一个高斯白噪声序列并做一些检查。它有助于在实践中创建和评估白噪声时间序列。它将提供参考框架和示例图并且使用和比较自己的时间序列项目的统计测试,以检查它们是否为白噪声

首先,我们可以使用随机模块的gauss()函数创建一个1,000个随机高斯变量的列表。

我们将从高斯分布提取变量:平均值(mu)0.0和标准偏差(sigma)1.0。

一旦创建,为方便起见,我们可以在Pandas序列中打包这个列表。

from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plot

# seed random number generatorseed(1)# create white noise series

series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)

接下来,我们可以计算和打印一些汇总统计数据,包含序列的平均值和标准偏差。

# summary statsprint(series.describe())

鉴于我们在绘制随机数时定义了平均值和标准偏差,所以应该不会有意外。

count   1000.000000mean      -0.013222std        1.003685min        -2.96121425%        -0.68419250%        -0.01093475%         0.703915max         2.737260

我们可以看到平均值接近0.0,标准偏差接近1.0。考虑到样本较小预测会有些误差。

如果我们有更多的数据,将序列分成两半计算和比较每一半的汇总统计可能会更有趣。我们认为每个子系列的平均值和标准差都会相似。

现在我们可以创建一些序列的线条图。

# line plot

series.plot()pyplot.show()

我们可以看到,这个序列似乎是随机的。

我们还可以创建直方图,并确认分布是高斯分布。

# histogram plot

series.hist()pyplot.show()

事实上,直方图显示了典型的钟形曲线。

最后,我们可以创建一个自相关图并检查延迟变量的所有自相关。

# autocorrelationautocorrelation_plot(series)pyplot.show()

自相关图没有显示任何显著的自相关特征。在峰值时可信度达在95%和99%,但这只是统计的偶然情况。

为了完整性,下面提供了完整的代码清单。

from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plotfrom matplotlibimport pyplot

# seed random number generatorseed(1)# create white noise series

series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)# summary statsprint(series.describe())# line plot

series.plot()pyplot.show()# histogram plot

series.hist()pyplot.show()# autocorrelationautocorrelation_plot(series)pyplot.show()

原文:网页链接

cv2.imshow("left", img_left)

filename3=str(number)+'n3'+'.jpg' #打印第number张图片+增值方式+保存类型

cv2.imwrite(savedpath + filename3, img_left)

"""

# 数据增强实现

"""

import cv2

import numpy as np

import os

# 图像平移

def img_translation(image):

# 图像平移 下、上、右、左平移

M = np.float32([[1, 0, 0], [0, 1, 100]])

img_down = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, 0], [0, 1, -100]])

img_up = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, 100], [0, 1, 0]])

img_right = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, -100], [0, 1, 0]])

img_left = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

# 保存图片,需要保存上述的哪一图片,就在cv2.imwrite()中,将哪一图片名放入。

# filename='xxx' +'.jpeg'

# cv2.imwrite(savedpath + filename, img_left)

# 显示图形

cv2.imshow("down", img_down)

filename0=str(number)+'n0'+'.jpg'

cv2.imwrite(savedpath + filename0, img_down)

cv2.imshow("up", img_up)

filename1=str(number)+'n1'+'.jpg'

cv2.imwrite(savedpath + filename1, img_up)

cv2.imshow("right", img_right)

filename2=str(number)+'n2'+'.jpg'

cv2.imwrite(savedpath + filename2, img_right)

cv2.imshow("left", img_left)

filename3=str(number)+'n3'+'.jpg'

cv2.imwrite(savedpath + filename3, img_left)

# 图像缩放

def img_scale(image):

result = cv2.resize(image, (224, 224))

cv2.imshow("scale", result)

filename=str(number)+'n5'+'.jpg'

cv2.imwrite(savedpath + filename, result)

# 图像翻转

def img_flip(image):

# 0以X轴为对称轴翻转,>0以Y轴为对称轴翻转, <0X轴Y轴翻转

horizontally = cv2.flip(image, 0) # 水平镜像

vertically = cv2.flip(image, 1) # 垂直镜像

hv = cv2.flip(image, -1) # 水平垂直镜像

# 显示图形

cv2.imshow("Horizontally", horizontally)

filename1=str(number)+'n6'+'.jpg'

cv2.imwrite(savedpath + filename1, horizontally)

cv2.imshow("Vertically", vertically)

filename2=str(number)+'n7'+'.jpg'

cv2.imwrite(savedpath + filename2, vertically)

cv2.imshow("Horizontally &Vertically", hv)

filename3=str(number)+'n8'+'.jpg'

cv2.imwrite(savedpath + filename3, hv)

# 图像旋转

def img_rotation(image):

# 原图的高、宽 以及通道数

rows, cols, channel = image.shape

# 绕图像的中心旋转

# 参数:旋转中心 旋转度数 scale

M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 30, 1)

# 参数:原始图像 旋转参数 元素图像宽高

rotated = cv2.warpAffine(image, M, (cols, rows))

# 显示图像

cv2.imshow("rotated", rotated)

filename1=str(number)+'n9'+'.jpg'

cv2.imwrite(savedpath + filename1, rotated)

#选装60度

W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)

# 参数:原始图像 旋转参数 元素图像宽高

rotated1 = cv2.warpAffine(image, W, (cols, rows))

cv2.imshow("rotated", rotated)

filename2=str(number)+'n12'+'.jpg'

cv2.imwrite(savedpath + filename2, rotated1)

#选装145度

W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)

# 参数:原始图像 旋转参数 元素图像宽高

rotated2 = cv2.warpAffine(image, W, (cols, rows))

cv2.imshow("rotated", rotated)

filename3=str(number)+'n13'+'.jpg'

cv2.imwrite(savedpath + filename3, rotated2)

# 图像加噪

def img_noise(image, mean=0, var=0.001):

'''

添加高斯噪声

mean : 均值

var : 方差

'''

image = np.array(image / 255, dtype=float)

noise = np.random.normal(mean, var ** 0.5, image.shape)

out = image + noise

if out.min() <0:

low_clip = -1.

else:

low_clip = 0.

out = np.clip(out, low_clip, 1.0)

out = np.uint8(out * 255)

cv2.imshow("noise", out)

filename3=str(number)+'n10'+'.jpg'

cv2.imwrite(savedpath + filename3, out)

# 图像亮度调节

def img_brightness(image):

contrast = 1 # 对比度

brightness = 100 # 亮度

pic_turn = cv2.addWeighted(image, contrast, image, 0, brightness)

# cv2.addWeighted(对象,对比度,对象,对比度)

'''cv2.addWeighted()实现的是图像透明度的改变与图像的叠加'''

cv2.imshow('bright', pic_turn) # 显示图片

filename3=str(number)+'n11'+'.jpg'

cv2.imwrite(savedpath + filename3, pic_turn)

if __name__ == '__main__':

i = 0

path = '../Data/'

print(path)

savedpath = './result_new/'

filelist = os.listdir(path)

total_num = len(filelist)

for item in filelist:

number = i + 1

i = number

print("######")

print("打印到第",i,"张图片")

src = cv2.imread(path + item)

img_translation(src)

img_scale(src)

img_flip(src)

img_rotation(src)

img_noise(src)

img_brightness(src)

cv2.waitKey(0)

cv2.destroyAllWindows()

代码较为繁琐,有空之后进行优化

输出结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11498173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存