通过卷积运算(二阶导数算子:拉普拉斯算子)实现计算机视觉特征提取

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import convolve2d
from PIL import Image

# 读取图像并转换为灰度图
image = Image.open('lena.png').convert('L')

# 将图像转换为 numpy 数组
image_array = np.array(image)

# 定义一个 3x3 的卷积核,用于检测垂直边缘
kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

# 对图像进行卷积操作
convolved_image = convolve2d(image_array, kernel)

# 显示原图和卷积后的图像
fig, ax = plt.subplots(1, 2, figsize=(10, 5))

ax[0].imshow(image_array, cmap='gray')
ax[0].set_title('Original Image')
ax[0].axis('off')

ax[1].imshow(convolved_image, cmap='gray')
ax[1].set_title('Convolved Image')
ax[1].axis('off')

plt.show()
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import convolve2d
from PIL import Image

# 读取图像并转换为灰度图
image = Image.open('lena.png').convert('L')

# 将图像转换为 numpy 数组
image_array = np.array(image)

# 定义一个 3x3 的卷积核,用于检测垂直边缘
kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

# 对图像进行卷积操作
convolved_image = convolve2d(image_array, kernel)

# 显示原图和卷积后的图像
fig, ax = plt.subplots(1, 2, figsize=(10, 5))

ax[0].imshow(image_array, cmap='gray')
ax[0].set_title('Original Image')
ax[0].axis('off')

ax[1].imshow(convolved_image, cmap='gray')
ax[1].set_title('Convolved Image')
ax[1].axis('off')

plt.show()

文章中利用lena图像的读取,然后进行二阶导数算子(拉普拉斯算子)[-1, -1, -1]

                                                                                                          [-1, 8, -1]

                                                                                                          [-1, -1, -1] 进行卷积运算,并且用matplotlib进行图像输出处理。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值