def hog_histogram(img_list, out_file, debug):

    f = open(img_list)
    filenames = f.read().splitlines()
    f.close()

    image_vector = []
    ctr = 0

    for entry in filenames:

        dsift.process_image_dsift(entry, 'tmp.sift', 20, 10, resize=(200, 200))
        l, d = sift.read_features_from_file('tmp.sift')

        if debug:
            im = array(Image.open(entry))
            sift.plot_features(im, l, True)
            show()

        image_vector.append(d.flatten().tolist())
        os.remove('tmp.sift')
        os.remove('tmp.frame')

        if not PGM:
            os.remove('tmp.pgm')

        if out_file != None:
            f = open(out_file, 'a')

            if ctr == 0:
                header = ''
                for i in range(len(image_vector[ctr])):
                    if i == 0:
                        header += str(i)
                    else:
                        header += ',' + str(i)
                f.write(header)
                f.write('\n')

            vector = ''

            for i in range(len(image_vector[ctr])):
                if i == 0:
                    vector += str(image_vector[ctr][i])
                else:
                    vector += ',' + str(image_vector[ctr][i])

            f.write(vector)
            f.write('\n')

            f.close()

        ctr += 1

    return image_vector
Example #2
0
# -*- coding: utf-8 -*-
"""
Created on Wed May 14 15:31:48 2014

@author: admin
"""
import dsift,sift
import numpy as np
from PIL import Image
from pylab import *


dsift.process_image_dsift('empire.jpg','empire.sift',90,40,True)
l,d=sift.read_features_from_file('empire.sift')
im=np.array(Image.open('empire.jpg'))
sift.plot_features(im,l,True)
show()


####################################################################
def hog_histogram(img_list, class_label, out_file, norm, debug):

    f = open(img_list)
    filenames = f.read().splitlines()
    f.close()

    image_vector = []
    ctr = 0

    count = 0
    end_count = len(filenames)

    for entry in filenames:

       #want

       dsift.process_image_dsift(entry, 'tmp.sift', 20, 10, resize=(200,200))
       l,d = sift.read_features_from_file('tmp.sift')

       # if debug:
       #    cv2.destroyAllWindows()
       #
       #    #used to draw on original image instead of resized image
       #    im = array(Image.open(entry))
       #    tmp_im = cv2.resize(im, (200,200))
       #    tmp_im = cv2.cvtColor(tmp_im, cv2.COLOR_BGR2GRAY)
       #    sift.plot_features(tmp_im, l, True)
       #
       #    show()

       image_vector.append(d.flatten().tolist())
       os.remove('tmp.sift')
       os.remove('tmp.frame')

       if not PGM:
          os.remove('tmp.pgm')

       if out_file != None:
          f = open(out_file, 'a')

          if class_label == 1:
             vector = '+1'
          else:
             vector = '-1'

          vec_length = len(image_vector[ctr])

          for i, dim in zip(xrange(vec_length), xrange(1, vec_length+1)):
             vector += ' ' + str(dim) + ':' + str(image_vector[ctr][i])

          f.write(vector)
          f.write('\n')

          f.close()

       ctr += 1

       count += 1
       #sys.stdout.write('\r%i/%i' % (count, end_count))
       #sys.stdout.flush()

    return image_vector
Example #4
0
  print_error()

if not dirImage or not os.path.isdir(dirImage):
  print "No/invalid image directory specified"
  print_error()

if not dirFeats or not os.path.isdir(dirFeats):
  print "No/invalid feature directory specified"
  print_error()

imgSize=int(imgSize)

if typeFeats == 'sift':
  imlist = imtools.get_imlist(dirImage)
  imnbr = len(imlist)
  for i in range(imnbr):
    im1 = array(Image.open(imlist[i]).convert('L'))
    siftName = basename(imlist[i])
    sift.process_image(imlist[i], dirFeats+siftName+".sift",params="--edge-thresh 10 --peak-thresh 5", resize=(imgSize,imgSize))
    #featlist.append("features/"+siftName+".sift")

if typeFeats == 'dsift':
  imlist = imtools.get_imlist(dirImage)
  imnbr = len(imlist)
  for i in range(imnbr):
    im1 = array(Image.open(imlist[i]).convert('L'))
    siftName = basename(imlist[i])
    dsift.process_image_dsift(imlist[i], dirFeats+siftName+".dsift",10,5,resize=(imgSize,imgSize))
    #featlist.append("features/"+siftName+".dsift")

    cat_paths.sort()
    cats = [basename(cat_path) for cat_path in cat_paths]
    return cats


