为什么需要卷积操作
1、特征提取
使用特定的卷积核,能够提取出图片数据特定方向的信息
卷积操作即是对图像的像素点进行乘运算 并将结果矩阵的所有值求和得出一个数的结果
此处 input 即是一个 55 像素大小的图片 使用一个 33 矩阵对图片最左上角 9 个像素点进行卷积运算(乘)矩阵算法1
依次从坐标 0,0 ,3,3 --> 1,0,4,3 计算 9 次
最终得出 9 个结果 并按顺序排列即可得 33 矩阵
此处暴力推导出结果 3 3 矩阵特征之一 33 矩阵与任何图像计算后 原图像大小变为 长宽少 2 像素的新图像(特征)
新图像的所有像素点(大小 33)与原图像(大小 5*5)拥有抽象的映射关系 对于减少计算量 简单化复杂特征是非常必要的
相当于使用卷积操作压缩了图像大小 提取了某种符合卷积核的抽象信息 所以某些时候这些卷积核也叫滤波器 用于提取某种类型的图片信息
在某些时候我们不想特征缩小 即引入填充和步长的概念 填充 步长2
此处以提取边缘信息的卷积核为例 示例图
解释下这个核 提取向右的特征数据
相反的还有提取向左的特征数据
向下趋度
像上趋度
四个方向的趋度合并即可获取物体轮廓特征
强化边缘信息 1
\left\vert1,1,1\right\vert
\left\vert1,0,1\right\vert
\left\vert1,1,1\right\vert
强化边缘信息 2
\left\vert0,0,0\right\vert
\left\vert0,8,0\right\vert
\left\vert0,0,0\right\vert
其实已经可以看出 从矩阵的数字规律就可大致得出卷积核的作用
数值大的一方得到强化 数值小的一方被减弱 数值为负的的特征数值越大则抑制越重
附上一个可以在线测试卷积效果的网址
Image Kernels explained visually
代码部分
import cv2
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
# 读取图像
image = cv2.imread('C:/Users/jm/Pictures/0eRWZ7.jpg', cv2.IMREAD_GRAYSCALE)
kernel = np.array([[-1, 0, 1],
[-1, 0, 1],
[-1, 0, 1]])
# 对图像提取向右特征
right_image = cv2.filter2D(image, -1, kernel)
kernel = np.array([[1, 0, -1],
[1, 0, -1],
[1, 0, -1]])
# 对图像提取向左特征
left_image = cv2.filter2D(image, -1, kernel)
kernel = np.array([[1, 1, 1],
[0, 0, 0],
[-1, -1, -1]])
# 对图像提取向上特征
top_image = cv2.filter2D(image, -1, kernel)
kernel = np.array([[-1, -1, -1],
[0, 0, 0],
[1, 1, 1]])
# 对图像提取向下特征
bottom_image = cv2.filter2D(image, -1, kernel)
# 合并所有方向特征 获取轮廓信息
combined_image = cv2.addWeighted(cv2.addWeighted(left_image, 0.5, right_image, 0.5, 0),
0.5,
cv2.addWeighted(top_image, 0.5, bottom_image, 0.5, 0),
0.5,
0)
# 显示原始图像和卷积后的图像
plt.figure(figsize=(8, 5))
plt.subplot(3, 4, 5)
plt.title('Original Image')
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.subplot(3, 4, 6)
plt.title('left_image Image')
plt.imshow(left_image, cmap='gray')
plt.axis('off')
plt.subplot(3, 4, 8)
plt.title('Right Image')
plt.imshow(right_image, cmap='gray')
plt.axis('off')
plt.subplot(3, 4, 3)
plt.title('top_image Image')
plt.imshow(top_image, cmap='gray')
plt.axis('off')
plt.subplot(3, 4, 11)
plt.title('bottom_image Image')
plt.imshow(bottom_image, cmap='gray')
plt.axis('off')
plt.subplot(3, 4, 7)
plt.title('Combined Image')
plt.imshow(combined_image, cmap='gray')
plt.axis('off')
plt.tight_layout()
plt.show()
矩阵算法
简单数相乘 等于乘数乘以每个矩阵制
$\left\vert a,b,c\right\vert$ $\left\vert3\times a,3\times b,3\times c\right\vert$ 3 $\times$ $\left\vert d,e,f\right\vert$ = $\left\vert3\times d,3\times e,3\times f\right\vert$ $\left\vert g,h,i\right\vert$ $\left\vert3\times g,3\times h,3\times i\right\vert$
矩阵与矩阵乘法 对应位置相乘即可
\left\vert A,B,C\right\vert \left\vert a,b,c\right\vert \left\vert A\times a,B\times b,C\times c\right\vert
\left\vert D,E,F\right\vert \times \left\vert d,e,f\right\vert = \left\vert D\times d,E\times e,F\times f\right\vert
\left\vert G,H,I\right\vert \left\vert g,h,i\right\vert \left\vert G\times g,H\times h,I\times i\right\vert
加法减法等相同
矩阵与矩阵点乘 等于第 n 行乘第 n 列 依次计算
$\left\vert a,b,c\right\vert$ $\left\vert a,b,c\right\vert$ $\left\vert a,b,c\right\vert$ $A\times\left\vert d,e,f\right\vert$ $B\times\left\vert d,e,f\right\vert$ C $\times$ $\left\vert d,e,f\right\vert$ $\left\vert g,h,i\right\vert$ $\left\vert g,h,i\right\vert$ $\left\vert g,h,i\right\vert$
\left\vert A,B,C\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert
\left\vert D,E,F\right\vert \times \left\vert d,e,f\right\vert = D\times\left\vert d,e,f\right\vert E\times\left\vert d,e,f\right\vert F\times\left\vert d,e,f\right\vert
\left\vert G,H,I\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert
$\left\vert a,b,c\right\vert$ $\left\vert a,b,c\right\vert$ $\left\vert a,b,c\right\vert$ $G\times\left\vert d,e,f\right\vert$ $H\times\left\vert d,e,f\right\vert$ $I\times\left\vert d,e,f\right\vert$ $\left\vert g,h,i\right\vert$ $\left\vert g,h,i\right\vert$ $\left\vert g,h,i\right\vert$
填充 步长
↩
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于