我在一个图像处理项目中有一个图像数据集。我想输入一张图片并扫描整个数据集以识别给定的图像。我应该使用什么模块/库/方法(例如:机器学习)来在我的Python-OpenCV代码中识别我的图像?
回答:
要找到完全相同的图像,你不需要任何类型的机器学习。图像只是像素的数组,因此你可以检查输入图像的数组是否与数据集中某张图像的数组相等。
import globimport cv2import numpy as np# 读取源图像(你想要与数据集中的其他图像匹配的图像)source = cv2.imread('test.jpg') # 创建数据集中所有图像的列表(我假设它们是一个目录中的图像)filelist = glob.glob(r'C:\Users\...\Images\*.JPG')# 遍历图像,读取它们并检查是否有图像与你的源图像相等for file in filelist: img = cv2.imread(file) if np.array_equal(source, img): print("%s is the same image as source" %(file)) break