def get_imgfiles(path):
    all_files = []
    all_files.extend([
        join(path, basename(fname)) for fname in glob(path + "/*")
        if splitext(fname)[-1].lower() in EXTENSIONS
    ])
    return all_files


dataset_path = '../flower_rec1/square_images128_dsift/test'
categories = get_categories(dataset_path)

for category in categories:
    category_path = join(dataset_path, category)
    image_file_list = get_imgfiles(category_path)

    num_images = len(image_file_list)
    feature_file_list = [
        image_file_list[i][:-3] + "dsift_{0}_{1}".format(size, step)
        for i in range(num_images)
    ]

    for i in range(num_images):
        dsift.process_image_dsift(image_file_list[i], feature_file_list[i],
                                  size, step)
Example #6
0
#if img_dir != '':
#  if os.path.isdir(img_dir):
#	imlist = imtools.get_imlist(img_dir)
#elif ifile != '':
#  if os.path.isfile(ifile):
#	imlist = list(ifile)

##########################################

imlist = imtools.get_imlist('corpus/train/')
imnbr = len(imlist)
for i in range(imnbr):
  im1 = array(Image.open(imlist[i]).convert('L'))
  siftName = basename(imlist[i])
  dsift.process_image_dsift(imlist[i], "features/train/"+siftName+".dsift",10,5,resize=(50,50))
  #featlist.append("features/"+siftName+".dsift")

imlist = imtools.get_imlist('corpus/test/')
imnbr = len(imlist)
for i in range(imnbr):
  im1 = array(Image.open(imlist[i]).convert('L'))
  siftName = basename(imlist[i])
  dsift.process_image_dsift(imlist[i], "features/test/"+siftName+".dsift",10,5,resize=(50,50))

