当前位置: 首页 > wzjs >正文

如何申请建设网站首页四川省住房城乡建设厅网站

如何申请建设网站首页,四川省住房城乡建设厅网站,网店运营推广网站,行业推广做哪个网站好一、实验目的 掌握奇异值分解(SVD)的原理与方法:理解 SVD 如何将矩阵分解为左奇异矩阵、奇异值矩阵和右奇异矩阵,及其数学意义。理解 SVD 在图像处理中的应用:重点掌握 SVD 在图像压缩和特征提取中的实际应用&#xf…

一、实验目的

  1. 掌握奇异值分解(SVD)的原理与方法:理解 SVD 如何将矩阵分解为左奇异矩阵、奇异值矩阵和右奇异矩阵,及其数学意义。
  2. 理解 SVD 在图像处理中的应用:重点掌握 SVD 在图像压缩和特征提取中的实际应用,通过调整保留的奇异值数量观察图像质量变化。
  3. Python 算法实现能力:学会使用 NumPy 等库实现 SVD 图像处理算法,提升数据处理和可视化能力。

二、实验要求

(一)图像预处理

  • 读取彩色图像并转换为 RGB 矩阵(三维数组)。
  • 分离图像的 R、G、B 三个颜色通道,分别进行处理。

(二)SVD 分解与重建

  • 对每个颜色通道的矩阵进行 SVD 分解,得到左奇异矩阵 U、奇异值向量 S 和右奇异矩阵 。
  • 保留前 k 个最大的奇异值,截断其余奇异值及对应矩阵分量。
  • 使用截断后的矩阵重建各颜色通道,并合并为完整图像。

(三)结果分析

  • 对比原始图像与重建图像,分析保留奇异值数量 k 对图像质量的影响。
  • 输出分解矩阵的形状和部分数据(如 R 通道前 5×5 矩阵),验证算法正确性。

三、实验原理

(一)奇异值分解(SVD)基础

(二)图像压缩原理

  • 奇异值的大小对应图像特征的重要性:保留前 k 个最大奇异值可近似保留图像的主要信息,舍去较小奇异值实现压缩。
  • 压缩比公式:保留比例 = k/原始奇异值数量,数值越小压缩率越高,但图像细节损失越多。

四、实验步骤

(一)环境与库准备

​
import numpy as np  
from PIL import Image  
import matplotlib.pyplot as plt  
plt.rcParams['font.sans-serif'] = ['SimHei']  # 支持中文显示  ​

(二)核心代码流程

  1. 读取图像并转换为矩阵
​
original_image = Image.open("灰度图片3.jpg").convert('RGB')  
img_array = np.array(original_image)  # 形状为 (高度, 宽度, 3)  ​
  1. 分离 RGB 通道
​
channels = []  
for i in range(3):  channel = img_array[:, :, i].astype(np.float64)  # 转为浮点型方便计算  channels.append(channel)  ​
  1. 对每个通道进行 SVD 分解与重建
​
reconstructed_channels = []  
for channel in channels:  U, S, Vt = np.linalg.svd(channel, full_matrices=False)  # 分解  k = 10  # 保留前k个奇异值  S_k = np.diag(S[:k])  U_k = U[:, :k]  Vt_k = Vt[:k, :]  reconstructed = U_k @ S_k @ Vt_k  # 矩阵相乘重建  reconstructed = np.clip(reconstructed, 0, 255)  # 像素值限制在[0, 255]  reconstructed_channels.append(reconstructed.astype(np.uint8))  ​
  1. 合并通道并可视化对比
​
merged = np.stack(reconstructed_channels, axis=2)  
reconstructed_image = Image.fromarray(merged)  plt.figure(figsize=(10, 5))  
plt.subplot(1, 2, 1), plt.imshow(original_image), plt.title("原始图像")  
plt.subplot(1, 2, 2), plt.imshow(reconstructed_image), plt.title(f"重建图像(k={k})")  
plt.show()  ​

(三)参数与数据输出

  • 打印矩阵形状(如原始图像尺寸、分解矩阵维度)。
  • 输出 R 通道前 5×5 的 U、S、\(V^T\) 矩阵数据,验证分解结果。

完整源代码:

