exploration of various detection algos to find the blue grid. didn't work


In [1]:
import cv2
cv2.__version__

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
img = cv2.imread("frame12.png")
image = img
# test plotting
def imshow(img):  plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
imshow(img)



In [15]:
# harris corner detection
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
corners = cv2.cornerHarris(gray,2,3,0.04)

#result is dilated for marking the corners, not important
corners = cv2.dilate(corners, None)
dst = img.copy()
# Threshold for an optimal value, it may vary depending on the image.
dst[corners>0.05*corners.max()]=[0,255,0]
imshow(dst)



In [33]:
# hough lines
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,20,250,apertureSize = 3)
lines = cv2.HoughLinesP(gray.copy(), 1, np.pi/180, 200 , 100, 10)
print(lines.shape)
plt.imshow(img)


(4218, 1, 4)
Out[33]:
<matplotlib.image.AxesImage at 0x110e33400>

In [43]:
# thresholding by itself
img = image
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = cv2.medianBlur(img,5)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
            cv2.THRESH_BINARY,11,2)
plt.imshow(th3)


(6844, 1, 4)

In [45]:
# threshold HSV image
# valid blue values measured of an image (use Digital Color Meter)
valid = np.array([15,37,82, 18,50,104, 11,33,74, 21,31,63, 16,40,91, 15,42,92, 11,45,102, 16,32,73, 
                  16,26,42, 13,30,59, 48,71,112, 17,54,110, 61,75,116, 62,74,111, 
                 14,53,118, 13,54,119, 51,54,87, 54,56,87], dtype=np.uint8)
valid = valid.reshape([-1, 2, 3])
cv2.cvtColor(valid, cv2.COLOR_RGB2HSV)


Out[45]:
array([[[110, 208,  82],
        [109, 211, 104]],

       [[109, 217,  74],
        [113, 170,  63]],

       [[110, 210,  91],
        [109, 213,  92]],

       [[109, 228, 102],
        [112, 199,  73]],

       [[108, 158,  42],
        [109, 199,  59]],

       [[109, 146, 112],
        [108, 216, 110]],

       [[112, 121, 116],
        [113, 113, 111]],

       [[109, 225, 118],
        [108, 227, 119]],

       [[117, 106,  87],
        [118,  97,  87]]], dtype=uint8)

In [46]:
def tightbluemask(image, clean=True):
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    threshold  = np.array([[103,95,30],[120,240,125]])
    mask = cv2.inRange(hsv, threshold[0,:], threshold[1,:])

    if clean:
        kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (15, 15))
        mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
        kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
        mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
    
    return mask


# plt.imshow(tightbluemask(image))

In [4]:
# try everywhere
# %matplotlib osx
#    RESTART KERNEL TO USE EXTERNAL IMAGE VIEWER
import cv2
import numpy as np
import matplotlib.pyplot as plt
cv2.startWindowThread()
cv2.namedWindow('showboxes')
img = cv2.imread("frame1.png")

# test plotting
def imshow(img):  
    cv2.imshow('showboxes', cv2.cvtColor(img, cv2.COLOR_GRAY2BGR))
    cv2.waitKey()
    
import glob, sys
for fn in glob.glob("stills-thu/frame*png"): 
    print(fn)
    try:
        imshow(tightbluemask(cv2.imread(fn)))
        
    except Exception as e:
        print("EXCEPTION:", e)