def read_feature_labels(path):
	featlist = [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.dsift')]

	features = []
	for featfile in featlist:
	  l,d = sift.read_features_from_file(featfile)	
Example #7
0
def md(p):
    try:
        os.makedirs(p)
    except:
        pass


md(os.path.join(d, 'train'))
md(os.path.join(d, 'test'))

for p in train:
    os.symlink(p, os.path.join(d, 'train', os.path.basename(p)))
for p in test:
    os.symlink(p, os.path.join(d, 'test', os.path.basename(p)))

# Compute dsift descriptors.
imlist = glob.glob(d + '/*/*.ppm')
dsiftlist = [os.path.splitext(im)[0] + '.dsift' for im in imlist]
# About 10s:
#for im, dim in zip(imlist, dsiftlist):
#  dsift.process_image_dsift(im, dim, 10, 5, resize=(50, 50))
# About 7s:
from multiprocessing.dummy import Pool as ThreadPool
pool = ThreadPool(8)
pool.map(
    lambda x: dsift.process_image_dsift(x[0], x[1], 10, 5, resize=(50, 50)),
    zip(imlist, dsiftlist))
pool.close()
pool.join()
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
d = 'test'
imlist = [os.path.join(d,f) for f in os.listdir(d) if f.endswith('.ppm')]
d = 'train'
imlist += [os.path.join(d,f) for f in os.listdir(d) if f.endswith('.ppm')]

print imlist

import dsift

# 画像を固定サイズ(50×50)で処理する
for filename in imlist:
  featfile = filename[:-3]+'dsift'
  dsift.process_image_dsift(filename,featfile,10,5,resize=(50,50))
Example #9
0
if not dirFeats or not os.path.isdir(dirFeats):
    print "No/invalid feature directory specified"
    print_error()

imgSize = int(imgSize)

if typeFeats == 'sift':
    imlist = imtools.get_imlist(dirImage)
    imnbr = len(imlist)
    for i in range(imnbr):
        im1 = array(Image.open(imlist[i]).convert('L'))
        siftName = basename(imlist[i])
        sift.process_image(imlist[i],
                           dirFeats + siftName + ".sift",
                           params="--edge-thresh 10 --peak-thresh 5",
                           resize=(imgSize, imgSize))
        #featlist.append("features/"+siftName+".sift")

if typeFeats == 'dsift':
    imlist = imtools.get_imlist(dirImage)
    imnbr = len(imlist)
    for i in range(imnbr):
        im1 = array(Image.open(imlist[i]).convert('L'))
        siftName = basename(imlist[i])
        dsift.process_image_dsift(imlist[i],
                                  dirFeats + siftName + ".dsift",
                                  10,
                                  5,
                                  resize=(imgSize, imgSize))
        #featlist.append("features/"+siftName+".dsift")
def hog_histogram(img_list, class_label, out_file, norm, debug):

    f = open(img_list)
    filenames = f.read().splitlines()
    f.close()

    image_vector = []
    ctr = 0

    count = 0
    end_count = len(filenames)

    for entry in filenames:

        #want

        dsift.process_image_dsift(entry, 'tmp.sift', 20, 10, resize=(200, 200))
        l, d = sift.read_features_from_file('tmp.sift')

        # if debug:
        #    cv2.destroyAllWindows()
        #
        #    #used to draw on original image instead of resized image
        #    im = array(Image.open(entry))
        #    tmp_im = cv2.resize(im, (200,200))
        #    tmp_im = cv2.cvtColor(tmp_im, cv2.COLOR_BGR2GRAY)
        #    sift.plot_features(tmp_im, l, True)
        #
        #    show()

        image_vector.append(d.flatten().tolist())
        os.remove('tmp.sift')
        os.remove('tmp.frame')

        if not PGM:
            os.remove('tmp.pgm')

        if out_file != None:
            f = open(out_file, 'a')

            if class_label == 1:
                vector = '+1'
            else:
                vector = '-1'

            vec_length = len(image_vector[ctr])

            for i, dim in zip(xrange(vec_length), xrange(1, vec_length + 1)):
                vector += ' ' + str(dim) + ':' + str(image_vector[ctr][i])

            f.write(vector)
            f.write('\n')

            f.close()

        ctr += 1

        count += 1
        #sys.stdout.write('\r%i/%i' % (count, end_count))
        #sys.stdout.flush()

    return image_vector
Example #11
0
from PIL import Image
from numpy import *
from pylab import *
import os
from scipy import *
import sift,dsift

dsift.process_image_dsift('video/Fhist.jpg','video/FDsift.sift',30,15,True,resize=(200,200))
l,d = sift.read_features_from_file('video/FDsift.sift')

im = Image.open('video/Fhist.jpg')
im = im.resize((200,200))
im = array(im)
gray()
sift.plot_features(im,l,False)
show()
Example #12
0
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 13 21:37:23 2016

@author: user
"""
from PIL import Image
from pylab import *
from numpy import *

import dsift, sift

dsift.process_image_dsift('../pcv_data/data/empire.jpg', 'empire.sift', 90, 40,
                          True)
l, d = sift.read_features_from_file('empire.sift')

im = array(Image.open('../pcv_data/data/empire.jpg'))
sift.plot_features(im, l, True)
show()
Example #13
0
File: 0616.py Project: ta-oyama/PCV
    class_2 = pickle.load(f)
    labels = pickle.load(f)

# 最初の点についてテストしてみる
print model.classify(class_1[0])

# 描画用関数の定義
def classify(x,y,model=model):
    return np.array([model.classify([xx,yy]) for (xx,yy) in zip(x,y)])

# 分類の境界を描画する
imtools.plot_2D_boundary([-6,6,-6,6],[class_1,class_2],classify,[1,-1])


# 8.1.2 画像特徴量としての密なSIFT
dsift.process_image_dsift('empire.jpg','empire.sift',90,40,True)
l,d = sift.read_features_from_file('empire.sift')

im = np.array(Image.open('empire.jpg'))
sift.plot_features(im,l,True)


# 8.1.3 画像の分類-手話認識
def get_imlist_ppm(path):
    return [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.ppm')]
imlist = get_imlist_ppm('train')
# imlist = get_imlist_ppm('test')

# 画像を固定サイズ(50×50)で処理する
for filename in imlist:
    featfile = filename[:-3] + 'dsift'
Example #14
0
def dsift_features_generator(imlist):
    for img in imlist:
        featfile = img[:-3] + 'dsift'
        dsift.process_image_dsift(img, featfile, 10, 5, resize=(50, 50))
test = []
for l in ls:
  imgs = glob.glob(os.path.join(s, l, 'uniform', '*'))
  train += imgs[::2]
  test += imgs[1::2]

shutil.rmtree(d)

def md(p):
  try: os.makedirs(p)
  except: pass
md(os.path.join(d, 'train'))
md(os.path.join(d, 'test'))

for p in train: os.symlink(p, os.path.join(d, 'train', os.path.basename(p)))
for p in test: os.symlink(p, os.path.join(d, 'test', os.path.basename(p)))

# Compute dsift descriptors.
imlist = glob.glob(d + '/*/*.ppm')
dsiftlist = [os.path.splitext(im)[0] + '.dsift' for im in imlist]
# About 10s:
#for im, dim in zip(imlist, dsiftlist):
#  dsift.process_image_dsift(im, dim, 10, 5, resize=(50, 50))
# About 7s:
from multiprocessing.dummy import Pool as ThreadPool
pool = ThreadPool(8)
pool.map(lambda x: dsift.process_image_dsift(x[0], x[1], 10, 5, resize=(50,50)),
         zip(imlist, dsiftlist))
pool.close()
pool.join()
    features = array(features)

    # create labels
    labels = [int(featfile.split('\\')[-1][0:3])/50 for featfile in featlist]
    return features,array(labels)



imlist = []
path = 'C:\\Users\\RubyLyu\\PycharmProjects\\PictureDB\\data'
imlist=[os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]
print imlist

for filename in imlist:
   featfile = filename[:-3]+'dsift'
   dsift.process_image_dsift(filename,featfile,10,5,resize=(150,200))

imlist = []
path = 'C:\\Users\\RubyLyu\\PycharmProjects\\PictureDB\\src\\data'
imlist=[os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]

for filename in imlist:
   featfile = filename[:-3]+'dsift'
   dsift.process_image_dsift(filename,featfile,10,5,resize=(150,200))

features,labels = read_features_labels('C:\\Users\\RubyLyu\\PycharmProjects\\PictureDB\\data')

#print features
test_features,test_labels = read_features_labels('C:\\Users\\RubyLyu\\PycharmProjects\\PictureDB\\src\\data')

features = map(list,features)
Example #17
0
def dsift_features_generator(imlist):
    for img in imlist:
        featfile = img[:-3]+'dsift'
        dsift.process_image_dsift(img, featfile, 10, 5, resize=(50, 50))
Example #18
0
from PIL import Image
from pylab import *

import dsift, sift

f = '/Users/thakis/Downloads/data/empire.jpg'
dsift.process_image_dsift(f, f + '.sift', 90, 40, True)
loc, desc = sift.read_features_from_file(f + '.sift')

im = array(Image.open(f))
sift.plot_features(im, loc, True)
show()
Example #19
0
if not load_model or not os.path.isfile(load_model):
    print "No/invalid load model specified"
    print_error()
    

# 3. Extract Features
imlist = [os.path.join(dirname, f) for f in os.listdir(dirname) if f.endswith('.jpg')]		# create a list of images

for filename in imlist:
    featfile = filename[:-3] + typeFeats
    featfile = featfile.replace(" ", "")

    try:
      if not os.path.isfile(featfile):
        dsift.process_image_dsift(filename, featfile, 10, 5, resize=(100, 100))		# process images at fixed size (100, 100)

    except Exception:
      pass
    

# 4. Run Classifier against
svm = pickle.load(open(load_model, "rb")) 	# load to model file
svm_test_features, filelist = read_feature_labels(dirname)
svm_test_result = svm.predict(svm_test_features)

result_dir = os.path.join('C:\Users', os.getenv('USERNAME'), 'Desktop\Result-Video')

if not os.path.isdir(result_dir):
    os.mkdir(result_dir)
EXTENSIONS = [".jpg", ".bmp", ".png", ".pgm", ".tif", ".tiff"]

size = 20
step = 10

def get_categories(datasetpath):
    cat_paths = [files for files in glob(datasetpath + "/*") if isdir(files)]
    cat_paths.sort()
    cats = [basename(cat_path) for cat_path in cat_paths]
    return cats


def get_imgfiles(path):
    all_files = []
    all_files.extend([join(path, basename(fname)) for fname in glob(path + "/*") if splitext(fname)[-1].lower() in EXTENSIONS])
    return all_files


dataset_path = '../flower_rec1/square_images128_dsift/test'
categories = get_categories(dataset_path)

for category in categories:
    category_path = join(dataset_path, category)
    image_file_list = get_imgfiles(category_path)

    num_images = len(image_file_list)
    feature_file_list = [image_file_list[i][:-3]+"dsift_{0}_{1}".format(size,step) for i in range(num_images)]

    for i in range(num_images):
        dsift.process_image_dsift(image_file_list[i], feature_file_list[i], size, step)