【OpenCV】繪制桌面鎖屏時鐘

OpenCV 是一個開源的計算機視覺(Computer Vision)與機器學習軟件庫,提供了多種圖像處理算法與接口,用于解決計算機視覺相關問題。OpenCV 支持多平臺與多語言,本文主要記錄如何使用 OpenCV-Python 繪制桌面鎖屏時鐘。

目錄

1 準備工作

2 程序設計

3 改進


1 準備工作

? ? ? ?首先安裝 Numpy 庫和 OpenCV-Python 庫,可以使用 pip 直接下載和安裝,輸入以下命令:

pip install numpy
pip install opencv-python

安裝完成之后,使用以下代碼查看 Numpy 和 OpenCV 版本:

import numpy as np
print(np.__version__)
import cv2
print(cv2.__version__)

cv2 是 OpenCV 的最新版本,控制臺打印版本號就說明庫安裝好了。

? ? ? ? 接下來準備一張圖片,分辨率建議 2K 以上,用于后續全屏顯示的背景。需要注意 OpenCV 庫支持以下類型的圖片格式:

  • Windows bitmaps – *.bmp, *.dib
  • JPEG files – *.jpeg, *.jpg
  • Portable Network Graphics – *.png?
  • WebP – *.webp?
  • Sun rasters – *.sr, *.ras?
  • TIFF files – *.tiff, *.tif?

2 程序設計

? ? ? ?在桌面鎖屏時鐘程序中,主要使用了OpenCV庫的以下幾個函數:

  • cv2.imread()
  • cv2.putText()
  • cv2.imshow()

cv2.imread() 函數用于加載背景圖片,函數用法如下:

Syntax:?cv2.imread(path, flag)

flag:?cv2.IMREAD_COLOR,?cv2.IMREAD_GRAYSCALE, ect.

cv2.putText() 函數用于在圖像上繪制文本,函數用法如下:

Syntax:?cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

cv2.imshow() 函數用于顯示圖像,函數用法如下:

Syntax:?cv2.imshow(window_name, image)

在 OpenCV 中讀取和顯示圖像的步驟如下:

  1. 使用 cv2.imread() 讀取圖像。
  2. 創建一個 GUI 窗口并使用 cv2.imshow() 顯示圖像。
  3. 使用函數 cv2.waitkey() 等待用戶操作。
  4. 使用 cv2.destroyAllWindows()?從內存中刪除圖像窗口。

桌面鎖屏時鐘應用程序代碼如下:

#-*- Coding: utf-8 -*-import cv2
import numpy as np
from datetime import datetime"""putText()用法:cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])"""def main():# 加載背景圖像path = r'./src/Appearance.png'img_bg = cv2.imread(path, cv2.IMREAD_COLOR)# 獲取寬、高信息h, w, _ = img_bg.shape# 定義字體屬性font = cv2.FONT_HERSHEY_TRIPLEXorg = (w//3, h//8)fontScale = 15fontColor = (255, 255, 255) # in BRG modethickness = 12# 創建窗口,并設置全屏屬性cv2.namedWindow('win', cv2.WINDOW_NORMAL)cv2.setWindowProperty('win', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)while True:# 獲取當前時間current_time = datetime.now().strftime('%H:%M:%S')# 使用np.copy()進行深拷貝,并添加時間img = cv2.putText(np.copy(img_bg), current_time, org, font, fontScale, fontColor, thickness)# 顯示圖像cv2.imshow('win', img)if cv2.waitKey(10) & 0xFF == 27:# 等待10ms, 監測Esc按下事件break# 關閉窗口cv2.imwrite('./src/screen_clock.png', img)cv2.destroyAllWindows()if __name__ == "__main__":main()

以下是顯示效果:

3 改進

? ? ? ? 本文主要使用 OpenCV 庫的 putText() 函數,在背景圖上添加時間,實現桌面鎖屏時鐘功能。后續有時間的話,可以考慮使用自定義字體(非 OpenCV 自帶字體),還可以進一步添加日期、天氣等信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712744.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712744.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712744.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一、環境配置