stills-thu/frame10.png
stills-thu/frame100.png
stills-thu/frame1000.png
stills-thu/frame1001.png
stills-thu/frame1002.png
stills-thu/frame1003.png
stills-thu/frame1004.png
stills-thu/frame1005.png
stills-thu/frame1006.png
stills-thu/frame1007.png
stills-thu/frame1008.png
stills-thu/frame1009.png
stills-thu/frame101.png
stills-thu/frame1010.png
stills-thu/frame1011.png
stills-thu/frame1012.png
stills-thu/frame1013.png
stills-thu/frame1014.png
stills-thu/frame1015.png
stills-thu/frame1016.png
stills-thu/frame1017.png
stills-thu/frame1018.png
stills-thu/frame1019.png
stills-thu/frame102.png
stills-thu/frame1020.png
stills-thu/frame1021.png
stills-thu/frame1022.png
stills-thu/frame1023.png
stills-thu/frame1024.png
stills-thu/frame1025.png
stills-thu/frame1026.png
stills-thu/frame1027.png
stills-thu/frame1028.png
stills-thu/frame1029.png
stills-thu/frame103.png
stills-thu/frame1030.png
stills-thu/frame1031.png
stills-thu/frame1032.png
stills-thu/frame1033.png
stills-thu/frame1034.png
stills-thu/frame1035.png
stills-thu/frame1036.png
stills-thu/frame1037.png
stills-thu/frame1038.png
stills-thu/frame1039.png
stills-thu/frame104.png
stills-thu/frame1040.png
stills-thu/frame1041.png
stills-thu/frame1042.png
stills-thu/frame1043.png
stills-thu/frame1044.png
stills-thu/frame1045.png
stills-thu/frame1046.png
stills-thu/frame1047.png
stills-thu/frame1048.png
stills-thu/frame1049.png
stills-thu/frame105.png
stills-thu/frame1050.png
stills-thu/frame1051.png
stills-thu/frame1052.png
stills-thu/frame1053.png
stills-thu/frame1054.png
stills-thu/frame1055.png
stills-thu/frame1056.png
stills-thu/frame1057.png
stills-thu/frame1058.png
stills-thu/frame1059.png
stills-thu/frame106.png
stills-thu/frame1060.png
stills-thu/frame1061.png
stills-thu/frame1062.png
stills-thu/frame1063.png
stills-thu/frame1064.png
stills-thu/frame1065.png
stills-thu/frame1066.png
stills-thu/frame1067.png
stills-thu/frame1068.png
stills-thu/frame1069.png
stills-thu/frame107.png
stills-thu/frame1070.png
stills-thu/frame1071.png
stills-thu/frame1072.png
stills-thu/frame1073.png
stills-thu/frame1074.png
stills-thu/frame1075.png
stills-thu/frame1076.png
stills-thu/frame1077.png
stills-thu/frame1078.png
stills-thu/frame1079.png
stills-thu/frame108.png
stills-thu/frame1080.png
stills-thu/frame1081.png
stills-thu/frame1082.png
stills-thu/frame1083.png
stills-thu/frame1084.png
stills-thu/frame1085.png
stills-thu/frame1086.png
stills-thu/frame1087.png
stills-thu/frame1088.png
stills-thu/frame1089.png
stills-thu/frame109.png
stills-thu/frame1090.png
stills-thu/frame1091.png
stills-thu/frame1092.png
stills-thu/frame1093.png
stills-thu/frame1094.png
stills-thu/frame1095.png
stills-thu/frame1096.png
stills-thu/frame1097.png
stills-thu/frame1098.png
stills-thu/frame1099.png
stills-thu/frame11.png
stills-thu/frame110.png
stills-thu/frame1100.png
stills-thu/frame1101.png
stills-thu/frame1102.png
stills-thu/frame1103.png
stills-thu/frame1104.png
stills-thu/frame1105.png
stills-thu/frame1106.png
stills-thu/frame1107.png
stills-thu/frame1108.png
stills-thu/frame1109.png
stills-thu/frame111.png
stills-thu/frame1110.png
stills-thu/frame1111.png
stills-thu/frame1112.png
stills-thu/frame1113.png
stills-thu/frame1114.png
stills-thu/frame1115.png
stills-thu/frame1116.png
stills-thu/frame1117.png
stills-thu/frame1118.png
stills-thu/frame1119.png
stills-thu/frame112.png
stills-thu/frame1120.png
stills-thu/frame1121.png
stills-thu/frame1122.png
stills-thu/frame1123.png
stills-thu/frame1124.png
stills-thu/frame1125.png
stills-thu/frame1126.png
stills-thu/frame1127.png
stills-thu/frame1128.png
stills-thu/frame1129.png
stills-thu/frame113.png
stills-thu/frame1130.png
stills-thu/frame1131.png
stills-thu/frame1132.png
stills-thu/frame1133.png
stills-thu/frame1134.png
stills-thu/frame1135.png
stills-thu/frame1136.png
stills-thu/frame1137.png
stills-thu/frame1138.png
stills-thu/frame1139.png
stills-thu/frame114.png
stills-thu/frame1140.png
stills-thu/frame1141.png
stills-thu/frame1142.png
stills-thu/frame1143.png
stills-thu/frame1144.png
stills-thu/frame1145.png
stills-thu/frame1146.png
stills-thu/frame1147.png
stills-thu/frame1148.png
stills-thu/frame1149.png
stills-thu/frame115.png
stills-thu/frame1150.png
stills-thu/frame1151.png
stills-thu/frame1152.png
stills-thu/frame1153.png
stills-thu/frame1154.png
stills-thu/frame1155.png
stills-thu/frame1156.png
stills-thu/frame1157.png
stills-thu/frame1158.png
stills-thu/frame1159.png
stills-thu/frame116.png
stills-thu/frame1160.png
stills-thu/frame1161.png
stills-thu/frame1162.png
stills-thu/frame1163.png
stills-thu/frame1164.png
stills-thu/frame1165.png
stills-thu/frame1166.png
stills-thu/frame1167.png
stills-thu/frame1168.png
stills-thu/frame1169.png
stills-thu/frame117.png
stills-thu/frame1170.png
stills-thu/frame1171.png
stills-thu/frame1172.png
stills-thu/frame1173.png
stills-thu/frame1174.png
stills-thu/frame1175.png
stills-thu/frame1176.png
stills-thu/frame1177.png
stills-thu/frame1178.png
stills-thu/frame1179.png
stills-thu/frame118.png
stills-thu/frame1180.png
stills-thu/frame1181.png
stills-thu/frame1182.png
stills-thu/frame1183.png
stills-thu/frame1184.png
stills-thu/frame1185.png
stills-thu/frame1186.png
stills-thu/frame1187.png
stills-thu/frame1188.png
stills-thu/frame1189.png
stills-thu/frame119.png
stills-thu/frame1190.png
stills-thu/frame1191.png
stills-thu/frame1192.png
stills-thu/frame1193.png
stills-thu/frame1194.png
stills-thu/frame1195.png
stills-thu/frame1196.png
stills-thu/frame1197.png
stills-thu/frame1198.png
stills-thu/frame1199.png
stills-thu/frame12.png
stills-thu/frame120.png
stills-thu/frame1200.png
stills-thu/frame1201.png
stills-thu/frame1202.png
stills-thu/frame1203.png
stills-thu/frame1204.png
stills-thu/frame1205.png
stills-thu/frame1206.png
stills-thu/frame1207.png
stills-thu/frame1208.png
stills-thu/frame1209.png
stills-thu/frame121.png
stills-thu/frame1210.png
stills-thu/frame1211.png
stills-thu/frame1212.png
stills-thu/frame1213.png
stills-thu/frame1214.png
stills-thu/frame1215.png
stills-thu/frame1216.png
stills-thu/frame1217.png
stills-thu/frame1218.png
stills-thu/frame1219.png
stills-thu/frame122.png
stills-thu/frame1220.png
stills-thu/frame1221.png
stills-thu/frame1222.png
stills-thu/frame1223.png
stills-thu/frame1224.png
stills-thu/frame1225.png
stills-thu/frame1226.png
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-4-118d58d7622b> in <module>()
     17     print(fn)
     18     try:
