用sobel算子对该图像进行锐化处理

img


需要手写的结果,不太明白这个sobel算子应该如何去运用,只知道reflect方式扩展。应该如何用sobel算子去和这个图像中的灰度值进行数乘运算呢?


import cv2
import numpy as np

# 定义5x5大小的图像
img = np.array([[  1,   1,   1,   1,   3],
                [  1,  1,  1,  3,   5],
                [  1,  1, 3,  5,   5],
                [  1,  3,  5,  5,   5],
                [  3,  5, 5,  5,  5]], dtype=np.uint8)

# 使用Sobel算子进行锐化
sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
sobel = cv2.magnitude(sobelx, sobely)
sobel = np.uint8(sobel)

# 在边界使用reflect方式扩展
reflect = cv2.copyMakeBorder(sobel, 1, 1, 1, 1, cv2.BORDER_REFLECT)

# 打印原始图像、锐化结果和扩展后的结果
print("原始图像:\n", img)
print("Sobel算子锐化结果:\n", sobel)
print("Reflect扩展后的结果:\n", reflect)