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

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()

通过卷积运算(二阶导数算子:拉普拉斯算子)实现计算机视觉特征提取_第1张图片文章中利用lena图像的读取,然后进行二阶导数算子(拉普拉斯算子)[-1, -1, -1]

                                                                                                          [-1, 8, -1]

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

你可能感兴趣的:(计算机视觉)