大眼菠萝仔 2023-05-09 16:46 采纳率: 33.3%
浏览 43

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

img


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

  • 写回答

1条回答 默认 最新

  • Franpper 2023-05-10 14:40
    关注
    
    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)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日