In [10]:
import os
os.getpid()


Out[10]:
8420

In [32]:
>>> import cv2
>>> print cv2.__version__


2.4.9

In [6]:
import numpy as np
import cv2

In [36]:
import os 
WORKSPACE = r"C:\android\android_workspace\tamtam"
ORIGINAL_VIDEO = WORKSPACE + r"\experiments\videos\samsung-s4-front.MOV"
RESULTS_DIR = WORKSPACE + r"\experiments\results" + "\\"
RESULTS_DIR += os.path.splitext(os.path.basename(ORIGINAL_VIDEO))[0] + "__"

assert os.path.exists(WORKSPACE)
assert os.path.exists(ORIGINAL_VIDEO)
# assert os.path.exists(RESULTS_DIR)

In [14]:
## READ video example

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

In [15]:
## WRITE video example video example

RESULT_VIDEO = RESULTS_DIR + "test.MOV"
print RESULT_VIDEO

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RESULT_VIDEO, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()


D:\my\tamtam\experiments\results\test.MOV
True

In [16]:
RES_FILE =RESULTS_DIR + "BackgroundSubtractorMOG.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG()
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    fgmask = fgbg.apply(frame)
    res_video.write(fgmask & fgmask)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [17]:
RES_FILE =RESULTS_DIR + "BackgroundSubtractorMOG2.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG2()
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    fgmask = fgbg.apply(frame)
    res_video.write(fgmask & fgmask)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [18]:
RES_FILE =RESULTS_DIR + "CopyOfVideo.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height))

assert res_video.isOpened()

# make bacground video


i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    res_video.write(frame)

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [40]:
RES_FILE =RESULTS_DIR + "simple_background_subtraction.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), True)

assert res_video.isOpened()

# make bacground video


i = 1

ret, frame0 = video.read()
means = []
while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    res_video.write(frame - frame0)
    means.append(np.mean(frame - frame0))
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [19]:
cv2.imwrite(RESULTS_DIR + "fram0.jpg", frame0)


Out[19]:
True

In [8]:
RES_FILE =RESULTS_DIR + "simple_background_subtraction_grayscale.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


i = 1

ret, frame0 = video.read()
frame0_gray = cv2.cvtColor(frame0, cv2.COLOR_BGR2GRAY)

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break
        
    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    new = frame_gray - frame0_gray
    if np.mean(new) > 50:
        xxx = new
    res_video.write(new)

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [4]:
RES_FILE =RESULTS_DIR + "background_subtraction_with_blur.mov"


# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer
four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), True)

assert res_video.isOpened()

# make bacground video


i = 1

ret, frame0 = video.read()
ret, frame1 = video.read()

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break
        
    new  = frame - frame0

    res_video.write(cv2.blur(new, (100, 100)))

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [21]:
# in range activation


HAND_MIN = np.array([190, 190, 190],np.uint8)
HAND_MAX = np.array([255, 255, 255],np.uint8)

new  = cv2.inRange(xxx, HAND_MIN, HAND_MAX)
cv2.imwrite(r"d:\my\res\test.jpg", new)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-21-99ae2ed19ceb> in <module>()
      3 HAND_MAX = np.array([255, 255, 255],np.uint8)
      4 
----> 5 new  = cv2.inRange(xxx, HAND_MIN, HAND_MAX)
      6 cv2.imwrite(r"d:\my\res\test.jpg", new)

NameError: name 'xxx' is not defined

In [10]:
v = cv2.findContours(xxx, cv2.cv.CV_RETR_LIST, cv2.cv.CV_CHAIN_APPROX_SIMPLE )

In [16]:
cv2.imwrite(r'd:\my\fff.jpg', xxx)


Out[16]:
True

In [22]:
means


