import cv2 from skimage import io import matplotlib.pyplot as plt import sys import os # image = io.imread('D:\\hiddz\\SAR\\test_data\\TEST\\A11\\HB14931.JPG') # # # 创建SIFT特征检测器 # sift = cv2.SIFT_create() # # # 检测关键点和提取描述符 # keypoints, descriptors = sift.detectAndCompute(image, None) # # # 显示关键点 # output_image = cv2.drawKeypoints(image, keypoints, None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) # # 显示可视化结果 # # 保存带有特征点的图像 # # plt.imshow(output_image) # plt.title('SHIFT Image') # plt.show() def process_image(image_path): image = io.imread(image_path) # 创建SIFT特征检测器 sift = cv2.SIFT_create() # 检测关键点和提取描述符 keypoints, descriptors = sift.detectAndCompute(image, None) # 显示关键点 output_image = cv2.drawKeypoints(image, keypoints, None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) # 显示可视化结果 # 保存带有特征点的图像 plt.imshow(output_image) plt.title('SHIFT Image') folder_name = os.path.basename(os.path.dirname(image_path)) # 创建保存图像的文件夹 save_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'shift', folder_name) os.makedirs(save_folder, exist_ok=True) # 保存图像 save_path = os.path.join(save_folder, 'shift_' + os.path.basename(image_path)) plt.imsave(save_path, output_image, cmap='gray') print(save_path) # plt.show() if __name__ == "__main__": if len(sys.argv) != 2: sys.exit(1) image_path = sys.argv[1] process_image(image_path)