import numpy as np
from PIL import Image
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']def svd_image_processing(image_path, k):"""使用奇异值分解(SVD)进行图像处理参数:image_path: 输入图片路径k: 保留的奇异值数量(k越大保留信息越多)"""# 读取图像并转换为RGB矩阵original_image = Image.open(image_path).convert('RGB')# 三维数组(高度,宽度,通道)img_array = np.array(original_image)print("读取图像的RGB矩阵:")print(img_array)# 分离RGB三个通道channels = []for i in range(3):# 转换为浮点数便于计算channel = img_array[:, :, i].astype(np.float64)channels.append(channel)# 对每个通道进行SVD分解和重建reconstructed_channels = []U_list, S_list, Vt_list = [], [], []for channel in channels:# 执行奇异值分解U, S, Vt = np.linalg.svd(channel, full_matrices=False)# 存储分解结果U_list.append(U)S_list.append(S)Vt_list.append(Vt)# 保留前k个奇异值# 转换为对角矩阵S_k = np.diag(S[:k])# 取前k列U_k = U[:, :k]# 取前k行Vt_k = Vt[:k, :]# 重建当前通道reconstructed = U_k @ S_k @ Vt_k# 确保像素值在合理范围reconstructed = np.clip(reconstructed, 0, 255)reconstructed_channels.append(reconstructed)# 合并通道并转换为图像merged = np.stack(reconstructed_channels, axis=2).astype(np.uint8)reconstructed_image = Image.fromarray(merged)# 打印矩阵信息print("=== 分解矩阵信息 ===")print(f"原始图像形状:{img_array.shape}")print(f"左奇异矩阵U形状(R通道):{U_list[0].shape}")print(f"奇异值矩阵S长度(R通道):{len(S_list[0])}")print(f"右奇异矩阵Vt形状(R通道):{Vt_list[0].shape}")# 显示部分矩阵数据(R通道)print("\n=== 矩阵示例(R通道前5x5) ===")print("左奇异矩阵U前5行5列:\n", U_list[0][:5, :5].round(2))print("\n奇异值前5个:\n", S_list[0][:5].round(2))print("\n右奇异矩阵Vt前5行5列:\n", Vt_list[0][:5, :5].round(2))# 显示对比图像plt.figure(figsize=(10, 10))plt.subplot(1, 2, 1)plt.imshow(original_image)plt.title(f'原始图像\n尺寸:{img_array.shape}')plt.subplot(1, 2, 2)plt.imshow(reconstructed_image)plt.title(f'重建图像(k={k})\n保留比例:{k / len(S_list[0]):.2%}')plt.tight_layout()plt.show()return reconstructed_image# 使用示例
if __name__ == "__main__":# 图片路径input_image = "灰度图片3.jpg"# 保留的奇异值数量(可自行调整)k_value = 10# 执行处理并显示结果result = svd_image_processing(input_image, k_value)
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as npdef convert_with_matplotlib(input_path, output_path):img = mpimg.imread(input_path)grayscale = np.dot(img[..., :3], [0.299, 0.587, 0.114])plt.imsave(output_path, grayscale, cmap='gray')
convert_with_matplotlib("演示图片5.jpg","灰度图片3.jpg")

五、实验结果

(一)图像对比分析

保留奇异值 k保留比例重建图像效果
(k=50)2.50%接近原始图像,细节清晰
(k=30)1.50%轻微模糊,主要轮廓保留
(k=10)0.50%明显模糊,细节丢失

结论

  • k 越大,重建图像越接近原始图像,验证了 “奇异值越大代表信息越重要” 的原理。
  • 通过调整 k 可在图像质量与压缩率之间权衡,适用于不同存储和传输场景。

(二)矩阵分解结果示例(R 通道)

=== 分解矩阵信息 ===  
原始图像形状: (1080, 1920, 3)  
左奇异矩阵U形状: (1080, 1080)  
奇异值矩阵S长度: 1080  
右奇异矩阵Vt形状: (1080, 1920)  === 矩阵示例(R通道前5×5) ===  
左奇异矩阵U前5行5列:  
[[0.01 -0.01 0.02 -0.04 0.03]  [0.02 -0.01 0.02 -0.04 0.03]  [0.02 -0.01 0.02 -0.04 0.03]  [0.02 -0.01 0.02 -0.04 0.03]  [0.03 -0.01 0.02 -0.04 0.03]]  奇异值前5个:  
[331942.60, 16229.33, 14850.96, 14428.65, 12192.33]  