Out[22]:
[8.2429889231220663,
 19.396220290492959,
 38.830633802816898,
 56.808766138497653,
 71.771865830399065,
 84.384112749413148,
 92.556767165492957,
 99.501969630281693,
 104.76724251760564,
 109.80660944835681,
 113.34384903169014,
 117.09288989143192,
 118.14658890845071,
 119.89952501467135,
 120.73268779342723,
 121.94386003521127,
 122.54669894366197,
 123.68059712441314,
 56.128449603873243,
 39.524673562206573,
 37.968689480633806,
 36.804177670187791,
 28.887338615023474,
 27.593023767605633,
 26.59102296068075,
 25.758003227699529,
 25.521590742370893,
 27.957245818661971,
 31.519632115610328,
 40.711605046948357,
 67.879256528755874,
 94.128730193661966,
 96.103788879107981,
 76.77838725058686,
 67.680767678990605,
 62.804683832159625,
 59.450000000000003,
 55.498963835093896,
 51.999257262323944,
 31.110873312793426,
 30.099526848591548,
 29.803889744718308,
 28.066787705399062,
 28.576683538732393,
 44.364033157276992,
 45.463631528755869,
 46.494714642018778,
 47.614748386150232,
 71.221730120305168,
 73.941360401995311,
 76.262232247652577,
 86.397397667253514,
 164.79169600938968,
 168.02102589495306,
 139.92761883802817,
 137.85948686913144,
 138.59419747652584,
 97.531525088028175,
 46.167904562793424,
 43.603695349178402,
 41.934321816314551,
 31.282676789906102,
 29.763253741197182,
 28.593216329225353,
 27.884290639671363,
 27.463486649061032,
 27.069668794014085,
 27.294476232394366,
 27.433947696596245,
 27.313666373239435,
 28.377974618544602,
 29.023956499413146,
 30.268889377934272,
 31.315993617957748,
 32.278766872065731,
 33.21575154049296,
 34.509085240610325,
 37.005811693075117,
 40.23691864730047,
 44.40772997359155,
 48.753757702464789,
 51.812540346244134,
 53.877009976525819,
 54.061291446596243,
 52.081189480633803,
 48.436793940727696,
 45.1442011443662,
 42.881765331572772,
 39.990351745892021,
 37.294885196596248,
 34.791945422535214,
 32.691400748239438,
 31.170433538732393,
 29.924224251760563,
 27.03149207746479,
 24.371024061032863,
 21.687584360328639,
 19.321101085680752,
 17.545475718896714,
 17.784670261150236,
 17.904273034037558,
 18.721414686032865,
 20.119041593309859,
 21.799844116784037,
 24.864029489436621,
 33.745510563380279,
 41.986337294600936,
 66.088534330985922,
 70.401054504107975,
 73.637001173708924,
 76.186869131455396,
 73.476265404929578,
 66.734633582746483,
 58.674171068075118,
 41.140513130868541,
 34.966160504694834,
 28.384873826291081,
 24.637842943075118,
 22.063690214201877,
 19.794562426643193,
 18.445600425469483,
 27.04746552230047,
 27.193865536971831,
 46.389431117957749,
 45.70518449237089,
 44.212960313967137,
 43.944149794600939,
 46.914638350938965,
 51.176173708920189,
 52.40731367370892,
 52.570033744131457,
 52.986881968896711,
 55.591932585093893,
 58.671297315140848,
 57.042594630281691,
 56.600386957159621,
 56.933186619718313,
 57.923853799882629,
 58.852167693661968,
 59.649792767018781,
 61.37248752934272,
 62.918759169600939,
 63.866398914319248,
 63.887171728286383,
 64.533960534037561,
 66.389968456572774,
 69.296174442488265,
 84.342787191901408,
 109.05494791666666,
 101.42394549589201,
 81.17581059272301,
 60.83044490903756,
 55.55930897887324,
 57.203165346244134,
 53.074776261737092,
 53.674552523474176,
 52.926518485915494,
 47.805111135563379,
 45.096759463028171,
 43.551610181924886,
 43.425049515845068,
 42.641101819248824,
 41.657874853286387,
 41.034558392018781,
 40.896499046361505,
 40.939610842136148,
 41.34772410504695,
 41.99722527875587,
 42.995295994718312,
 44.430180824530517,
 46.048120231807509,
 48.24312646713615,
 50.524024354460096,
 52.779509609741787,
 55.197865316901407,
 57.437206572769952,
 60.076883436032865,
 62.287195569248823,
 64.014082673122061,
 63.470613262910796,
 64.573492517605629,
 63.788785578051645,
 61.418322696596242,
 58.213703051643193,
 55.43708370011737,
 54.812921801643192,
 52.341033964201877,
 50.800309932511738,
 49.737424809272298,
 48.193584947183098,
 46.949845950704223,
 44.588787411971829,
 43.667156323356807,
 42.373140404929579,
 41.568102626173712,
 41.01792656983568,
 42.539612676056336,
 43.115768045774651,
 43.841364069835677,
 44.491323723591549,
 43.116459433685449,
 38.773525528169017,
 36.101395613262909,
 35.886276775234741,
 37.118253007629107,
 40.717358054577467,
 45.979658157276994,
 50.232328345070421,
 52.094474398474176,
 50.60510196596244,
 54.835996185446007,
 52.68805934565728,
 48.125625366784035,
 42.825102699530518,
 38.912131382042254,
 37.170930531103288,
 38.613719556924885,
 39.389097344483567,
 40.661579372065731,
 43.011856294014088,
 46.749567194835677,
 50.956473738262908,
 54.603150674882627,
 57.45828748532864,
 58.514874926643195,
 56.558929357394369,
 58.248613556338029,
 58.591041299882626,
 56.06602112676056,
 50.828526628521125,
 43.578849398474176,
 36.248466842723005,
 31.538429797535212,
 31.359884829812206,
 31.402046654929578,
 31.472126247065727,
 31.556435225938966,
 31.682856514084506,
 32.002767385563381,
 32.758118764671359,
 35.032315507629107,
 38.9769677963615,
 51.093537265258213,
 54.818964568661968,
 55.747029049295776,
 56.549979826877937,
 57.698248606220659,
 58.436375806924886,
 59.006077611502349,
 59.283208626760562,
 60.224554357394368,
 60.041329225352115,
 60.481235328638498,
 62.481073943661968,
 65.200429137323937,
 68.081666299882627,
 70.55231624119719,
 72.981150968309862,
 75.680136810446015,
 72.767216842723002,
 73.231959727112681,
 77.853570642605632,
 83.515527802230054,
 90.215028975938964,
 101.02956095950704,
 111.88268962734742,
 121.52527508802817,
 138.36645943368543,
 141.3922773620892,
 103.31854643485916,
 89.053233201291079,
 89.325066021126759,
 87.865529636150228,
 84.3401903609155,
 74.748512690727694,
 64.952092502934278,
 58.124165566314552,
 53.215828565140846,
 44.730371552230046,
 41.356405883215963,
 37.28467209507042,
 34.971014891431928,
 33.898046874999999,
 35.872603066314554,
 37.875722564553989,
 39.083184785798124,
 39.801311252934269,
 43.489731880868547,
 65.854003447769955,
 76.750469483568068,
 80.889768559272298,
 83.728838394953058,
 84.241180677816899,
 80.668786678403762,
 79.365054650821591,
 79.897052890258209,
 73.915612162558688,
 63.723934492370894,
 57.732082599765256,
 53.090768045774645,
 47.231855193661971,
 43.878225865610325,
 40.95086194248826,
 39.464328418427229,
 37.857840008802818,
 37.397887323943664,
 36.061793940727696,
 37.239898767605631,
 37.143188820422537,
 38.692383729460097,
 43.557260490023474,
 49.994599105046952,
 58.691749193075118,
 67.965934932511743,
 75.413090522300465,
 72.809910504694841,
 71.376621185446012,
 76.765845070422529,
 82.348426496478879,
 80.849642385563385,
 73.536023694248826,
 67.211370305164323,
 61.130032276995308,
 55.308403022300467,
 47.808480046948354,
 42.252209873826288,
 38.155725498826293,
 35.361929650821594,
 34.903928257042253,
 34.8002402435446,
 35.435741270539907,
 38.513050176056339,
 42.242117811032863,
 48.055650308098592,
 57.586252934272302,
 92.287091035798127,
 95.840133509389673,
 92.676821082746486,
 88.053713688380284,
 87.584422681924877,
 90.052969116784041,
 86.440126173708919,
 78.83736795774648,
 66.260277288732397,
 61.20769696302817,
 55.579911238262909,
 51.474583700117371,
 47.895972711267603,
 45.357977552816898,
 42.216877567488261,
 39.269111282276995,
 36.064056998239437,
 32.936828785211269,
 30.854052963615022,
 27.04794784330986,
 24.807256822183099,
 22.013057511737088,
 20.533740463615022,
 20.900485988849766,
 23.264997799295774,
 27.315579151995305,
 32.272489363262913,
 39.299774427816899,
 56.256732321009387,
 91.002464788732397,
 93.78379364730047,
 71.65041996772301,
 54.212153389084506,
 49.730261517018782,
 41.574337954812208,
 33.932310005868544,
 23.688299589201879,
 22.680303697183099,
 23.359895833333333,
 25.457111942488265,
 28.821731954225353,
 34.928040639671359,
 47.339135856807509,
 49.994742150821594,
 49.64381602112676,
 71.377690360915494,
 71.64055714495305,
 51.802877420774649,
 38.051353433098591,
 30.745389524647887,
 28.810484521713615,
 26.328280883215964,
 26.645083259976527,
 28.142064627347416,
 30.752948943661973,
 33.607150454812206,
 36.961359301643192,
 40.43851415786385,
 43.064620011737091,
 43.152644512910797,
 41.898708920187794,
 37.709664759389675,
 30.513981807511737,
 26.202037485328638,
 23.640260049882627,
 21.970196963028169,
 21.285799955985915,
 20.463554504107982,
 23.053013130868546,
 28.214997799295773,
 34.122267458920184,
 42.85507078931925,
 71.531712147887319,
 109.89158047241784,
 101.63538915786386,
 71.461372139084503,
 67.319415713028164,
 62.942834873826293,
 38.075553843896714,
 35.345838835093893,
 33.879738849765261,
 31.940918427230049,
 30.834688600352113,
 30.803387250586855,
 35.050530002934273,
 40.025100865610327,
 44.774932144953048,
 47.427723371478876,
 45.747669087441317,
 41.73880391725352,
 36.947395833333331,
 32.329019953051642,
 28.749992664319247,
 25.539614509976527,
 24.191719850352111,
 22.865115170187792,
 22.296482541079811,
 22.452842576291079,
 22.841408083920189,
 26.462089201877934,
 30.584125586854459,
 34.40886150234742,
 38.923439333920186,
 46.632834507042254,
 78.476160871478868,
 77.412875953638505,
 77.51499779929577,
 75.956996405516435,
 72.952024647887328,
 35.522720437206573,
 28.324359961854459,
 28.211113556338027,
 30.114955619131454,
 33.510589055164317,
 35.897065727699534,
 40.042680824530514,
 42.813589348591549,
 42.733674442488265,
 45.642163659037557,
 43.640966109154931,
 43.106858861502346,
 40.746223958333331,
 39.081426056338032,
 35.671920848004696,
 32.280195495892016,
 30.433714788732395,
 31.567270026408451,
 33.805793353873241,
 37.042629474765256,
 40.179878227699533,
 43.816578638497653,
 54.553528462441314,
 81.408322329812208,
 82.32903279049296,
 55.714456792840373,
 50.408307658450703,
 46.440430604460097,
 41.597135416666667,
 37.650025674882627,
 32.010231440727701,
 29.462780589788732,
 26.897179430751173,
 26.724492004107983,
 29.218735328638498,
 33.551661531690144,
 41.982143119131457,
 47.085368984741784,
 55.342546948356805,
 51.028972271126761,
 45.583522227112674,
 34.21020393192488,
 28.300641872065729,
 25.266587808098592,
 22.976540492957746,
 21.869454225352111,
 21.570939700704226,
 22.686395980046949,
 25.084107247652582,
 29.077193368544602,
 35.089231220657275,
 44.683461707746481,
 50.683606587441318,
 68.880384389671363,
 74.965406763497654,
 72.574921141431929,
 64.431497579225351,
 55.772544380868545,
 45.906284844483565,
 38.100394292840377,
 32.542438747065731,
 26.529859888497654,
 23.516859228286386,
 22.946058905516431,
 24.221897007042255,
 25.881138130868546,
 31.501208553403757,
 39.443287852112675,
 46.841277875586854,
 53.1752402435446,
 51.924323283450704,
 47.444485401995308,
 38.137276261737092,
 32.714282570422533,
 29.981484741784037,
 27.406367370892017,
 25.950438306924884,
 25.069729313380282,
 24.81160137910798,
 23.99159697769953,
 26.230351379107983,
 29.386234595070423,
 34.737791593309858,
 40.654322549882629,
 43.62156690140845,
 42.67775271420188,
 39.087811766431926,
 34.136784771126763,
 30.208978873239438,
 28.131750660211267,
 25.70389891431925,
 24.174805604460094,
 23.914146860328639,
 23.979804870892018,
 24.591809712441314,
 25.945037411971832,
 28.548965669014084,
 32.554621478873237,
 37.373213761737091,
 53.73950080692488,
 58.630116637323944,
 40.631251833920189,
 49.3714238556338,
 56.543715155516431,
 41.819125953638498,
 38.930323870305166,
 34.4422773620892,
 30.826215889084509,
 28.342424075704226,
 26.652859081572771,
 26.56106954225352,
 26.904880061619718,
 29.040327904929576,
 31.301839421948358,
 40.535125073356809,
 61.950511663732392,
 79.423672241784033,
 88.87723188086855,
 105.9916006455399,
 117.96828418427231,
 110.46203968603287,
 75.162853946596243,
 62.473257775821594,
 52.590874413145542,
 46.902703198356811,
 46.172375660211266,
 49.076263571009392,
 56.019230487089203,
 63.321256968896712,
 70.336964495305168,
 78.015197696596246,
 85.459523547535213,
 99.866785871478868,
 97.133278315727694,
 90.643084286971828,
 88.557535578051642,
 99.891578638497649,
 106.53240353579812,
 97.766650161384973,
 79.621090082159625,
 66.500893119131462,
 53.271541226525819,
 43.119278169014088,
 35.197113409624414,
 27.231917546948356,
 27.256161971830984,
 30.024229753521126,
 35.697984521713614,
 44.137351452464792,
 49.834088908450703,
 45.048822623239438,
 45.23791446596244,
 38.183795481220656,
 26.369998899647886,
 17.383771640258217,
 16.471464201877936,
 16.782376026995305,
 16.684435519366197,
 17.887465155516431,
 17.990753374413146,
 25.024906470070423,
 25.068322696596244,
 25.847084066901409,
 26.720439040492959,
 27.837936473004696,
 27.952307071596245,
 28.177046654929576,
 29.154836047535213,
 29.429355560446009,
 29.776173708920187,
 32.107742811032864,
 33.080090962441318,
 33.712091035798124,
 35.038853433098595,
 35.478601819248823,
 34.646614583333331,
 34.611333626760562,
 34.418058612089204,
 35.147894659624413,
 35.206836854460093,
 35.135258949530517,
 35.250827098004692,
 35.163420627934272,
 35.939016651995303,
 35.852208039906102,
 35.782453051643195,
 35.313618691314552,
 35.446691607981222,
 35.884734448356809,
 36.216033964201877,
 36.244582599765259,
 36.052974618544603,
 35.874125220070425,
 35.634993031103285,
 36.191431924882629,
 36.330078125,
 36.58949530516432,
 36.407165126173709,
 36.426520319835682,
 36.260211267605634,
 36.338919454225355,
 36.734507042253519]

