common.py 1.6 KB
"""
Common utils.

@author: chunk
chunkplus@gmail.com
2014 Dec
"""
__author__ = 'hadoop'

import os, sys
import time
import numpy as np


class Timer():
    def __init__(self):
        self.__newtime = time.time()
        self.__oldtime = self.__newtime

    def mark(self):
        self.__oldtime = self.__newtime
        self.__newtime = time.time()
        return self.__newtime - self.__oldtime

    def report(self):
        print "%-24s%fs" % ("time elapsed:", self.mark())


def ttimer():
    newtime = time.time()
    while True:
        oldtime = newtime
        newtime = time.time()
        yield newtime - oldtime


def ctimer():
    newtime = time.clock()
    while True:
        oldtime = newtime
        newtime = time.clock()
        yield newtime - oldtime


def ski2cv(img):
    if img.ndim >= 3 and img.shape[2] >= 3:
        img[:, :, [0, 2]] = img[:, :, [2, 0]]
        return img


def bytes2bits(arry_bytes):
    """
    :param arry_bytes: 1-D np.unit8 array
    :return: 1-D 0/1 array
    """
    hid_data_bits = [map(int, '{0:08b}'.format(byte)) for byte in arry_bytes]
    return np.array(hid_data_bits).ravel()


def bits2bytes(arry_bits):
    """
    :param arry_bits: 1-D 0/1 array
    :return: 1-D np.unit8 array
    """
    str_bits = ''.join(map(str, arry_bits))
    arry_bytes = [int(str_bits[i:i + 8], 2) for i in range(0, len(str_bits), 8)]
    return np.array(arry_bytes,dtype=np.uint8).ravel()



if __name__ == '__main__':
    timer = Timer()

    timer.mark()
    timer.report()

    timer.mark()
    time.sleep(1)
    # for i in range(1000000):
    # print i
    timer.report()