1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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)
|