In [17]:
history = 200 # default 200
nmixtures = 5 # 5
backgroundRatio =  0.2 # 0.7
noiseSigma= 8000 # 15.0
learning = 100 # 0

RES_FILE =RESULTS_DIR + "BMOG_hist_%d_backratio_%r_nmixture_%d_noise_%r_learning_%r.mov" % (history, backgroundRatio, nmixtures, noiseSigma, learning) 

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG(history, nmixtures, backgroundRatio, noiseSigma)
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    fgmask = fgbg.apply(frame, learning)
    res_video.write(fgmask & fgmask)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [8]:
plt.plot(x)


Out[8]:
[<matplotlib.lines.Line2D at 0x65f8c30>]

In [100]:
# http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog
learning = 0 # 0

history = 0 # 500
varThreshold = 160 # 4.0f * 4.0f ??
bShadowDetection =  False


RES_FILE =RESULTS_DIR + "MOG2_history_%d_vtrshould_%r_shadow_detect_%r_learning_%r.mov" % (history, varThreshold, bShadowDetection, learning)

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG2(history, varThreshold, bShadowDetection)
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    fgmask = fgbg.apply(frame, learning)
    res_video.write(fgmask & fgmask)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
break ! False

In [44]:
RESULTS_DIR


Out[44]:
'D:\\my\\tamtam\\experiments\\results\\samsung-s3-front__'

