簡體   English   中英

獲取_curses.error:curses function在windows-curses中返回NULL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM