小编K. *_*ord的帖子

在python中轮询键盘(检测按键)

如何从控制台python应用程序轮询键盘?具体来说,我想在许多其他I/O活动(套接字选择,串行端口访问等)中做类似的事情:

   while 1:
      # doing amazing pythonic embedded stuff
      # ...

      # periodically do a non-blocking check to see if
      # we are being told to do something else
      x = keyboard.read(1000, timeout = 0)

      if len(x):
          # ok, some key got pressed
          # do something
Run Code Online (Sandbox Code Playgroud)

在Windows上执行此操作的正确pythonic方法是什么?此外,Linux的可移植性也不错,但并不是必需的.

python keyboard console nonblocking blocking

60
推荐指数
8
解决办法
12万
查看次数

如何从两个不同的进程访问串行端口(Python)

我想使用多处理(以避免多核机器上的 GIL 问题)并使用相同的串行端口进行读取进程和写入进程。那可能吗?如果是这样,如何获取端口,然后如何获取子进程可以使用的文件对象?

编辑——这需要在 Windows 上运行,但 Mac 和 Linux 也很好。

python serial-port multiprocessing

6
推荐指数
1
解决办法
8353
查看次数

没有累积缓冲区的OpenGL抗锯齿

在NVIDIA卡上,我可以使用累积缓冲区执行完整场景抗锯齿,如下所示:

if(m_antialias)
{
    glClear(GL_ACCUM_BUFFER_BIT);
    for(int j = 0; j < antialiasing; j++)
    {
        accPerspective(m_camera.FieldOfView(), // Vertical field of view in degrees.
            aspectratio, // The aspect ratio.
            20., // Near clipping
            1000.,
            JITTER[antialiasing][j].X(), JITTER[antialiasing][j].Y(),
            0.0, 0.0, 1.0);

        m_camera.gluLookAt();

        ActualDraw();

        glAccum(GL_ACCUM, float(1.0 / antialiasing));

        glDrawBuffer(GL_FRONT);
        glAccum(GL_RETURN, float(antialiasing) / (j + 1));
        glDrawBuffer(GL_BACK);
    }

    glAccum(GL_RETURN, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

在ATI卡上,没有实现累积缓冲区,并且每个人都说你现在可以用着色器语言来实现.当然,问题在于GLSL是OpenGL初学者进入的一个相当高的障碍.

任何人都可以向我指出一些能告诉我如何以ATI卡可以做到的方式进行全景抗锯齿,以及新手可以理解的东西吗?

opengl antialiasing

5
推荐指数
1
解决办法
1万
查看次数

是否可以使用 Cython 创建 PIL 映像而无需冗余复制内存?

我正在使用 Cython 从 USB 摄像头抓取图像并将其转换为返回给调用者的 PIL 图像。

图像的数据位于图像抓取函数返回的结构体的“convert_buffer”成员所指向的字符数组中:

struct FlyCaptureImage:
   /// stuff
  char * convert_buffer
   /// more stuff
Run Code Online (Sandbox Code Playgroud)

现在,我正在这样做将其转换为 PIL 图像:

cdef unsigned char *convert_buffer
cdef Py_ssize_t byte_length
cdef bytes py_string

// get the number of bytes into a Py_ssize_t type
byte_length = count

// slice the char array so it looks like a Python str type
py_string = convert_buffer[:byte_length]

// create the PIL image from the python string
pil_image = PILImage.fromstring('RGB', (width, height), py_string)
Run Code Online (Sandbox Code Playgroud)

将数据转换为 Python 字符串的过程需要 2 毫秒,这听起来可能是一个零复制事件。是否可以让 …

python usb camera cython python-imaging-library

5
推荐指数
1
解决办法
1931
查看次数

在递归调用时,python构造函数不返回None

以下代码不返回None,而是一些神秘的" main _.link_list对象":

class link_list(object):
    """a link list class"""
    def __init__(self, list):
        super(link_list, self).__init__()
        pdb.set_trace()
        if list==[]:
            return None
        else:
            self.value = list[0]
            self.next = link_list(list[1:len(list)])
Run Code Online (Sandbox Code Playgroud)

测试代码打印'False':

l=link_list([1,2,3])
print l.next.next.next==None
Run Code Online (Sandbox Code Playgroud)

为什么?

python

1
推荐指数
1
解决办法
366
查看次数