人工智能作业4

人工智能作业4

概念解释:

卷积:卷积类似一种混合信息的手段,是一种混合两种信息的流程,有助于简化更复杂的表达式。
卷积核:图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核
多通道:多通道图像是指多个摄像机拍摄的同一个场景的图像或者一个摄像机在不同时刻拍摄的同一场景的图像。
特征图:是一种在一个空间中获取特征向量,然后在另一空间中将其转换为特征向量的函数。例如,给定特征向量[体积,重量,高度,宽度],它可以返回[1,体积/重量,高度宽度]或[高度宽度],甚至仅返回[体积]
特征选择:寻找最优特征子集。特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。

卷积核

正常情况:
在这里插入图片描述
图像锐利:
锐化滤波器实际上就是计算当前点和周围点的差别,然后将这个差别加到原来的位置上
在这里插入图片描述
边缘检测:
矩阵的元素和是0,所以滤波后的图像会很暗,只有边缘的地方是有亮度的
浮雕:
浮雕滤波器可以给图像一种3D阴影的效果。

编程演示


import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

import numpy as np
import torch
from torch import nn
from torch.autograd import Variable
from PIL import Image
import matplotlib.pyplot as plt



plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号 #有中文出现的情况,需要u'内容
# https://blog.csdn.net/weixin_40123108/article/details/83510592
file_path = 'C:\\Users\\a1502\\Pictures\\00.jpeg'
im = Image.open(file_path).convert('L')  # 读入一张灰度图的图片
im = np.array(im, dtype='float32')  # 将其转换为一个矩阵
print(im.shape[0], im.shape[1])
plt.imshow(im.astype('uint8'), cmap='gray')  # 可视化图片
plt.title('原图')
plt.show()

im = torch.from_numpy(im.reshape((1, 1, im.shape[0], im.shape[1])))
conv1 = nn.Conv2d(1, 1, 3, bias=False)  # 定义卷积

sobel_kernel = np.array([[-1, -1, -1],
                         [-1, 8, -1],
                         [-1, -1, -1]], dtype='float32')  # 定义轮廓检测算子
sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3))  # 适配卷积的输入输出
conv1.weight.data = torch.from_numpy(sobel_kernel)  # 给卷积的 kernel 赋值

edge1 = conv1(Variable(im))  # 作用在图片上

x = edge1.data.squeeze().numpy()
print(x.shape)  # 输出大小

plt.imshow(x, cmap='gray')
plt.show()

在这里插入图片描述

平滑均值滤波:
在这里插入图片描述
在这里插入图片描述
高斯平滑:
在这里插入图片描述
在这里插入图片描述
图像锐化:
在这里插入图片描述
在这里插入图片描述

水平梯度:
在这里插入图片描述
在这里插入图片描述
垂直梯度:
在这里插入图片描述

在这里插入图片描述

边缘检测

水平梯度:
在这里插入图片描述
在这里插入图片描述
垂直梯度:
在这里插入图片描述
在这里插入图片描述
本次收获:熟悉卷积核在图像处理的使用,以及解决OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

意思是要初始化一个libiomp5md.dll文件,但是发现这个文件已被初始化了,做法就是在本项目的环境目录下搜索libiomp5md.dll
解决方法:

//添加到包的最前面
import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值