Skip to content

Instantly share code, notes, and snippets.

@SamyBencherif
Created February 21, 2019 01:21
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save SamyBencherif/29a0a945cabff92a4b61d78a5fe072a5 to your computer and use it in GitHub Desktop.
Save SamyBencherif/29a0a945cabff92a4b61d78a5fe072a5 to your computer and use it in GitHub Desktop.
import cv2
from time import sleep, time
import sys
import curses
from curses import wrapper
x = 160
sx = 4
chars = "▓@╠■#§=+~/<\"':. "
size = x*sx, int(x*sx*0.75)
operating = False
ongoing = True
#font.set_bold(True)
fpsa = 0
br = (255, 255, 255)
fr = (0, 0, 0)
lenc = len(chars)
visload = False
mt = False
aa = False
def toAscii(pic, scr):
global operating
m = 0
for y in pic:
tm = max(y)
if tm > m:
m = tm
fx = 0
fy = 0
h,w = scr.getmaxyx()
#for y in pic:
#for x in y:
for _y in range(h-1):
for _x in range(w-1):
y = pic[int(_y/float(h) * len(pic))]
x = y[int(_x/float(w) * len(y))]
scr.addstr(_y, _x, chars[int(x/m*(lenc-1))], curses.color_pair(1))
fx += 1
fy += 1
fx = 0
operating = False
cap = cv2.VideoCapture(0)
def main(scr):
global operating
while True:
ret, frame = cap.read()
curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
#colored = cv2.resize(cv2.resize(cv2.cvtColor(frame, 0), (x, int(x*0.75))), (640, 480))
#colored = cv2.cvtColor(frame, 0)
gray = cv2.resize(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY), (x, int(x*0.75)))
if not operating:
operating = True
if mt:
_thread.start_new_thread(toAscii, (gray, scr))
else:
toAscii(gray, scr)
scr.refresh()
#gray = cv2.resize(gray, (640, 480), interpolation = cv2.INTER_NEAREST)
#cv2.imshow('frame',cv2.resize(gray, (640, 480)))
def _main(scr):
try:
main(scr)
except KeyboardInterrupt:
pass
wrapper(_main)
cap.release()
cv2.destroyAllWindows()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment