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 操作圖
不能使用方向鍵:上下左右:↑↓←→。
最新評論