一、下載Ubuntu18.04版本鏡像 我的電腦配置比較低(08年奧運限定版哦),使用的是虛擬機VMware進行安裝Ubuntu18.04版,跟書上使用的一樣 Ubuntu 18.04鏡像 別下載錯了哈 二、VMware下安裝Ubuntu18.04操作系統 之前寫過相關的博文,詳細配置可…

軟件測試——性能測試

目錄 一、性能測試簡介 二、性能測試指標 三、性能測試的流程 四、Jmeter簡介 五、Jmeter常見測試框架 六、Jmeter錄制腳本 七、腳本增強 八、Jmeter腳本參數化 九、斷言 十、關聯 十一、JDBC請求 十二、分布式測試 十三、性能測試報告 一、性能測試簡介…

API接口技術開發拼多多接口鏈接采集實時銷量、SKU信息、券后價格、優惠券信息API接入步驟及演示示例

要實現拼多多接口鏈接采集實時銷量、SKU信息、券后價格、優惠券信息API接入步驟及演示示例,首先需要了解拼多多開放平臺的相關API接口。以下是一個簡單的Java示例,使用requests庫調用拼多多開放平臺的API接口: 注冊并登錄開放平臺&#xff0c…

【LeetCode】一周中的第幾天+ 一年中的第幾天