---> 19         imshow(tightbluemask(cv2.imread(fn)))
     20 
     21     except Exception as e:

<ipython-input-4-118d58d7622b> in imshow(img)
     11 def imshow(img):
     12     cv2.imshow('showboxes', cv2.cvtColor(img, cv2.COLOR_GRAY2BGR))
---> 13     cv2.waitKey()
     14 
     15 import glob, sys

KeyboardInterrupt: 

In [51]:
import glob, sys, time, os
os.system("rm stills-thu/*.x.png")
for fn in glob.glob("stills-thu/frame*png"): 
    newname = fn.replace(".png", ".x.png")
    print(newname)
    img = cv2.imread(fn)
    conv = tightbluemask(img)
    #conv3 = cv2.cvtColor(conv, cv2.COLOR_GRAY2RGB) # 182,177,240
    #supr = cv2.bitwise_and(img,img, mask=cv2.bitwise_not(conv))
    supr = img.copy()
    supr[conv>0,:] = (182,177,240) 
    print(supr.shape)
    both = np.concatenate([supr,conv3], axis=1)
    cv2.imwrite(newname, both)


stills-thu/frame10.x.png
(600, 800, 3)
stills-thu/frame100.x.png
(600, 800, 3)
stills-thu/frame101.x.png
(600, 800, 3)
stills-thu/frame102.x.png
(600, 800, 3)
stills-thu/frame103.x.png
(600, 800, 3)
stills-thu/frame104.x.png
(600, 800, 3)
stills-thu/frame105.x.png
(600, 800, 3)
stills-thu/frame106.x.png
(600, 800, 3)
stills-thu/frame107.x.png
(600, 800, 3)
stills-thu/frame108.x.png
(600, 800, 3)
stills-thu/frame109.x.png
(600, 800, 3)
stills-thu/frame11.x.png
(600, 800, 3)
stills-thu/frame110.x.png
(600, 800, 3)
stills-thu/frame111.x.png
(600, 800, 3)
stills-thu/frame112.x.png
(600, 800, 3)
stills-thu/frame113.x.png
(600, 800, 3)
stills-thu/frame114.x.png
(600, 800, 3)
stills-thu/frame115.x.png
(600, 800, 3)
stills-thu/frame116.x.png
(600, 800, 3)
stills-thu/frame117.x.png
(600, 800, 3)
stills-thu/frame118.x.png
(600, 800, 3)
stills-thu/frame119.x.png
(600, 800, 3)
stills-thu/frame12.x.png
(600, 800, 3)
stills-thu/frame120.x.png
(600, 800, 3)
stills-thu/frame121.x.png
(600, 800, 3)
stills-thu/frame122.x.png
(600, 800, 3)
stills-thu/frame123.x.png
(600, 800, 3)
stills-thu/frame124.x.png
(600, 800, 3)
stills-thu/frame125.x.png
(600, 800, 3)
stills-thu/frame126.x.png
(600, 800, 3)
stills-thu/frame127.x.png
(600, 800, 3)
stills-thu/frame128.x.png
(600, 800, 3)
stills-thu/frame129.x.png
(600, 800, 3)
stills-thu/frame13.x.png
(600, 800, 3)
stills-thu/frame130.x.png
(600, 800, 3)
stills-thu/frame131.x.png
(600, 800, 3)
stills-thu/frame132.x.png
(600, 800, 3)
stills-thu/frame133.x.png
(600, 800, 3)
stills-thu/frame134.x.png
(600, 800, 3)
stills-thu/frame135.x.png
(600, 800, 3)
stills-thu/frame136.x.png
(600, 800, 3)
stills-thu/frame137.x.png
(600, 800, 3)
stills-thu/frame138.x.png
(600, 800, 3)
stills-thu/frame139.x.png
(600, 800, 3)
stills-thu/frame14.x.png
(600, 800, 3)
stills-thu/frame140.x.png
(600, 800, 3)
stills-thu/frame141.x.png
(600, 800, 3)
stills-thu/frame142.x.png
(600, 800, 3)
stills-thu/frame143.x.png
(600, 800, 3)
stills-thu/frame144.x.png
(600, 800, 3)
stills-thu/frame145.x.png
(600, 800, 3)
stills-thu/frame146.x.png
(600, 800, 3)
stills-thu/frame147.x.png
(600, 800, 3)
stills-thu/frame148.x.png
(600, 800, 3)
stills-thu/frame149.x.png
(600, 800, 3)
stills-thu/frame15.x.png
(600, 800, 3)
stills-thu/frame150.x.png
(600, 800, 3)
stills-thu/frame16.x.png
(600, 800, 3)
stills-thu/frame17.x.png
(600, 800, 3)
stills-thu/frame18.x.png
(600, 800, 3)
stills-thu/frame19.x.png
(600, 800, 3)
stills-thu/frame1951.x.png
(600, 800, 3)
stills-thu/frame1952.x.png
(600, 800, 3)
stills-thu/frame1953.x.png
(600, 800, 3)
stills-thu/frame1954.x.png
(600, 800, 3)
stills-thu/frame1955.x.png
(600, 800, 3)
stills-thu/frame1956.x.png
(600, 800, 3)
stills-thu/frame1957.x.png
(600, 800, 3)
stills-thu/frame1958.x.png
(600, 800, 3)
stills-thu/frame1959.x.png
(600, 800, 3)
stills-thu/frame1960.x.png
(600, 800, 3)
stills-thu/frame1961.x.png
(600, 800, 3)
stills-thu/frame1962.x.png
(600, 800, 3)
stills-thu/frame1963.x.png
(600, 800, 3)
stills-thu/frame1964.x.png
(600, 800, 3)
stills-thu/frame1965.x.png
(600, 800, 3)
stills-thu/frame1966.x.png
(600, 800, 3)
stills-thu/frame1967.x.png
(600, 800, 3)
stills-thu/frame1968.x.png
(600, 800, 3)
stills-thu/frame1969.x.png
(600, 800, 3)
stills-thu/frame1970.x.png
(600, 800, 3)
stills-thu/frame1971.x.png
(600, 800, 3)
stills-thu/frame1972.x.png
(600, 800, 3)
stills-thu/frame1973.x.png
(600, 800, 3)
stills-thu/frame1974.x.png
(600, 800, 3)
stills-thu/frame1975.x.png
(600, 800, 3)
stills-thu/frame1976.x.png
(600, 800, 3)
stills-thu/frame1977.x.png
(600, 800, 3)
stills-thu/frame1978.x.png
(600, 800, 3)
stills-thu/frame1979.x.png
(600, 800, 3)
stills-thu/frame1980.x.png
(600, 800, 3)
stills-thu/frame1981.x.png
(600, 800, 3)
stills-thu/frame1982.x.png
(600, 800, 3)
stills-thu/frame1983.x.png
(600, 800, 3)
stills-thu/frame1984.x.png
(600, 800, 3)
stills-thu/frame1985.x.png
(600, 800, 3)
stills-thu/frame1986.x.png
(600, 800, 3)
stills-thu/frame1987.x.png
(600, 800, 3)
stills-thu/frame1988.x.png
(600, 800, 3)
stills-thu/frame1989.x.png
(600, 800, 3)
stills-thu/frame1990.x.png
(600, 800, 3)
stills-thu/frame1991.x.png
(600, 800, 3)
stills-thu/frame1992.x.png
(600, 800, 3)
stills-thu/frame1993.x.png
(600, 800, 3)
stills-thu/frame1994.x.png
(600, 800, 3)
stills-thu/frame1995.x.png
(600, 800, 3)
stills-thu/frame1996.x.png
(600, 800, 3)
stills-thu/frame1997.x.png
(600, 800, 3)
stills-thu/frame1998.x.png
(600, 800, 3)
stills-thu/frame1999.x.png
(600, 800, 3)
stills-thu/frame2.x.png
(600, 800, 3)
stills-thu/frame20.x.png
(600, 800, 3)
stills-thu/frame2000.x.png
(600, 800, 3)
stills-thu/frame21.x.png
(600, 800, 3)
stills-thu/frame22.x.png
(600, 800, 3)
stills-thu/frame23.x.png
(600, 800, 3)
stills-thu/frame24.x.png
(600, 800, 3)
stills-thu/frame25.x.png
(600, 800, 3)
stills-thu/frame26.x.png
(600, 800, 3)
stills-thu/frame27.x.png
(600, 800, 3)
stills-thu/frame28.x.png
(600, 800, 3)
stills-thu/frame29.x.png
(600, 800, 3)
stills-thu/frame3.x.png
(600, 800, 3)
stills-thu/frame30.x.png
(600, 800, 3)
stills-thu/frame31.x.png
(600, 800, 3)
stills-thu/frame32.x.png
(600, 800, 3)
stills-thu/frame33.x.png
(600, 800, 3)
stills-thu/frame34.x.png
(600, 800, 3)
stills-thu/frame35.x.png
(600, 800, 3)
stills-thu/frame36.x.png
(600, 800, 3)
stills-thu/frame37.x.png
(600, 800, 3)
stills-thu/frame38.x.png
(600, 800, 3)
stills-thu/frame39.x.png
(600, 800, 3)
stills-thu/frame4.x.png
(600, 800, 3)
stills-thu/frame40.x.png
(600, 800, 3)
stills-thu/frame41.x.png
(600, 800, 3)
stills-thu/frame42.x.png
(600, 800, 3)
stills-thu/frame43.x.png
(600, 800, 3)
stills-thu/frame44.x.png
(600, 800, 3)
stills-thu/frame45.x.png
(600, 800, 3)
stills-thu/frame46.x.png
(600, 800, 3)
stills-thu/frame47.x.png
(600, 800, 3)
stills-thu/frame48.x.png
(600, 800, 3)
stills-thu/frame49.x.png
(600, 800, 3)
stills-thu/frame5.x.png
(600, 800, 3)
stills-thu/frame50.x.png
(600, 800, 3)
stills-thu/frame51.x.png
(600, 800, 3)
stills-thu/frame52.x.png
(600, 800, 3)
stills-thu/frame53.x.png
(600, 800, 3)
stills-thu/frame54.x.png
(600, 800, 3)
stills-thu/frame55.x.png
(600, 800, 3)
stills-thu/frame56.x.png
(600, 800, 3)
stills-thu/frame57.x.png
(600, 800, 3)
stills-thu/frame58.x.png
(600, 800, 3)
stills-thu/frame59.x.png
(600, 800, 3)
stills-thu/frame6.x.png
(600, 800, 3)
stills-thu/frame60.x.png
(600, 800, 3)
stills-thu/frame61.x.png
(600, 800, 3)
stills-thu/frame62.x.png
(600, 800, 3)
stills-thu/frame63.x.png
(600, 800, 3)
stills-thu/frame64.x.png
(600, 800, 3)
stills-thu/frame65.x.png
(600, 800, 3)
stills-thu/frame66.x.png
(600, 800, 3)
stills-thu/frame67.x.png
(600, 800, 3)
stills-thu/frame68.x.png
(600, 800, 3)
stills-thu/frame69.x.png
(600, 800, 3)
stills-thu/frame7.x.png
(600, 800, 3)
stills-thu/frame70.x.png
(600, 800, 3)
stills-thu/frame71.x.png
(600, 800, 3)
stills-thu/frame72.x.png
(600, 800, 3)
stills-thu/frame73.x.png
(600, 800, 3)
stills-thu/frame74.x.png
(600, 800, 3)
stills-thu/frame75.x.png
(600, 800, 3)
stills-thu/frame76.x.png
(600, 800, 3)
stills-thu/frame77.x.png
(600, 800, 3)
stills-thu/frame78.x.png
(600, 800, 3)
stills-thu/frame79.x.png
(600, 800, 3)
stills-thu/frame8.x.png
(600, 800, 3)
stills-thu/frame80.x.png
(600, 800, 3)
stills-thu/frame81.x.png
(600, 800, 3)
stills-thu/frame82.x.png
(600, 800, 3)
stills-thu/frame83.x.png
(600, 800, 3)
stills-thu/frame84.x.png
(600, 800, 3)
stills-thu/frame85.x.png
(600, 800, 3)
stills-thu/frame86.x.png
(600, 800, 3)
stills-thu/frame87.x.png
(600, 800, 3)
stills-thu/frame88.x.png
(600, 800, 3)
stills-thu/frame89.x.png
(600, 800, 3)
stills-thu/frame9.x.png
(600, 800, 3)
stills-thu/frame90.x.png
(600, 800, 3)
stills-thu/frame91.x.png
(600, 800, 3)
stills-thu/frame92.x.png
(600, 800, 3)
stills-thu/frame93.x.png
(600, 800, 3)
stills-thu/frame94.x.png
(600, 800, 3)
stills-thu/frame95.x.png
(600, 800, 3)
stills-thu/frame96.x.png
(600, 800, 3)
stills-thu/frame97.x.png
(600, 800, 3)
stills-thu/frame98.x.png
(600, 800, 3)
stills-thu/frame99.x.png
(600, 800, 3)

In [42]:
bad = "stills-thu/frame1057.png stills-thu/frame107.png stills-thu/frame120.png stills-thu/frame17.png stills-thu/frame72.png".split()
fn = bad[4]
print(fn)
img = cv2.imread(fn)
imshow(img)


stills-thu/frame72.png

In [44]:
imshow(img)
conv = tightbluemask(img)
conv = cv2.cvtColor(conv, cv2.COLOR_GRAY2RGB)
#conv = cv2.bitwise_and(img,img, mask=cv2.bitwise_not(conv))
conv = np.concatenate([img,conv], axis=1)
plt.imshow(conv)


Out[44]:
<matplotlib.image.AxesImage at 0x11b6f9860>

In [25]:
conv = conv[:,:,np.newaxis]
layer0 = np.zeros_like(conv)
conv = np.append(conv, layer0, axis=2)
conv = np.append(conv, layer0, axis=2)
conv.shape


Out[25]:
(600, 800, 4)