
需要手写的结果,不太明白这个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)