import cv2import numpy as np# 加载灰度图像img_gray = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)# 定义Susan算子的卷积核susan_kernel = np.array([ [-1, -1, -1, -1, -1], [-1, 1, 1, 1, -1], [-1, 1, 8, 1, -1], [-1, 1, 1, 1, -1], [-1, -1, -1, -1, -1]], dtype=np.float32)# 缩放卷积核,使其权重之和为0susan_kernel = susan_kernel - np.mean(susan_kernel)# 对图像进行Susan算子处理susan_img = cv2.filter2D(img_gray, -1, susan_kernel)# 使用阈值二值化处理结果图像,得到二值图像threshold = 20susan_img_binary = cv2.threshold(susan_img, threshold, 255, cv2.THRESH_BINARY)[1]# 显示原始图像、Susan算子处理后的图像以及二值化后的图像cv2.imshow("Original Image", img_gray)cv2.imshow("Susan Filtered Image", susan_img)cv2.imshow("Susan Binary Image", susan_img_binary)cv2.waitKey(0)