In [52]:
cv2.imwrite(RESULTS_DIR + "foo.jpg", frame)


Out[52]:
False

In [8]:
# http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog
learning = 0 # 0

history = 0 # 500
varThreshold = 160 # 4.0f * 4.0f ??
bShadowDetection =  False


RES_FILE =RESULTS_DIR + "C_MOG2_history_%d_vtrshould_%r_shadow_detect_%r_learning_%r.mov" % (history, varThreshold, bShadowDetection, learning)

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG2(history, varThreshold, bShadowDetection)
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break
        
    fgmask = fgbg.apply(frame, learning)
    contours, hierarchy = cv2.findContours(fgmask,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
    cv2.drawContours(frame,contours,-1,(0,255,0),3)

    res_video.write(frame)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


True
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-8-02eac90781f9> in <module>()
     42     fgmask = fgbg.apply(frame, learning)
     43     contours, hierarchy = cv2.findContours(fgmask,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
---> 44     cv2.drawContours(frame,contours,-1,(0,255,0),3)
     45 
     46     res_video.write(frame)

KeyboardInterrupt: 

In [12]:
for h,cnt in enumerate(contours):
    mask = np.zeros(frame.shape,np.uint8)
    cv2.drawContours(mask,[cnt],0,255,-1)
    cv2.imwrite(RESULTS_DIR + "X%d.jpg" % h, mask)

In [64]:
x = cv2.findContours(xxx, cv2.cv.CV_RETR_LIST , cv2.cv.CV_CHAIN_APPROX_NONE )
cv2.drawContours(xxx ,x[0], -1, (0,255,0),-1)
cv2.imwrite(RESULTS_DIR+ 'X.jpg', xxx)


Out[64]:
True

In [79]:
cc[1]


Out[79]:
array([[[  1,  -1,  -1,  -1],
        [  2,   0,  -1,  -1],
        [  3,   1,  -1,  -1],
        [  4,   2,  -1,  -1],
        [  5,   3,  -1,  -1],
        [  6,   4,  -1,  -1],
        [  7,   5,  -1,  -1],
        [  8,   6,  -1,  -1],
        [  9,   7,  -1,  -1],
        [ 10,   8,  -1,  -1],
        [ 11,   9,  -1,  -1],
        [ 12,  10,  -1,  -1],
        [ 13,  11,  -1,  -1],
        [ 14,  12,  -1,  -1],
        [ 15,  13,  -1,  -1],
        [ 16,  14,  -1,  -1],
        [ 17,  15,  -1,  -1],
        [ 18,  16,  -1,  -1],
        [ 19,  17,  -1,  -1],
        [ 20,  18,  -1,  -1],
        [ 21,  19,  -1,  -1],
        [ 22,  20,  -1,  -1],
        [ 23,  21,  -1,  -1],
        [ 24,  22,  -1,  -1],
        [ 25,  23,  -1,  -1],
        [ 26,  24,  -1,  -1],
        [ 27,  25,  -1,  -1],
        [ 28,  26,  -1,  -1],
        [ 29,  27,  -1,  -1],
        [ 30,  28,  -1,  -1],
        [ 31,  29,  -1,  -1],
        [ 32,  30,  -1,  -1],
        [ 33,  31,  -1,  -1],
        [ 34,  32,  -1,  -1],
        [ 35,  33,  -1,  -1],
        [ 36,  34,  -1,  -1],
        [ 37,  35,  -1,  -1],
        [ 38,  36,  -1,  -1],
        [ 39,  37,  -1,  -1],
        [ 40,  38,  -1,  -1],
        [ 41,  39,  -1,  -1],
        [ 42,  40,  -1,  -1],
        [ 43,  41,  -1,  -1],
        [ 44,  42,  -1,  -1],
        [ 45,  43,  -1,  -1],
        [ 46,  44,  -1,  -1],
        [ 47,  45,  -1,  -1],
        [ 48,  46,  -1,  -1],
        [ 49,  47,  -1,  -1],
        [ 50,  48,  -1,  -1],
        [ 51,  49,  -1,  -1],
        [ 52,  50,  -1,  -1],
        [ 53,  51,  -1,  -1],
        [ 54,  52,  -1,  -1],
        [ 55,  53,  -1,  -1],
        [ 56,  54,  -1,  -1],
        [ 57,  55,  -1,  -1],
        [ 58,  56,  -1,  -1],
        [ 59,  57,  -1,  -1],
        [ 60,  58,  -1,  -1],
        [ 61,  59,  -1,  -1],
        [ 62,  60,  -1,  -1],
        [ 63,  61,  -1,  -1],
        [ 64,  62,  -1,  -1],
        [ 65,  63,  -1,  -1],
        [ 66,  64,  -1,  -1],
        [ 67,  65,  -1,  -1],
        [ 68,  66,  -1,  -1],
        [ 69,  67,  -1,  -1],
        [ 70,  68,  -1,  -1],
        [ 71,  69,  -1,  -1],
        [ 72,  70,  -1,  -1],
        [ 73,  71,  -1,  -1],
        [ 74,  72,  -1,  -1],
        [ 75,  73,  -1,  -1],
        [ 76,  74,  -1,  -1],
        [ 77,  75,  -1,  -1],
        [ 78,  76,  -1,  -1],
        [ 79,  77,  -1,  -1],
        [ 80,  78,  -1,  -1],
        [ 81,  79,  -1,  -1],
        [ 82,  80,  -1,  -1],
        [ 83,  81,  -1,  -1],
        [ 84,  82,  -1,  -1],
        [ 85,  83,  -1,  -1],
        [ 86,  84,  -1,  -1],
        [ 87,  85,  -1,  -1],
        [ 88,  86,  -1,  -1],
        [ 89,  87,  -1,  -1],
        [ 90,  88,  -1,  -1],
        [ 91,  89,  -1,  -1],
        [ 92,  90,  -1,  -1],
        [ 93,  91,  -1,  -1],
        [ 94,  92,  -1,  -1],
        [ 95,  93,  -1,  -1],
        [ 96,  94,  -1,  -1],
        [ 97,  95,  -1,  -1],
        [ 98,  96,  -1,  -1],
        [ 99,  97,  -1,  -1],
        [100,  98,  -1,  -1],
        [101,  99,  -1,  -1],
        [102, 100,  -1,  -1],
        [103, 101,  -1,  -1],
        [104, 102,  -1,  -1],
        [105, 103,  -1,  -1],
        [106, 104,  -1,  -1],
        [107, 105,  -1,  -1],
        [ -1, 106,  -1,  -1]]])

In [27]:
# http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog
learning = 0 # 0

history = 0 # 500
varThreshold = 160 # 4.0f * 4.0f ??
bShadowDetection =  False

kernel_size = 20
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(kernel_size,kernel_size))
 


RES_FILE =RESULTS_DIR + "MOG2_history_%d_vtrshould_%r_shadow_detect_%r_learning_%r_opening_kernel_%d.mov" % (history, varThreshold, bShadowDetection, learning, kernel_size)

# open video

video = cv2.VideoCapture()
print ORIGINAL_VIDEO
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)

