import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 简单的图片检索系统,根据关键词搜索文件名匹配的图片。
 */
public class ImageRetriever {
    public static void main(String[] args) {
        // 加载图片库,图片库路径可以根据实际情况修改
        List<File> imageLibrary = loadImagesFromDirectory('imageLibrary');
        // 设置要搜索的关键词
        List<File> matchedImages = searchImagesByKeyword(imageLibrary, 'sunset');
        // 展示匹配的图片信息
        displayMatchedImages(matchedImages);
    }

    /**
     * 从指定目录加载图片文件。
     *
     * @param directoryPath 图片库目录路径
     * @return 包含所有图片文件的列表
     */
    public static List<File> loadImagesFromDirectory(String directoryPath) {
        List<File> imageLibrary = new ArrayList<>();
        File directory = new File(directoryPath);
        // 判断路径是否为目录
        if (directory.isDirectory()) {
            File[] files = directory.listFiles();
            // 遍历目录下的所有文件
            if (files != null) {
                for (File file : files) {
                    // 只添加jpg格式的图片文件
                    if (file.isFile() && file.getName().toLowerCase().endsWith('.jpg')) {
                        imageLibrary.add(file);
                    }
                }
            }
        }
        return imageLibrary;
    }

    /**
     * 根据关键词搜索匹配的图片。
     *
     * @param imageLibrary 图片库列表
     * @param keyword      要搜索的关键词
     * @return 匹配关键词的图片列表
     */
    public static List<File> searchImagesByKeyword(List<File> imageLibrary, String keyword) {
        List<File> matchedImages = new ArrayList<>();
        // 遍历图片库
        for (File image : imageLibrary) {
            // 判断文件名是否包含关键词 (忽略大小写)
            if (image.getName().toLowerCase().contains(keyword.toLowerCase())) {
                matchedImages.add(image);
            }
        }
        return matchedImages;
    }

    /**
     * 展示匹配的图片信息。
     *
     * @param matchedImages 匹配的图片列表
     */
    public static void displayMatchedImages(List<File> matchedImages) {
        System.out.println('共找到' + matchedImages.size() + '张匹配的图片:');
        for (File image : matchedImages) {
            System.out.println(image.getName());
        }
    }
}
Java实现简单的图片检索系统

原文地址: https://www.cveoy.top/t/topic/f1KS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录