(三)核心结论

  1. SVD 的有效性:通过截断奇异值可实现图像压缩,保留主要特征。
  2. 参数敏感性:k 直接影响图像质量,需根据需求平衡压缩率与清晰度。
  3. 矩阵意义:U 和 V 反映图像的空间特征方向,S 反映特征重要性排序。

六、总结

  本次实验通过 Python 实现了基于 SVD 的图像处理,直观展示了数学理论在计算机视觉中的应用。通过调整保留的奇异值数量,我们深入理解了 SVD 在特征提取和数据压缩中的核心作用,为后续学习 PCA、图像降噪等算法奠定了基础。


文章转载自:

http://rlr8xtOl.ftntr.cn
http://Lt6irlKX.ftntr.cn
http://6sWqVty0.ftntr.cn
http://uVicGxIG.ftntr.cn
http://Ri4hUC1c.ftntr.cn
http://t2WYOgjJ.ftntr.cn
http://MFOjvAsr.ftntr.cn
http://F5x4vcJu.ftntr.cn
http://CCaEapZs.ftntr.cn
http://Td6qfI4t.ftntr.cn
http://Q67BE2WZ.ftntr.cn
http://o4vS2IG3.ftntr.cn
http://tO1BlE9a.ftntr.cn
http://rMWH2mwH.ftntr.cn
http://YNWUKuwj.ftntr.cn
http://gNP0BioH.ftntr.cn
http://KBBMb0u6.ftntr.cn
http://jj1hKgG0.ftntr.cn
http://pdL7nS1q.ftntr.cn
http://kA9ltIho.ftntr.cn
http://Y227PLhQ.ftntr.cn
http://i10jPwkg.ftntr.cn
http://7O1dOtvY.ftntr.cn
http://rLnGcw6l.ftntr.cn
http://c3309BNz.ftntr.cn
http://88udBmrK.ftntr.cn
http://H1FLwrEq.ftntr.cn
http://4vtKUHA0.ftntr.cn
http://NsZB6PdR.ftntr.cn
http://g487UED9.ftntr.cn
http://www.dtcms.com/wzjs/767050.html

相关文章:

  • 校园服装网站建设演示文稿博优云软件官方网站
  • 室内设计培训机构排行windows优化大师官方下载
  • 珠海策划网站建设平台wordpress英文美食主题
  • 长沙网站建设宜兴做网站哪个好
  • 广州网站优化推广公司深圳好看的网站建设哪家公司好
  • 艺术品网站模板突泉建设局三务公开网站
  • 南漳网站定制网站建设客户开发方法
  • 重庆营销型网站设计备案期间怎么做网站
  • 网站建设与推广实训小结简单的房源展示网站开发
  • 公司网站更换域名流程最简单网站设计的代码
  • 开江网站建设网站排版怎么做
  • 网站怎么做的有创意苏州市网站建设服务
  • 网站怎么运营推广肇庆高要建设局网站
  • 重庆网站建设 菠拿拿做一家直播卖货的网站
  • 做外贸一般用什么网站陇南市武都区住房和城乡建设网站
  • 简述网站建设优劣的评价标准网站开发流程图
  • 合肥高端网站建设cnfg如何网站数据备份
  • 聊城网站建设工作室wordpress分享qq插件下载
  • 怎么给网站的照片做超级链接竞价推广培训课程
  • 从哪里设置网站关键词无锡企业自助建站系统
  • 易讯企业建站系统网站建设报价多少
  • 南宁住房和城乡建设部网站北京建设工程信息网查询
  • 企业网站改版新闻建筑设计的主要内容
  • 英文网站建设图片沧州app商城定制开发
  • 网站建设网站需求分析报告功能茶叶网站建设
  • c 大型网站开发案例高权重网站出售
  • 安全生产标准化建设网站专门做招商的网站
  • 宁波自己建网站seo是什么意思紧要
  • 创网网站后台管理系统wordpress 浏览量排序
  • 做期货网站违法的吗陕西省建设厅执业资格注册中心网站