assert res_video.isOpened()

# make bacground video


fgbg = cv2.BackgroundSubtractorMOG2(history, varThreshold, bShadowDetection)
i = 1

while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break

    fgmask = fgbg.apply(frame, learning)
        
    
    clean_frame = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
    res_video.write(clean_frame)
    if frame is None:
        print 'break2 !' , frame
        break

    # cv2.imwrite(r"d:\my\res\fram_%d.jpg" % i, fgmask)
    i = i + 1

video.release()
res_video.release()


C:\android\android_workspace\tamtam\experiments\videos\tom.mp4
False
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-27-3010f19ee5de> in <module>()
     30 print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height), False)
     31 
---> 32 assert res_video.isOpened()
     33 
     34 # make bacground video

AssertionError: 

In [11]:
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(15,15))
yyy = cv2.morphologyEx(xxx, cv2.MORPH_OPEN, kernel) 
                 

cv2.imwrite(RESULTS_DIR + "opening2.jpg" , yyy)


Out[11]:
True

In [51]:
# http://docs.opencv.org/doc/tutorials/imgproc/histograms/back_projection/back_projection.html#back-projection
RES_FILE =RESULTS_DIR + "back_projection.mov"

# open video

video = cv2.VideoCapture()
video.open(ORIGINAL_VIDEO)
assert video.isOpened(), "failled to open video!"

