2024/10/09
Python程式碼
import cv2
import numpy as np
import winsound # 用於播放提示音
import pyautogui # 用於截取螢幕畫面
import time
import keyboard # 用於偵測鍵盤輸入
def main():
brightness = 1.0 # 初始亮度
previous_frame = None # 用於儲存前一幀影像
# 等待5秒再開始偵測螢幕訊息
print("等待 5 秒後開始偵測螢幕訊息...")
time.sleep(5)
running = True
try:
while running:
# 如果按下 ESC 鍵,則退出迴圈
if keyboard.is_pressed('esc'):
print("偵測到 ESC 鍵,程式結束中...")
running = False
break
# 截取螢幕畫面
screenshot = pyautogui.screenshot()
# 將螢幕畫面轉換為 numpy 數組
frame = np.array(screenshot)
# 調整亮度
frame = cv2.convertScaleAbs(frame, alpha=brightness, beta=0)
# 如果有前一幀,與當前幀進行比較
if previous_frame is not None:
diff = cv2.absdiff(cv2.cvtColor(previous_frame, cv2.COLOR_BGR2GRAY),
cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))
diff_score = np.sum(diff) # 計算變化的總和
if diff_score > 5000000: # 設置變化閾值
# 播放簡單的 Beep 聲音,頻率為 1000 Hz,持續時間為 500 毫秒
winsound.Beep(1000, 500)
# 更新前一幀
previous_frame = frame.copy()
# 添加短暫延遲,避免過於頻繁地截取螢幕畫面
time.sleep(0.1)
finally:
print("釋放資源,程式已結束")
if __name__ == "__main__":
main()