Python OpenCV cv.WaitKey 在 Ubuntu 模 256 映射上正确吐出奇怪的输出 您所在的位置:网站首页 pythonopencv官方文档 Python OpenCV cv.WaitKey 在 Ubuntu 模 256 映射上正确吐出奇怪的输出

Python OpenCV cv.WaitKey 在 Ubuntu 模 256 映射上正确吐出奇怪的输出

2023-03-23 12:56| 来源: 网络整理| 查看: 265

回答问题

我正在使用 OpenCV 2.2 运行 Ubuntu 11.10 (Lenovo T400)(我相信导入是作为 import cv2.cv as cv 完成的)。如果我只是“导入 cv”,也会发生此问题。

我最近开始遇到这个问题,这有点奇怪。我不知道我做了什么重要的事情,自从它开始发生以来我已经重新开始了。我安装了几个程序,但我认为这些不会影响这一点。

当我使用显示的人造图像(只是黑色图像)运行时,我尝试轮询 cv.WaitKey(10)。它吐回垃圾。

这是我的 OpenCV 代码:

import cv2.cv as cv import time cv.NamedWindow("camera", 1) img = cv.CreateImage((400,400), 8, 3) valkeys = range(1,255) f = open('/home/andrew/webuploads/keyboardtest', 'wb') while True: cv.ShowImage("camera", img) k = cv.WaitKey(10) if k is -1: pass else: print 'writing %s' %str(k) f.write((str(k)+' ')) f.close()

这是我从程序中得到的输出:

1048678 1048676 1048673 1048691 1048676 1048678 1048689 1048695 1048677 1048688 1048687 1048681 1048677 1048677 1048695 1048624 1048633 1048690 1048633 1048624 1048695 1048677 1048690 1048624 1048633 1048681 1048677 1048681 1048688 1048687 1048677 1048681 1048692 1048688 1048681 1048688 1048687 1048681 1048681 1048688 1048687 1048585 1048687 1048681 1048688 1048687 1048681 1114085 1179728 1179727 1179721 1179728 1179721 1245153 1245289 1179727 1179721 1179727 1179721 1179728 1179727 1245155 1441865 1179728 1179727 1179721 1179728 1179727 1179721 1179728 1179727 1179718 1179721 1179716 1179728 1179727 1179731 1179721 1179713 1179728 1179727 1179687 1179723 1179716 1179736 1179724 1179715 1179734 1179725 1179692 1179736 1179738 1179725 1179715 1179734 1179692 1245155 1441859

现在我可以对这些数字取模 256 并得到一些合理的结果(刚刚尝试过,它正确识别了我所有的键),但是,我为什么需要这样做呢?它以前没有做任何事情就可以工作(打印 chr(k) 会给我一封信)。有人有想法么?

Answers

模数之所以有效,是因为有关密钥的信息存储在返回值的后 8 位中。k & 255还将选择最后 8 位:

>>> k = 1048678 >>> chr(k & 255) 'f'

在Python中,chr(n)会返回_n_对应的字符。不幸的是,OpenCV 文档没有提供有关此问题的信息。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有