/* * Copyright 2013 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba.com ("Confidential * Information"). You shall not disclose such Confidential Information and shall * use it only in accordance with the terms of the license agreement you entered * into with Alibaba.com. */ package com.alibaba.simpleimage.analyze.sift.io; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import com.alibaba.simpleimage.analyze.sift.scale.KDFeaturePoint; /** * @author axman 2013-5-15 11:04:59 */ public class KDFeaturePointInfoReader { private final static Logger logger = Logger.getLogger(KDFeaturePointInfoReader.class); public static KDFeaturePointListInfo readComplete(String filePath) { ObjectInputStream fis = null; try { File f = new File(filePath); fis = new ObjectInputStream(new FileInputStream(f)); int count = fis.readInt(); if (count == 0) return null; List<KDFeaturePoint> al = new ArrayList<KDFeaturePoint>(); for (int i = 0; i < count; i++) { KDFeaturePoint kp = (KDFeaturePoint) fis.readObject(); al.add(kp); } int w = fis.readInt(); int h = fis.readInt(); KDFeaturePointListInfo kfl = new KDFeaturePointListInfo(); kfl.setImageFile(f.getName()); kfl.setList(al); kfl.setWidth(w); kfl.setHeight(h); return kfl; } catch (Exception e) { e.printStackTrace(); logger.equals(e.getMessage()); return null; } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { logger.equals(e.getMessage()); } } } } public static KDFeaturePointListInfo readComplete(ObjectInputStream fis, String name) { try { int count = fis.readInt(); if (count == 0) return null; List<KDFeaturePoint> al = new ArrayList<KDFeaturePoint>(); for (int i = 0; i < count; i++) { KDFeaturePoint kp = (KDFeaturePoint) fis.readObject(); al.add(kp); } int w = fis.readInt(); int h = fis.readInt(); KDFeaturePointListInfo kfl = new KDFeaturePointListInfo(); kfl.setImageFile(name); kfl.setList(al); kfl.setWidth(w); kfl.setHeight(h); return kfl; } catch (Exception e) { logger.equals(e.getMessage()); return null; } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { logger.equals(e.getMessage()); } } } } }