Windows での VLFeat のインストール: 別ページ »で説明
Ubuntu での VLFeat のインストール: 別ページ »で説明
#! ruby -Ks # coding: windows-31j # usage: ruby imagesift.rb filelist.rb key frame # ruby imagesift.rb [file name] [sub directory name] [sub directory name] # This program # SIFT and MSER # generate image file list # input : a YAML file that discribe pattern(s) of file names # [example of "filelist.rb"] # $a = <<-EOS # - path: /home/www/teaimage/20100524syouhin # pattern: *.JPG # - path: /home/www/teaimage/20100524syouhin_data # pattern: *.JPG # EOS # output : SIFT and MSER file require 'rubygems' require 'progressbar' require 'yaml' require 'digest/sha2' load ARGV[0] key_sub_dir = ARGV[1] frame_sub_dir = ARGV[1] b = YAML.load( $a ) for i in b # from a pattern to a file list files = Dir.glob( i["path"] + "/" + i["pattern"] ).sort progress_bar = ProgressBar.new( File.basename(i["path"]), files.length ) # create thumbnails directory if i["path"][0] = "/" then path = i["path"] else path = Dir.pwd + "/" + i["path"] end system( "mkdir " + path + "/" + key_sub_dir ) system( "mkdir " + path + "/" + frame_sub_dir ) for j in files basename = File.basename( j ) basename2 = File.basename( basename, File.extname( basename ) ) system( "convert -resize 1280x1024 " + j + " /tmp/" + basename2.gsub("(","\(").gsub(")","\)") + ".pgm" ) system( "siftpp -p /tmp/ /tmp/" + basename2.gsub("(","\(").gsub(")","\)") + ".pgm > /dev/null" ) system( "cp /tmp/" + basename2.gsub("(","\(").gsub(")","\)") + ".key" + " " + path + "/" + key_sub_dir ) system( "cd /tmp; mser /tmp/" + basename2.gsub("(","\(").gsub(")","\)") + ".pgm > /dev/null" ) system( "cp /tmp/" + basename2.gsub("(","\(").gsub(")","\)") + ".frame" + " " + path + "/" + frame_sub_dir ) progress_bar.inc end progress_bar.finish end