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

厦门网站开发比较大的公司厦门网站建设westcy

厦门网站开发比较大的公司,厦门网站建设westcy,网站建设推广方案书,韶关网站建设价格文章目录 0. 实验环境1. 理论基础1.1 滤波器#xff08;卷积核#xff09;1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架#xff0c;相关操作… 文章目录 0. 实验环境1. 理论基础1.1 滤波器卷积核1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架相关操作如下 conda create -n DL python3.11conda activate DLconda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidiaconda install matplotlibconda install pillow numpy软件包本实验版本matplotlib3.8.0numpy1.26.3pillow10.0.1python3.11.0torch2.1.2torchaudio2.1.2torchvision0.16.2 1. 理论基础 二维卷积运算是信号处理和图像处理中常用的一种运算方式当给定两个二维离散信号或图像 f ( x , y ) f(x, y) f(x,y) 和 g ( x , y ) g(x, y) g(x,y)其中 f ( x , y ) f(x, y) f(x,y) 表示输入信号或图像 g ( x , y ) g(x, y) g(x,y) 表示卷积核。二维卷积运算可以表示为 h ( x , y ) ∑ m ∑ n f ( m , n ) ⋅ g ( x − m , y − n ) h(x, y) \sum_{m}\sum_{n} f(m, n) \cdot g(x-m, y-n) h(x,y)m∑​n∑​f(m,n)⋅g(x−m,y−n)其中 ∑ m ∑ n \sum_{m}\sum_{n} ∑m​∑n​ 表示对所有 m , n m, n m,n 的求和 h ( x , y ) h(x, y) h(x,y) 表示卷积后的输出信号或图像。   在数学上二维卷积运算可以理解为将输入信号或图像 f ( x , y ) f(x, y) f(x,y) 和卷积核 g ( x , y ) g(x, y) g(x,y) 进行对应位置的乘法然后将所有乘积值相加得到输出信号或图像 h ( x , y ) h(x, y) h(x,y)。这个过程可以用于实现一些信号处理和图像处理的操作例如模糊、边缘检测、图像增强等。 详见【深度学习】Pytorch 系列教程七PyTorch数据结构2、张量的数学运算5二维卷积及其数学原理 1.1 滤波器卷积核 在图像处理中卷积经常作为特征提取的有效方法一幅图像在经过卷积操作后得到结果称为特征映射Feature Map。图5.3给出在图像处理中几种常用的滤波器以及其对应的特征映射图中最上面的滤波器是常用的高斯滤波器可以用来对图像进行平滑去噪中间和最下面的滤波器可以用来提取边缘特征。 # 高斯滤波~平滑去噪 conv_kernel1 torch.tensor([[1/16, 1/8, 1/16],[1/8, 1/4, 1/8],[1/16, 1/8, 1/16]], dtypetorch.float).unsqueeze(0).unsqueeze(0) # 提取边缘特征 conv_kernel2 torch.tensor([[0, 1, 0],[1, -4, 1],[0, 1, 0]], dtypetorch.float).unsqueeze(0).unsqueeze(0) conv_kernel3 torch.tensor([[0, 1, 1],[-1, 0, 1],[-1, -1, 0]], dtypetorch.float).unsqueeze(0).unsqueeze(0) print(conv_kernel1.size())上述均为3x3的单通道卷积核需要拓展为四维张量PyTorch就是这么设计的~ 1.2 PyTorch:卷积操作 def conv2d(img_tensor, conv_kernel):convolved_channels []for i in range(3):channel_input img_tensor[:, i, :, :] # 取出每个通道的输入convolved F.conv2d(channel_input, conv_kernel, padding1) convolved_channels.append(convolved)# 合并各通道卷积后的结果output torch.cat(convolved_channels, dim1)# 将张量转换为NumPy数组进而转换为图像output_img output.squeeze().permute(1, 2, 0).numpy().astype(np.uint8)output_img Image.fromarray(output_img)return output_img2. 图像处理 2.1 图像读取 img Image.open(1.jpg) # img img.resize((128, 128)) # 调整图像大小img_tensor torch.tensor(np.array(img), dtypetorch.float).permute(2, 0, 1).unsqueeze(0)print(img_tensor.shape)将图像转换为PyTorch张量将通道顺序从HWC转换为CHW并在第一个维度上增加一个维度~卷积操作使用四维张量 2.2 查看通道 本部分内容纯属没事儿闲的~ img Image.open(1.jpg) img_tensor torch.tensor(np.array(img), dtypetorch.float).permute(2, 0, 1).unsqueeze(0) channel1 img_tensor[:, 0, :, :] # 提取每个通道 channel2 img_tensor[:, 1, :, :] channel3 img_tensor[:, 2, :, :] plt.figure(figsize(12, 12)) plt.subplot(1, 4, 1) plt.imshow(img) plt.axis(off) plt.subplot(1, 4, 2) channel1_img channel1.squeeze().numpy().astype(np.uint8) channel1_img Image.fromarray(channel1_img) plt.imshow(channel1_img) plt.axis(off) plt.subplot(1, 4, 3) channel2_img channel2.squeeze().numpy().astype(np.uint8) channel2_img Image.fromarray(channel2_img) plt.imshow(channel2_img) plt.axis(off) plt.subplot(1, 4, 4) channel3_img channel3.squeeze().numpy().astype(np.uint8) channel3_img Image.fromarray(channel3_img) plt.imshow(channel3_img) plt.axis(off)2.3 图像处理 def plot_img(img_tensor): output_img1 conv2d(img_tensor, conv_kernel1)output_img2 conv2d(img_tensor, conv_kernel2)output_img3 conv2d(img_tensor, conv_kernel3)plt.subplot(2, 2, 1)plt.title(原始图像, fontpropertiesfont)plt.imshow(img)plt.axis(off) plt.subplot(2, 2, 2)plt.title(平滑去噪, fontpropertiesfont)plt.imshow(output_img1)plt.axis(off) plt.subplot(2, 2, 3)plt.imshow(output_img2)plt.title(边缘特征1, fontpropertiesfont) plt.axis(off) plt.subplot(2, 2, 4)plt.imshow(output_img3)plt.title(边缘特征2, fontpropertiesfont) plt.axis(off) plt.show()font FontProperties(fnameC:\Windows\Fonts\simkai.ttf, size16) # 使用楷体 plt.figure(figsize(12, 12)) # 设置图大小12*12英寸 plot_img(img_tensor) 如图所示图像提取边缘特征效果明显但图片过于高清plt输出的12英寸原始图像、平滑去噪图像都很模糊~下面会先降低像素然后进行去模糊去噪实验原图为 3. 图像去模糊 img Image.open(2.jpg) img img.resize((480, 480)) # 调小图像~先使原图变模糊 img_tensor torch.tensor(np.array(img), dtypetorch.float).permute(2, 0, 1).unsqueeze(0) conv_kernel4 torch.tensor([[0, 0, 0],[0, 2, 0],[0, 0, 0]], dtypetorch.float).unsqueeze(0).unsqueeze(0) conv_kernel5 torch.ones(3, 3).unsqueeze(0).unsqueeze(0)/9 # print(conv_kernel4-conv_kernel5) font FontProperties(fnameC:\Windows\Fonts\simkai.ttf, size32) plt.figure(figsize(32, 32)) plt.subplot(2, 2, 1) plt.title(原始图像, fontpropertiesfont) plt.imshow(img) plt.axis(off) plt.subplot(2, 2, 2) plt.title(线性滤波-2, fontpropertiesfont) plt.imshow(conv2d(img_tensor, conv_kernel4)) plt.axis(off) plt.subplot(2, 2, 3) plt.imshow(conv2d(img_tensor, conv_kernel5)) plt.title(均值滤波器模糊, fontpropertiesfont) plt.axis(off) plt.subplot(2, 2, 4) plt.imshow(conv2d(img_tensor, conv_kernel4-conv_kernel5)) plt.title(锐化滤波器强调局部差异, fontpropertiesfont) plt.axis(off) plt.show()4. 图像去噪 4.1 添加随机噪点 img Image.open(1.jpg) img img.resize((640, 640)) # 调小图像~先使原图变模糊 img_tensor torch.tensor(np.array(img), dtypetorch.float).permute(2, 0, 1).unsqueeze(0)noise torch.randn_like(img_tensor) # 与图像相同大小的随机标准正态分布噪点 noisy_img_tensor img_tensor noise # 将噪点叠加到图像上 noisy_img noisy_img_tensor.squeeze(0).permute(1, 2, 0).to(dtypetorch.uint8) noisy_img Image.fromarray(noisy_img.numpy())4.2 图像去噪 # conv_kernel1 torch.tensor([[1/16, 1/8, 1/16], # [1/8, 1/4, 1/8], # [1/16, 1/8, 1/16]], dtypetorch.float).unsqueeze(0).unsqueeze(0) # # 生成随机3x3高斯分布 # random_gaussian torch.randn(3, 3).unsqueeze(0).unsqueeze(0) # print(random_gaussian) font FontProperties(fnameC:\Windows\Fonts\simkai.ttf, size32) # 使用楷体 plt.figure(figsize(32, 32)) plt.subplot(1, 3, 1) plt.title(原始图像, fontpropertiesfont) plt.imshow(img) plt.axis(off) plt.subplot(1, 3, 2) plt.title(噪点图像, fontpropertiesfont) plt.imshow(noisy_img) plt.axis(off) plt.subplot(1, 3, 3) plt.title(去噪图像, fontpropertiesfont) plt.imshow(conv2d(noisy_img_tensor, conv_kernel1)) plt.axis(off) plt.show()
http://www.hkea.cn/news/14387757/

