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") |