2023-12-30 文章目錄 一周中的第幾天方法一:模擬思路步驟 方法二:調用庫函數方法三:調用庫函數 [1154. 一年中的第幾天](https://leetcode.cn/problems/day-of-the-year/)方法一:直接計算思路: 方法二:調用…

react Hook useEffect的基本使用及注解

一、概述 useEffect是React提供的一個Hook,用于在函數組件中執行副作用操作。副作用操作通常包括數據獲取、訂閱事件、手動操作DOM等。useEffect可以讓我們在函數組件中模擬類組件的生命周期方法(如componentDidMount、componentDidUpdate、componentWi…

vue3+ts實現圖片預覽功能

首先&#xff0c;需要創建一個Vue組件&#xff0c;用于顯示圖片和預覽圖。 <template><div><img :src"imageSrc" mouseover"showPreview" mouseout"hidePreview" /><div v-if"previewVisible" class"previ…

【計算機考研】學碩還是專碩?

這里面沒有什么更好的選擇&#xff0c;大家都知道專碩錄取人數多&#xff0c;學碩錄取人數上&#xff0c;博弈一直存在 單就考研的難度上來說&#xff0c;專碩的難度確實要比學說低很多的&#xff0c;同樣的專業課的情況下&#xff0c;專碩的考研數學考的是數學二和英語二&…

rk3568 gamc0 控制器寄存器配置不了導致連接不上phy

系統啟動 GMAC 的驅動開機 log 上出現打印&#xff1a;No PHY found 或者 Cannot attach to PHY。查閱rk 官方gmac 配置指導手冊出現改問題的原因可能如下&#xff1a; 但反復檢查硬件和軟件發現都沒問題。看內核啟動日志發現gamc0 在啟動過程中讀取gmac0 的版本id是讀取不到&a…

P2440 木材加工

題目背景 要保護環境 題目描述 木材廠有 &#xfffd;n 根原木&#xff0c;現在想把這些木頭切割成 &#xfffd;k 段長度均為 &#xfffd;l 的小段木頭&#xff08;木頭有可能有剩余&#xff09;。 當然&#xff0c;我們希望得到的小段木頭越長越好&#xff0c;請求出 &a…

表格自定義音頻播放組件

1.在使用的地方調用 <Audiosvue ref"audio" class"audio-box" :audioFile"item.cont"></Audiosvue> 2.引入組件 import Audiosvue from "/components/audio"; 3.組件 <template><div><div style"d…

優化Vue項目中 WebStorm:2023.3 對 CSS 和 HTML 的默認注釋

前言 WebStorm是一種基于JetBrains IntelliJ平臺的集成開發環境&#xff08;IDE&#xff09;&#xff0c;專門用于Web開發。它支持JavaScript、HTML和CSS等語言&#xff0c;并提供了豐富的功能和工具&#xff0c;以提高開發人員的效率。但是&#xff0c;在開發Vue項目中發現&a…

(科目三)計算機操作系統

1、操作系統的基本概念及功能 1.1概念 一、操作系統的概念 操作系統是運行在裸機之上的&#xff0c;控制和管理計算機硬件和軟件資源、合理組織計算機工作流程一級方便用戶操作的程序集合。 操作系統由一套分層次的控制程序組成&#xff0c;是計算機硬件的一級擴充是軟件系…

【爬蟲逆向實戰 逆向滑塊 Python+Node】今天逆向的網站有點嘿嘿,還是僅供學習,別瞎搞

逆向日期&#xff1a;2024.03.01 使用工具&#xff1a;Node.js、Python 加密方法&#xff1a;AES標準算法 文章全程已做去敏處理&#xff01;&#xff01;&#xff01; 【需要做的可聯系我】 AES解密處理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 標準算…

Java底層自學大綱_互聯網安全設計篇

互聯網安全設計專題_自學大綱所屬類別學習主題建議課時&#xff08;h&#xff09; A 互聯網安全架構平臺設計001 如何防御XSS攻擊與防止抓包篡改數據2.5 A 互聯網安全架構平臺設計002 spring security實現動態權限控制2.5 A 互聯網安全架構平臺設計003 spring security整合j…

基于RISC-V架構的通信DSP的設計以及在5G RedCap基帶中的應用(六)-結論與展望

6 結論與展望 6.1 研究成果總結 基于RISC-V架構的向量指令集和通訊擴展指令集在5G Redcap基帶處理器中的應用&#xff0c;可以有效提升處理器在處理大量數據時的性能以及滿足特定應用需求的無線通訊能力。隨著5G技術的發展&#xff0c;對于滿足特定應用需求的行業&#xff0c;…

CentOS7 Mysql 忘記密碼或臨時密碼進不去時怎么跳過密碼進去然后再更改密碼

CentOS7 Mysql 忘記密碼或臨時密碼進不去時怎么跳過密碼進去然后再更改密碼 1、進文件 vi /etc/my.cnf2、加skip-grant-tables設置跳過密碼 在[mysqld]下面加 skip-grant-tables3、mysql -u root -p直接回車無密碼進去mysql mysql -u root -p3、先更新&#xff0c;不執行這…

實現unity場景切換

本文實現兩個按鍵實現場景1和場景2之間的切換 ①首先在unity 3D中創建兩個場景&#xff0c;分別為Scene1和Scene2 ②在Scene1中創建一個Button&#xff0c;修改txt內容為“To Scene2”&#xff0c;并在Buttons下創建一個空物體&#xff0c;用于掛載腳本。 腳本Trans Scene.…

操作系統x面試|進程與線程

1. 線程進程的區別 進程可以稱為是資源分配的最小單元&#xff0c;而線程可以稱為是處理器分配的最小單元。 資源包括內存空間。同時進程是一段代碼的執行過程&#xff0c;這段代碼需要多少的內存在代碼確定時已經確定下來了。 處理器就是執行單元&#xff0c;一個進程可以拆解…

程序員的金三銀四求職寶典

程序員的金三銀四求職寶典 金三銀四&#xff0c;即三月和四月&#xff0c;是程序員求職的黃金時期。在這個關鍵時期&#xff0c;求職者們需要做好充分的準備&#xff0c;以便在面試中脫穎而出。以下是一些建議&#xff0c;幫助程序員在金三銀四期間更好地準備求職&#xff1a;…

【DAY06 軟考中級備考筆記】數據結構:樹

數據結構&#xff1a;樹 3月1日 – 天氣&#xff1a;晴 之前在B站看的視頻講的是在太過簡單&#xff0c;棄了。現在換了新的視頻繼續&#xff0c;后續會重新看前面的視頻補過來。https://www.bilibili.com/video/BV1pT4m1S7uH/ 1. 樹的基本概念 需要注意的是&#xff1a; 并不是…