相关文章:

  • 上海的网站开发公司电话郑州网络营销外包顾问
  • 网站产品策划一号店网上商城
  • 网站收录 作用天猫淘宝优惠券网站怎么做
  • 安陆网站设计湘潭做网站 m磐石网络
  • app开发流程 网站开发上海工程建设交易信息网站
  • 浅谈全球五金网电子商务网站建设网软志成免费部队网站源码下载
  • 四川煤矿标准化建设网站wordpress移动图标
  • 欢迎回来请牢记网站域名微信网站制作公司哪家好
  • 网站优化三要素湖北网站建设模板下载
  • 网站排版深圳制作手机网站
  • 虚拟主机代理商的网站打不开了怎么办杭州网站建设杭州
  • 外汇平台 网站开发西安做建站的公司
  • 网站建设基础知识及专业术语十句经典广告语
  • 合肥网站优化搜索网站淘客怎么做
  • 比较流行的网站建设技术有哪些搜索引擎营销的原理
  • 苏州无锡外贸网站建设一个网站建设的组成
  • 商务网站建设的调研流程wordpress织梦扩展
  • 徐州建设工程交易网站四川网站建设的公司排名
  • 做网站相关人员网页设计需要会什么
  • 新网站的站点验证云南网站建设公司排名
  • 看动漫是怎么做视频网站租外国服务器做的网站要备案吗
  • 查询网站mx记录长沙php的网站建设公司
  • 湖南网站营销优化开发瑞安学校网站建设
  • 营销型网站建设主要教学内容wordpress更新后台反应慢
  • wordpress添加网站图标汕头网站制作找谁
  • .net 网站自动登录不需要iis的网站开发
  • 用邮箱地址做网站域名好吗企业网站建设的特点
  • 前端做商城网站需要多久做网站用笔记本做服务器
  • php网站服务器架设wordpress轮播图修改
  • wordpress做网站手机上海外贸公司27号