首頁>其它>

1 opencv方向鍵取值

===============

1.1 這是一個坑,不能使用方向鍵:上下左右:↑↓←→。

1.2 Deepin-linux華為膝上型電腦的python的opencv的方向鍵取值問題,則是一個巨大的坑。

1.3 方向鍵:(不同的作業系統值不一樣)

- 上(↑):?

- 下(↓):?

- 左(←):?

- 右(→):?

bg.jpeg

2 環境

=====

2.1 Deepin-linux華為膝上型電腦

2.2 python3.8+opencv4.2.0

3 程式碼1的取值

===========

3.1 程式碼

import cv2#讀取bg圖片img = cv2.imread('/home/xgj/Desktop/cv2-keyevent/bg.jpeg',cv2.IMREAD_UNCHANGED)#原圖大小顯示cv2.imshow('image',img)#常規字母鍵k = cv2.waitKey(0)#獲取del和shfit#k = cv2.waitKeyEx(0)print('key =', k)cv2.destroyAllWindows()

3.2 w s a d字母按鍵取值

#k = cv2.waitKey(0) 和k = cv2.waitKeyEx(0)

# 兩者的結果是一樣的

#w

key = 119

#s

key = 115

#a

key = 97

#d

key = 100

3.3 del鍵和shift鍵

k = cv2.waitKeyEx(0)

#del鍵

key = 65535

#shift鍵

key = 65506

k = cv2.waitKey(0)

#del鍵

key = 255

#shift鍵

key = 226

===取不到方向鍵:上下左右鍵===?

4 程式碼2的取值

===========

4.1 程式碼2

import cv2#讀取圖片img = cv2.imread('/home/xgj/Desktop/cv2-keyevent/bg.jpeg',cv2.IMREAD_UNCHANGED)key =0#按esc退出=27while key != 27:         cv2.imshow('xxx', img)    #常規取值       #key = cv2.waitKey()        #取方向鍵值bug    key = cv2.waitKeyEx()    # 如果獲取的鍵值小於256則作為ascii碼輸出對應字元,否則直接輸出值    msg = '{} is pressed'.format(chr(key)if key < 256 else key)    print(msg)     print(key)

4.2 第一次

#第一次取值

R is pressed

T is pressed

Q is pressed

S is pressed

4.3 再次就取不到值

按道理,應該到的值為:

- 上(↑):65362

- 下(↓):65364

- 左(←):65361

- 右(→):65363

可是按鍵後沒反應,那就當然取不到這些值了。

這是why?

4.5 操作圖

不能使用方向鍵:上下左右:↑↓←→。

32
最新評論
  • 康明斯6bt發動機
  • 禮服裙要搭配的好 這四個要點要記牢 顯瘦還高階