淮南建网站公司,枣庄科技馆里度周末,网页游戏开服表37,做外贸平台还是网站前言
仅记录学习过程#xff0c;有问题欢迎讨论
图像噪声#xff08;需要主动干扰的场景#xff09;#xff1a; 添加高斯噪声#xff1a;概率密度函数服从高斯分布的一类噪声 通过设置sigma和mean生成符合高斯分布的随机数#xff0c;然后计算输出像素#xff0c;放缩…前言
仅记录学习过程有问题欢迎讨论
图像噪声需要主动干扰的场景 添加高斯噪声概率密度函数服从高斯分布的一类噪声 通过设置sigma和mean生成符合高斯分布的随机数然后计算输出像素放缩到0-255循环所有像素输出图像。 添加椒盐噪声随机出现的白点或者黑点 设置信噪比SNR,总数SR加噪的数量为SNR*SR;随机指定像素位置指定像素点为0或者255输出图像。
图像滤波消除噪声 目的 消除图像中混入的噪声为图像识别抽取出图像特征。 均值滤波取像素平均值替换中心像素值计算速度快算法简单 降低噪声的同时使图像产生模糊特别是景物的边缘和细节部分 中值滤波取像素中值替换中心像素值计算速度慢算法复杂 抑制效果很好画面的清析度基本保持对高斯噪声的抑制效果不是很好 最大最小值滤波:排序替换中心为最大or最小值 引导滤波当需要求该函数上某一点的值时只需计算所有包含该点的线性函数的值并做平均即可。这种模型在表示非解析函数上非常有用
图像增强 点处理技术。只对单个像素进行处理。
线性变换图像增强线性变换主要对图像的对比度和亮度进行调整分段线性变换对处于某个感兴趣的区域的x将其对比度系数a增大或减小从而增大或减小这个区域的对比度对数变换对数变换将图像的低灰度值部分扩展将其高灰度值部分压缩以达到强调图像低灰度部分的目的幂律变换主要用于图像的校正对漂白的图片或者是过黑的图片进行修正
领域处理技术。对像素点及其周围的点进行处理即使用卷积核
直方图均衡化各种滤波
特征选择3选2 选择尽可能少的子特征模型的效果不会显著下降并且结果的类别分布尽可能的接近真实的类别分布 目的降维 提升效率 降低学习难度
特征提取3变为2 提取特征可以组合新的特征和特征选择一致都属于降维 基于图像传统特征 主成分分析PCA(投影降维) 目标降维后同一维度的方差最大差异大可以体现区别不同维度之间的相关性为0 对原始数据零均值化中心化平移使得所有数据的中心为00求协方差矩阵同一样本按照不同维度求协方差矩阵求均值体现特征之间相关性对协方差矩阵求特征向量和特征值这些特征向量组成了新的特征空间。按照特征值大小排序选择前n降的维度个特征向量组成新的特征空间基底将原始数据投影到新的特征空间得到降维后的数据 基于深度学习特征CNN
高斯/椒盐噪声和PCA的实现 week4 work
1.实现高斯噪声和椒盐噪声
2.实现PCAimport randomimport cv2
import matplotlib.pyplot as plt
import numpy as np
import sklearn.decomposition as dp# 添加高斯噪声
def GaussianNoise(img, mean, sigma, per):img_gus img.copy()# 随机的像素点个数random_num int(img.shape[0] * img.shape[1] * per)for i in range(random_num):# 随机像素点random_x random.randint(0, img.shape[0] - 1)random_y random.randint(0, img.shape[0] - 1)img_gus[random_x, random_y] img_gus[random_x, random_y] random.gauss(mean, sigma)# 若灰度值小于0则强制为0若灰度值大于255则强制为255if img_gus[random_x, random_y] 0:img_gus[random_x, random_y] 0elif img_gus[random_x, random_y] 255:img_gus[random_x, random_y] 255return img_gus# 添加椒盐噪声
def SaltAndPepperNoise(img, per):img_sp img.copy()# 随机的像素点个数random_num int(img.shape[0] * img.shape[1] * per)for i in range(random_num):# 随机像素点random_x random.randint(0, img.shape[0] - 1)random_y random.randint(0, img.shape[0] - 1)# 随机黑白点if random.random() 0.5:img_sp[random_x, random_y] 0else:img_sp[random_x, random_y] 255return img_sp# 实现PCA 降维
def PCA(data, k):# 计算均值mean np.mean(data, axis0)# 矩阵中心化data_mean data - mean# 计算协方差矩阵cov np.cov(data_mean, rowvarFalse)# 计算特征值和特征向量eig_vals, eig_vecs np.linalg.eig(cov)# 将特征值和特征向量组合成元组列表并按特征值从大到小排序eig_pairs [(np.abs(eig_vals[i]), eig_vecs[:, i]) for i in range(len(eig_vals))]print(特征值和特征向量:\n, eig_pairs)# 按特征值从大到小排序eig_pairs.sort(keylambda x: x[0], reverseTrue)# 对特征向量降为为k个维度eig_vecs [eig_pairs[i][1] for i in range(k)]# 转化为array 3×eig_vecs np.transpose(eig_vecs)print(eig_vecs:\n, eig_vecs)# # 将特征向量组合成矩阵# 将数据投影到特征向量上data_pca np.dot(data, eig_vecs)# 返回降维后的数据return data_pca# img cv2.imread(lenna.png, 0) # 注意后面参数 为0 变为一个通道
# cv2.imshow(original, img)
# img_gus GaussianNoise(img, 2, 4, 0.8)
# cv2.imshow(gus_img, img_gus)# img_sp SaltAndPepperNoise(img, 0.2)
# cv2.imshow(sp_img, img_sp)
# cv2.waitKey(0)X np.array([[10, 15, 29],[15, 46, 13],[23, 21, 30],[11, 9, 35],[42, 45, 11],[9, 48, 5],[11, 21, 14],[8, 5, 15],[11, 12, 21],[21, 20, 25]])
K np.shape(X)[1] - 1
print(样本集(10行3列10个样例每个样例3个特征):\n, X)
pca PCA(X,K)
print(降维后的样本集:\n, pca)