| | 143 | == Python Scripts |
| | 144 | **Artificial Video Maker (Needs OpenCV and numpy)** |
| | 145 | import cv2 |
| | 146 | import numpy as np |
| | 147 | |
| | 148 | # Video properties |
| | 149 | width = 640 |
| | 150 | height = 480 |
| | 151 | fps = 30 |
| | 152 | duration = 15 # Number of frames for each color (white/black) |
| | 153 | cycles = 4 # Number of cycles to repeat |
| | 154 | noise_amount = 0 # Alter the amount of noise (0.0 - 1.0) |
| | 155 | |
| | 156 | # Create video writer |
| | 157 | fourcc = cv2.VideoWriter_fourcc(*"mp4v") |
| | 158 | output = cv2.VideoWriter("/Users/ayush/downloads/color_shift.mp4", fourcc, fps, (width, height)) |
| | 159 | |
| | 160 | # Generate frames |
| | 161 | for i in range(cycles): |
| | 162 | # Black frames |
| | 163 | for i in range(duration): |
| | 164 | frame = np.zeros((height, width, 3), dtype=np.uint8) # Black screen |
| | 165 | frame = cv2.randn(frame, (0, 0, 0), (255 * noise_amount, 255 * noise_amount, 255 * noise_amount)) # Add noise |
| | 166 | output.write(frame) |
| | 167 | |
| | 168 | # White frames |
| | 169 | for i in range(duration): |
| | 170 | frame = np.ones((height, width, 3), dtype=np.uint8) * 255 # White screen |
| | 171 | frame = cv2.randn(frame, (255, 255, 255), (255 * noise_amount, 255 * noise_amount, 255 * noise_amount)) # Add noise |
| | 172 | output.write(frame) |
| | 173 | |
| | 174 | # Release video writer |
| | 175 | output.release() |
| | 176 | print("Video Created") |
| | 177 | |
| | 178 | **Frame Collector (Needs OpenCV, OS, Shutil, and numpy)** |
| | 179 | import cv2 |
| | 180 | import numpy as np |
| | 181 | import os |
| | 182 | import shutil |
| | 183 | # Video |
| | 184 | width = 640 |
| | 185 | height = 480 |
| | 186 | fps = 30 |
| | 187 | duration = 15 # Number of frames for each color (white/black) |
| | 188 | cycles = 1 # Number of cycles to repeat |
| | 189 | noise_amount = 0 # Alter the amount of noise (0.0 - 1.0) |
| | 190 | shutil.rmtree("/Users/ayush/Images") |
| | 191 | path = os.path.join("/Users/ayush", "Images") |
| | 192 | os.mkdir(path) |
| | 193 | |
| | 194 | # Generate frames |
| | 195 | for w in range(cycles): |
| | 196 | for i in range(duration): |
| | 197 | frame = np.zeros((height, width, 3), dtype=np.uint8) |
| | 198 | frame = cv2.randn(frame, (0, 0, 0), (255 * noise_amount, 255 * noise_amount, 255 * noise_amount)) # Add noise |
| | 199 | cv2.imwrite(os.path.join("/Users/ayush/Images","blackcycle"+str(w+1)+"frame"+str(i+1)+".jpeg"),frame) |
| | 200 | |
| | 201 | # White frames |
| | 202 | for i in range(duration): |
| | 203 | frame = np.ones((height, width, 3), dtype=np.uint8) * 255 # White screen |
| | 204 | frame = cv2.randn(frame, (255, 255, 255), (255 * noise_amount, 255 * noise_amount, 255 * noise_amount)) # Add noise |
| | 205 | cv2.imwrite(os.path.join("/Users/ayush/Images","whitecycle"+str(w+1)+"frame"+str(i+1)+".jpeg"),frame) |
| | 206 | # Release video writer |
| | 207 | output.release() |
| | 208 | print("Images Created") |
| | 209 | |
| | 210 | **Histogram Code (Needs OpenCV, numpy, and Matplotlib)** |
| | 211 | |
| | 212 | from matplotlib import pyplot as plt |
| | 213 | import cv2 |
| | 214 | import numpy as np |
| | 215 | x_axis=list(range(0,256)) |
| | 216 | r_values=[] |
| | 217 | g_values=[] |
| | 218 | b_values=[] |
| | 219 | r_instances=[] |
| | 220 | g_instances=[] |
| | 221 | b_instances=[] |
| | 222 | cap = cv2.VideoCapture("/Users/ayush/downloads/color_shift.mp4") |
| | 223 | color_matrices = [] |
| | 224 | while True: |
| | 225 | ret, frame = cap.read() |
| | 226 | if not ret: |
| | 227 | break |
| | 228 | color_matrix = frame |
| | 229 | color_matrices.append(color_matrix) |
| | 230 | cap.release() |
| | 231 | frames=np.array(color_matrices) |
| | 232 | for color in range(3): |
| | 233 | for i in range(int(frames.size/3)): |
| | 234 | if(color==0): |
| | 235 | b_values.append(frames.item(i*3)) |
| | 236 | elif(color==1): |
| | 237 | g_values.append(frames.item((i*3)+1)) |
| | 238 | else: |
| | 239 | r_values.append(frames.item((i*3)+2)) |
| | 240 | for i in range(256): |
| | 241 | r_instances.append(r_values.count(i)) |
| | 242 | g_instances.append(g_values.count(i)) |
| | 243 | b_instances.append(b_values.count(i)) |
| | 244 | if(i==200): |
| | 245 | print("Almost Done") |
| | 246 | plt.figure(1) |
| | 247 | plt.bar(x_axis, r_instances) |
| | 248 | plt.title("Red Values") |
| | 249 | plt.xlabel("Color Matrix Values") |
| | 250 | plt.ylabel("Occurrences") |
| | 251 | plt.show() |
| | 252 | plt.figure(2) |
| | 253 | plt.bar(x_axis, g_instances) |
| | 254 | plt.title("Green Values") |
| | 255 | plt.xlabel("Color Matrix Values") |
| | 256 | plt.ylabel("Occurrences") |
| | 257 | plt.show() |
| | 258 | plt.figure(3) |
| | 259 | plt.bar(x_axis, b_instances) |
| | 260 | plt.title("Blue Values") |
| | 261 | plt.xlabel("Color Matrix Values") |
| | 262 | plt.ylabel("Occurrences") |
| | 263 | plt.show() |
| | 264 | |
| | 265 | **Framefinder** |
| | 266 | filevar=open("file.txt","r") |
| | 267 | file=filevar.read() |
| | 268 | hex="" |
| | 269 | frame=1 |
| | 270 | file.split() |
| | 271 | for i in file: |
| | 272 | hex=hex+i.upper() |
| | 273 | while(True): |
| | 274 | try: |
| | 275 | print("Frame "+str(frame)+": "+hex[hex.index("FFD8"):(hex.index("FFD9")+4)) |
| | 276 | frame=frame+1 |
| | 277 | hex=hex[hex.index("FFD9")+4:] |
| | 278 | catch: |
| | 279 | break |
| | 280 | |
| | 281 | **Frame and Packet Comparison** |
| | 282 | |
| | 283 | hexfile=open("hexfile.txt","r") |
| | 284 | packetsfile=open("packetsfile.txt","r") |
| | 285 | packets="" |
| | 286 | image="" |
| | 287 | pkts=packetsfile.read() |
| | 288 | pkts=pkts.split() |
| | 289 | for i in pkts: |
| | 290 | packets=packets+i.upper() |
| | 291 | packets=packets[packets.index("FFD8"):] |
| | 292 | img=hexfile.read() |
| | 293 | img=img.split() |
| | 294 | for i in img: |
| | 295 | image=image+i.upper() |
| | 296 | if(image[:len(packets)]==packets): |
| | 297 | print("Match") |
| | 298 | else: |
| | 299 | print("No Match") |