# open video writer

four_cc = cv2.cv.CV_FOURCC(*'XVID')
fps = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_size = int(video.get(cv2.cv.CV_CAP_PROP_FPS))
frame_width = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
res_video = cv2.VideoWriter()
print RES_FILE
print res_video.open(RES_FILE, four_cc, fps, (frame_width, frame_height))

assert res_video.isOpened()


sample = cv2.imread(r"C:\android\android_workspace\tamtam\experiments\videos\hand.jpg")
mask =cv2.imread(r"C:\android\android_workspace\tamtam\experiments\videos\mask.jpg", 0)
hsv = cv2.cvtColor(sample, cv2.cv.CV_BGR2HSV)

roihist = cv2.calcHist([hsv],[0, 1], mask, [180, 256], [0, 180, 0, 256] )
cv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX)

i =0
while(1):
    if i % 1000 == 0: print "farme ", i
    ret, frame = video.read()
    if not ret:
        print 'break !' , ret 
        break
        
    hsvt = cv2.cvtColor(frame, cv2.cv.CV_BGR2HSV)

    # normalize histogram and apply backprojection
    dst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1)

    # Now convolute with circular disc
    disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
    cv2.filter2D(dst,-1,disc,dst)

    # threshold and binary AND
    ret,thresh = cv2.threshold(dst,50,255,0)
    thresh = cv2.merge((thresh,thresh,thresh))
    res = cv2.bitwise_and(frame,thresh)

    res_video.write(res)
    
    i = i + 1

