Я нашел этот скрипт на python, который преобразует ввод веб-камеры в ASCII в командную строку, и сделал несколько изменений в соответствии с моими потребностями. Я хотел бы добавить символ Unicode к выводу, но в настоящее время он выводит только поле вместо правильного Unicode всякий раз, когда я фактически запускаю его. Что мне нужно изменить, чтобы убедиться, что он печатает фактический символ Unicode?
import cv2
from time import sleep, time
import sys
import curses
from curses import wrapper
import locale
locale.setlocale(locale.LC_ALL, '')
#stdscr.addstr(0, 0, mystring.encode('UTF-8'))
x = 160
sx = 4
chars = ['\u23FA', ".", ".", " ", " ", " ", " ", " ", " ", " "]
size = x*sx, int(x*sx*.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))].encode('UTF-8'), 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_WHITE, 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*.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()