📜  如何使用 cv2 在 python 中锐化图像 - Python (1)

📅  最后修改于: 2023-12-03 15:37:59.734000             🧑  作者: Mango

如何使用 cv2 在 Python 中锐化图像

在图像处理中,锐化是一种常用的图像增强技术。OpenCV (cv2) 是一个开源计算机视觉库,可以方便地实现图像处理任务。本文将介绍在 Python 中使用 cv2 实现图像锐化的步骤。

步骤
  1. 导入需要的库和图像文件

    import cv2
    import numpy as np
    
    img = cv2.imread('image.jpg')
    

    在这里,我们导入了 cv2 和 numpy 库,并加载一张名为 'image.jpg' 的图像文件。

  2. 创建锐化核

    # 创建锐化核
    kernel_sharpen_1 = np.array([
        [-1,-1,-1],
        [-1, 9,-1],
        [-1,-1,-1]])
    
    kernel_sharpen_2 = np.array([
        [1, 1, 1],
        [1,-7, 1],
        [1, 1, 1]])
    
    kernel_sharpen_3 = np.array([
        [-1,-1,-1,-1,-1],
        [-1, 2, 2, 2,-1],
        [-1, 2, 8, 2,-1],
        [-1, 2, 2, 2,-1],
        [-1,-1,-1,-1,-1]]) / 8.0
    
    

    在这里,我们创建了三个不同的锐化核,使用了不同的数值来达到不同的效果。

  3. 应用锐化核

    # 应用锐化核
    output_1 = cv2.filter2D(img, -1, kernel_sharpen_1)
    output_2 = cv2.filter2D(img, -1, kernel_sharpen_2)
    output_3 = cv2.filter2D(img, -1, kernel_sharpen_3)
    

    在这里,我们使用 cv2.filter2D() 函数来应用锐化核到原始图像上,产生三个不同的输出。

4.显示结果

# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Sharpen Image 1', output_1)
cv2.imshow('Sharpen Image 2', output_2)
cv2.imshow('Sharpen Image 3', output_3)

# 等待用户关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里,我们使用 cv2.imshow() 函数显示原始图像和三个锐化图像的结果,并等待用户关闭窗口。

完整代码如下:

import cv2
import numpy as np

img = cv2.imread('image.jpg')

# 创建锐化核
kernel_sharpen_1 = np.array([
    [-1,-1,-1],
    [-1, 9,-1],
    [-1,-1,-1]])

kernel_sharpen_2 = np.array([
    [1, 1, 1],
    [1,-7, 1],
    [1, 1, 1]])

kernel_sharpen_3 = np.array([
    [-1,-1,-1,-1,-1],
    [-1, 2, 2, 2,-1],
    [-1, 2, 8, 2,-1],
    [-1, 2, 2, 2,-1],
    [-1,-1,-1,-1,-1]]) / 8.0

# 应用锐化核
output_1 = cv2.filter2D(img, -1, kernel_sharpen_1)
output_2 = cv2.filter2D(img, -1, kernel_sharpen_2)
output_3 = cv2.filter2D(img, -1, kernel_sharpen_3)

# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Sharpen Image 1', output_1)
cv2.imshow('Sharpen Image 2', output_2)
cv2.imshow('Sharpen Image 3', output_3)

# 等待用户关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

在运行完上述代码后,我们就可以看到原始图像和三个锐化图像的结果了。

总结

本文介绍了在 Python 中使用 cv2 实现图像锐化的步骤。我们首先导入需要的库和图像文件,然后创建不同的锐化核,应用到原始图像上产生三个不同的输出,最后使用 cv2.imshow() 函数将输出显示出来。在实际应用中,可以根据不同的需求选择不同的锐化核,达到不同的效果。