video.release()
res_video.release()


C:\android\android_workspace\tamtam\experiments\results\samsung-s4-front__back_projection.mov
True
farme  0
break ! False

In [50]:
cv2.imread??

In [33]:
frame= xxx
# hsv_clean = np.array(np.uint)
# hsv_clean = cv2.cv.CreateImage((frame_width, frame_height), 8, 1)
# hsv = cv2.cvtColor(frame, hsv_clean, cv2.cv.CV_BGR2HSV)
hsvt = cv2.cvtColor(frame, cv2.cv.CV_BGR2HSV)

sample = cv2.imread(r"D:\my\tamtam\experiments\results\hand_sample2.png")
hsv = cv2.cvtColor(sample, cv2.cv.CV_BGR2HSV)



# calculating object histogram
roihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] )
 
# normalize histogram and apply backprojection
cv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX)
dst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1)
 
# Now convolute with circular disc
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
cv2.filter2D(dst,-1,disc,dst)
 
# threshold and binary AND
ret,thresh = cv2.threshold(dst,50,255,0)
thresh = cv2.merge((thresh,thresh,thresh))
res = cv2.bitwise_and(frame,thresh)
 
# res = np.vstack((frame,thresh,res))
cv2.imwrite('res.jpg',res)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-33-415d7411cdaf> in <module>()
----> 1 frame= xxx
      2 # hsv_clean = np.array(np.uint)
      3 # hsv_clean = cv2.cv.CreateImage((frame_width, frame_height), 8, 1)
      4 # hsv = cv2.cvtColor(frame, hsv_clean, cv2.cv.CV_BGR2HSV)
      5 hsvt = cv2.cvtColor(frame, cv2.cv.CV_BGR2HSV)

NameError: name 'xxx' is not defined

In [89]:



[[[101  98 114]
  [101  98 114]
  [102  99 115]
  ..., 
  [227 216 208]
  [227 216 208]
  [227 216 208]]

 [[100  97 113]
  [101  98 114]
  [101  98 114]
  ..., 
  [227 216 208]
  [227 216 208]
  [227 216 208]]

 [[ 98  97 113]
  [ 98  97 113]
  [100  97 113]
  ..., 
  [227 216 208]
  [227 216 208]
  [227 216 208]]

 ..., 
 [[184 187 192]
  [183 186 191]
  [185 186 190]
  ..., 
  [176 175 184]
  [176 175 184]
  [176 175 184]]

 [[184 187 192]
  [184 187 192]
  [185 186 190]
  ..., 
  [176 175 184]
  [176 175 184]
  [176 175 184]]

 [[184 187 191]
  [184 187 191]
  [184 187 191]
  ..., 
  [176 176 182]
  [176 175 184]
  [176 175 184]]]
D:\my\tamtam\experiments\results\samsung-s3-front__hand_sample.png