[英]‘_curses.error: curses function returned NULL’ with windows-curses
[英]Getting _curses.error: curses function returned NULL in windows-curses
我檢查了其他答案,但沒有運氣。
所以我正在使用 open-cv 和帶有 windows-curses 的終端,但我得到了 _curses.error: curses function returned NULL 錯誤
我仍然是詛咒的菜鳥,因此我對為什么會發生這種情況的線索為零
這是代碼
from string import ascii_letters
import cv2 as cv
import numpy as np
import os
import curses as cs
basefolder = os.path.dirname(os.path.abspath(__file__)).replace(os.path.basename(__file__), '') + '\\'
def map_range(value, leftMin, leftMax, rightMin, rightMax):
# Figure out how 'wide' each range is
leftSpan = leftMax - leftMin
rightSpan = rightMax - rightMin
# Convert the left range into a 0-1 range (float)
valueScaled = float(value - leftMin) / float(leftSpan)
# Convert the 0-1 range into a value in the right range.
return rightMin + (valueScaled * rightSpan)
def asciify(matrix):
w, h = len(matrix[0]), len(matrix)
asciis = '$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`\'.'
output = np.empty(shape=(h, w), dtype=str)
for i in range(h):
for j in range(w):
asc = map_range(matrix[i, j], 255, 0, len(asciis)-1, 0)
output[i, j] = asciis[int(asc)]
return output
def main(stdscr):
cs.initscr()
img = cv.imread(basefolder + 'cat.jpg', 0)
ascii_img = asciify(img)
w, h = len(ascii_img[0]), len(ascii_img)
win = cs.newwin(h, w, 0, 0)
win.clear()
for i in range(h):
strg = []
for j in range(w):
strg.append(ascii_img[i, j])
win.addstr(i, 0, ''.join(strg))
win.refresh()
stdscr.getch()
cs.wrapper(main)
在 Windows 上,通過設置 LINES 和 COLS 的環境變量,我能夠通過“_curses.error:curses function 返回 NULL 錯誤”。 在我的情況下,這是在“環境變量”下的 pycharm 中添加到運行時環境中的。 例如:LINES=40 COLS=80
如果您在 linux 中工作,您可以通過以下方式獲得相同的結果:
導出 LINES=40
出口 COLS=80
將值設置為適合您的顯示器的值 - 重要的是縮放以適合您使用的整個范圍,因此在您的示例中看起來您需要一個處理矩陣高度和寬度的區域。
我在 Windows 詛咒 package 方面取得的成功有些有限。 我可以讓它的一部分工作(newwin)而不是其他的(newpad)。 在 Linux 上工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.