opencv圖像處理機器學習真實項目教程(python實現)1電腦視覺簡介

来源:https://www.cnblogs.com/testing-/archive/2023/12/19/17913858.html
-Advertisement-
Play Games

這篇筆記深入介紹了AOP(面向切麵編程),這個技術可以在代碼中以模塊化的方式實現橫切關註點。它解決了業務層代碼中存在的問題,如額外功能代碼的冗餘和每個方法都需要書寫一遍額外功能代碼的情況。 AOP在Spring中的實現主要依靠Aspect切麵、Advice通知和Pointcut切入點的組合。Advi... ...


1 電腦視覺簡介

歡迎來到電腦視覺的世界。 本書將帶您踏上令人興奮且快速發展的電腦視覺和圖像處理世界的旅程。本書首先介紹電腦視覺和OpenCV庫。 然後,我們將繼續介紹本課程的基本庫和所需的環境設置。

主要內容:

  • 電腦視覺簡介
  • 電腦視覺的應用
  • Python
  • OpenCV
    • OpenCV簡史
    • OpenCV 4.7
  • 支持庫
  • 環境設置
    • 安裝Python
    • 包管理器
    • 安裝支持庫
    • 安裝 OpenCV
    • 驗證我們的安裝
    • 集成開發環境
  • 文檔

1.1 電腦視覺簡介

電腦視覺旨在為機器提供像人類一樣識別和分析圖像或視頻的能力。 通過開發教電腦視覺的演算法,電腦視覺有可能顛覆醫療保健和汽車等廣泛行業。

隨著相機質量的提高和獲得優質相機的便利性的提高,世界上的視覺數據量正在爆炸式增長,電腦視覺幫助我們理解這些數據並更好地利用它們。

今天的工程師已經能夠開發出能夠產生類似眼睛的圖像的相機。 隨著電腦學會了觀察的能力,我們的工作就是利用該信息並用它來理解和分析該數據。

你可知道? 典型的相機感測器可以捕獲1680萬種不同的顏色,因為它的位深度為每個顏色通道8位。 然而,人眼只能感知大約1000萬種顏色,因此人眼無法區分所有這些顏色。相機和電腦視覺系統能夠捕獲和處理比人眼能看到的更多的顏色。

電腦視覺是人工智慧的一個子集,其核心是視覺信息。該領域的重點是使電腦能夠處理、分析和解釋圖像數據,並從中生成有意義的見解。

隨著技術的進步,計算能力和相機隨著時間的推移而變得越來越好,該領域已成為當今最有前途的職業之一。 我們能夠捕捉高質量的圖像並以一定的速度處理大量數據,這在幾年前是不可能的。

電腦視覺在各個領域都有廣泛的應用。無論是醫療保健、國防、交通,甚至娛樂,電腦視覺在所有這些領域都展現出了巨大的前景。該領域的創新為這些領域做出了重大貢獻。

1.2 電腦視覺的應用

我們的日常生活中充斥著電腦視覺,從智能手機相機中的自動面部檢測到Instagram帖子或Snapchat濾鏡中圖像質量的改進。 電腦視覺給我們的日常生活留下了深刻的印象。

電腦視覺徹底改變了醫療保健領域。 它極大地提高了診斷速度,幫助醫生提供更精確的診斷。 通過分析相關區域的圖像,可以分析皮膚畸形,幫助診斷皮炎、黑色素瘤等疾病。 使用醫學成像,電腦視覺可以通過分析X射線或MRI掃描來幫助我們瞭解內臟器官的缺陷,從而更快地進行診斷或讓醫生髮現骨折或腫瘤等問題。 無論是使用胸部X光檢查來檢測結核病等疾病,還是分析心臟圖像來檢測心臟病,電腦視覺已經證明瞭醫療領域可以從中受益匪淺。

電腦視覺最有前途的應用之一是幫助視障人士。電腦視覺幫助視障人士駕馭周圍環境,從而提高他們的獨立性。 電腦視覺技術可以分析環境並向用戶提供音頻或觸覺反饋。導航輔助、物體檢測以及面部或文本識別等應用使視障人士受益匪淺。此外,隨著時間的推移,這些技術預計將進一步改進。

微軟的PeopleLens技術可幫助視障兒童和青少年更輕鬆地與同齡人互動。 它是一種頭戴式設備,可以通過空間音頻大聲朗讀已知個體的名字,使學習者能夠瞭解同伴的相對位置和距離。 該技術目前正針對5至11歲的學習者進行多階段研究。

您有沒有想過Snapchat的濾鏡如何如此快速、準確地將效果應用到您的臉上? 答案在於電腦視覺,這項技術席卷了社交媒體。 從改變背景到增強圖像,電腦視覺是一個重要的工具如今社交媒體的重要組成部分。 這些演算法會檢測您的面部特征,並準確地知道如何以及在何處應用特定效果。 iPhone上的動話表情是電腦視覺如何幫助圖像變得栩栩如生的絕佳示例。

社交媒體公司不僅將電腦視覺用於有趣的用例,還用於各種其他目的。 例如,圖像可以被壓縮,同時保持其質量,從而更容易通過互聯網發送它們。社交媒體公司使用電腦視覺來調節內容。演算法用於自動過濾掉不當內容,例如裸體或暴力,無需人工干預。

電腦視覺不僅被用於商業項目,而且還證明瞭它在更無私的努力中的有用性,為地球生命各個方面的進步做出了貢獻。 例如電腦視覺已用於野生動物保護,這有助於保護各種瀕臨滅絕的物種。 監控應用有助於解決偷獵問題,並有助於維持森林健康的生態系統。 與野生動物類似,電腦視覺也有助於植物生命對話。 自然資源保護主義者已經能夠使用電腦視覺來幫助他們完成植物病害檢測、物種識別和棲息地監測等各種用例。

除此之外,電腦視覺領域還有無限的可能性。 已有視頻監控、人臉識別、自動駕駛汽車、機器人、農業、零售、游戲和體育等用例。電腦視覺提供的應用程式數量無窮無盡,並且該列表在未來幾年將繼續增長。

世界以如此快的速度發展。 電腦視覺為嶄露頭角的工程師提供了無盡的令人興奮的機會,以前所未有的方式幫助解決現實生活中的問題。

1.3 Python

為了深入研究電腦視覺的世界,我們首先需要瞭解我們將要使用的包和庫。

Python 由於其易用性和多功能性而成為電腦視覺任務的流行語言,這使其成為一種具有廣泛用途的流行語言。 大量專為圖像處理而設計的庫和工具使其成為電腦視覺應用程式的非凡語言。 此外,龐大的社區支持和跨平臺相容性使其成為任何踏入電腦視覺世界的人的首選。

Python 3是已發佈的最新版本的Python。 它包含Unicode支持,這意味著世界各地的開發人員可以使用多種語言的Python。 Python 3以改進的方式處理異常,這使得開發人員可以輕鬆處理錯誤。 此外,更好的垃圾收集和記憶體管理使 Python 3 比其前身快得多。

Python 3包含豐富的圖像處理庫,並提供許多有利於電腦視覺應用的功能。 因此,它是在該領域使用的優秀語言。

1.4 OpenCV

開源電腦視覺庫 (OpenCV Open-Source Computer Vision Library) 是我們將用於圖像處理應用程式的核心庫。 OpenCV 最初是用 C++ 語言編寫的,儘管它使用Python綁定與Python相容。 OpenCV與Python提供了強大的組合,可用於創建強大的電腦視覺應用程式,並經常用於研究和部署。

OpenCV最初於2000年發佈,是一個開源庫,現已成為使用最全面的電腦視覺庫之一。 它提供了廣泛的圖像處理功能,並用於安全、自動化和醫療保健等各種應用。

OpenCV的另一個主要優勢是它與Python、Java 和 MATLAB等多種編程語言的相容性。 該庫也是跨平臺的,可以在多種系統上運行,包括 Linux、Windows、Mac、Android 和 iOS。 此外,OpenCV 與各種電腦視覺和深度學習框架相容,即 TensorFlow 和 PyTorch(我們將在繼續閱讀後續章節時詳細討論這些框架)。

OpenCV包含大量預構建函數,可用於多種開發任務。 圖像平滑、直方圖、邊緣和輪廓檢測等功能本質上內置於OpenCV庫中,這使得您可以在電腦視覺任務中輕鬆實現這些功能。 這些函數可用於廣泛的操作,包括特征檢測、圖像分割、對象檢測等等。 此外,OpenCV還具有自動記憶體管理功能,可自動分配和釋放記憶體圖像和矩陣運算中的理論,簡化了這些函數的使用並增強了它們的優化。

此外,OpenCV不僅限於圖像處理,它還為視頻分析和視頻處理提供了極好的介面。 它提供使用來自各種來源(例如網路攝像頭和攝像機或遠程 IP 攝像機)的視頻流的功能。 視頻功能允許開發許多可以實時處理視頻的用例。

實時處理視頻的能力開啟了廣泛的可能用例,例如視頻監控和自動駕駛汽車。 利用對象檢測和跟蹤功能,OpenCV改進了視頻監控,並提供了增強的安全解決方案,在許多場景中其表現優於人眼。 電腦視覺催生了另一個新領域,那就是自動駕駛汽車。 通過使用 OpenCV 實時處理視頻的能力以及對象檢測和圖像分割等功能,自動駕駛汽車如今已成為現實。

特斯拉的Autopilot系統已在公共道路上行駛了超過 50 億英里(截至 2021 年 9 月)。 美國國家公路交通安全管理局指出,特斯拉的自動駕駛功能使車禍率降低了高達40%。 特斯拉的汽車不斷收集人類駕駛員的駕駛模式和行為數據,然後利用這些數據逐步增強自動駕駛系統的性能。

1.4.1 OpenCV 簡史

隨著時間的推移,OpenCV 經歷了各種發展,該庫已經發佈了四個主要版本。

OpenCV 1.x是2000年發佈的OpenCV庫的初始版本。它提供了圖像處理的基本電腦視覺演算法,例如邊緣和角點檢測、特征檢測和圖像過濾。

OpenCV 2.x於2009年發佈。它添加了先進的電腦視覺功能,例如對象檢測和對象跟蹤。 該版本引入了“Mat”數據結構,並添加了用於實時分析的GPU加速。 它增加了對多個平臺的支持,包括 Windows、Linux 和 Mac,這使得開發人員能夠在他們選擇的平臺上探索 OpenCV。

OpenCV 3.x 於 2015 年發佈。該版本主要引入了新的深度學習模塊,其中包括 TensorFlow 和 Caffe 等流行的深度學習框架,允許用戶使用神經網路執行各種任務,例如對象分類、對象檢測、 等等。 通過添加對多線程和 SIMD 操作的支持,這比 OpenCV 的早期版本更快、更高效。 該版本具有模塊化結構,用戶可以僅安裝必要的模塊,從而減少了庫的整體大小。 它對現有演算法(例如人臉檢測)進行了改進,還包括多種用於電腦視覺的新演算法(例如 SIFT 和 SURF 特征檢測器)。

OpenCV 4.x 是 OpenCV 的最新版本,於 2018 年發佈。它包括對 Vulkan 圖形的支持,可以在支持硬體上進行更高效的計算。 它還添加了更多框架,例如 PyTorch 和 ONNX,以改進深度學習支持。 添加了一些新的電腦視覺演算法和功能,以實現更好的圖像處理以及各種性能更新,使該庫更快、更高效。 OpenCV 4.x 還為 CUDA 提供了更好的支持,CUDA 代表電腦統一設備架構,是 NVidia 為提高性能而開發的並行處理單元。 OpenCV 4.x 通過添加對深度相機的支持來實現 3D 圖像的使用。

1.4.2 OpenCV

OpenCV 的 4.7於 2022 年 12 月 28 日發佈,包含許多功能,例如:

  • dnn 模塊的改進:新的網路架構、華為 CANN 後端、改進的 OpenVINO 支持以及性能優化。
  • 新的圖像和視頻編解碼器:適用於多頁圖像格式的基於迭代器的 API、libspng、SIMD 加速、Android 上的 H264/H265 支持、Orbbec - - RGB-D 相機後端以及通過 GStreamer 後端 CUDA 12 和視頻編解碼器 SDK 改進的音頻輸入 支持。
  • 新演算法:NanoStack 和 StackBlur。
  • 用於可擴展向量指令 (RISC-V RVV) 的新通用內在後端。

OpenCV 4.8 版本於 2023年7月2日發佈,的主要更新內容如下

  • dnn 模塊的改進:
    • 引入了 TFLite 模型支持
    • 引允許在沒有 protobuf 依賴的情況下構建
    • 引重構 Vulcan 後端以獲得更好的性能和穩健性
    • 引現代 OpenVINO 支持(也在gapi模塊中)
  • 物體檢測:
    • 引FaceDetectorYN 更新至 v2,具有更好的性能和地標支持
    • 引基於ArUco的新型二維碼檢測演算法
    • 引條形碼模塊已從 opencv_contrib 移至 objdetect 模塊
    • 引為模式生成器腳本添加了 Charuco 板支持
  • 圖像和視頻編解碼器:
    • 引通過 libavif 添加了 AVIF 支持
    • 引支持 Orbbec Femto Mega 相機
    • 引修複 OBS 虛擬相機捕捉問題
  • 新函數 cv::hasNonZero 和 cv::reduce 的新 REDUCE_SUM2 模式
  • 更新了 RISC-V RVV 支持以與 LLVM 16 和 GCC 13 相容
  • 生成的 Python 類型stub 文件允許工具和 IDE 獲取函數和類型簽名,從而實現自動完成和靜態類型檢查

參考資料

1.5 支持庫

1.5.1 NumPy

NumPy是一個用於數值計算的 Python 庫,可以使用大型多維數組。 它提供了大量可用於這些數組的數學函數。 它允許我們可以執行創建和操作數組等操作、加法和減法等算術運算以及對這些數組執行三角、統計或對數運算等各種數學函數。

NumPy使我們能夠非常有效地執行數學運算。 它通過利用系統中的多核CPU和顯卡來優化可用計算能力的使用,從而加快數值運算的計算速度。

廣播是 NumPy 的一項強大功能,因為它允許將各種大小和形狀的數組一起用於算術運算。 NumPy通過自動增加或廣播較小數組的大小以匹配較大數組的大小來實現此目的。 這有助於我們輕鬆編寫代碼,因為它消除了使用迴圈或操作不同大小的數組可能需要的任何其他操作的需要。

NumPy通常與其他計算庫結合使用,幫助用戶無縫執行數據分析和可視化等各種應用。 SciPy是一個構建 NumPy之上的庫,它為回歸或數據建模等多種數據分析任務提供支持。 Matplotlib是另一個經常與NumPy一起使用的庫。 Matplotlib是一個用於創建高質量數據可視化的庫。 隨著課程的進展,我們將廣泛使用這些庫。

1.5.2 Matplotlib

Matplotlib 是一個廣泛使用的數據可視化和數據分析庫。 它提供了一系列繪圖功能,幫助用戶創建各種類型的可視化。

可以使用 Matplotlib 創建的一些常見繪圖類型包括線圖、散點圖、直方圖和熱圖。 Matplotlib 還提供了廣泛定製這些圖的能力。 用戶可以選擇他們想要的任何顏色、圖的標題、包括註釋或根據他們的要求調整圖中的軸。

Matplotlib還允許創建子圖,這是在單個圖形中創建多個圖的一種方法。 它還提供許多用於保存繪圖的輸出格式,例如 JPEG、PNG、PDF 等。

Matplotlib通常與NumPy一起使用。 其易於使用的功能以及與其他庫的互操作性使其成為數據科學家和研究人員進行數據可視化的熱門選擇。

1.5.3 SciPy

SciPy 是一個開源庫,為數據分析和可視化提供了廣泛的功能。 它由幫助用戶進行科學和數學計算的模塊組成,包括統計、線性代數、圖像或信號處理等模塊。

SciPy構建在NumPy庫之上。 雖然 NumPy 提供了處理 n 維數組並對其應用一些數學運算的功能,但SciPy更進一步,為數據處理、優化等提供了更複雜和方便的函數。

SciPy與Python中的其他庫無縫集成,例如 NumPy、Scikit-learn 和 Matplotlib。 這使得 SciPy 成為數據分析的強大工具,因為研究人員可以將它與其他庫一起使用,為數據科學創建一個全面的環境。

1.5.4 Scikit-Learn

Scikit-Learn或sklearn是一個機器學習庫,提供了廣泛的機器學習演算法,例如回歸、分類等。 它還為用戶提供了各種數據預處理和模型評估工具,使其成為數據科學家的完整軟體包。

Scikit-learn 構建 NumPy、SciPy 和Matplotlib之上,可以輕鬆地與這些庫集成,從而幫助用戶執行各種應用程式。 它還可以與其他 Python 庫集成,並可以與 TensorFlow 等框架一起使用。

雖然 Scikit-Learn 不是圖像處理庫,但它是用於機器學習任務的強大工具,我們將在本課程後面的部分中實現機器學習演算法時使用它。

1.5.4 Scikit-Image

Scikit-Image是一個圖像處理庫,提供圖像分割、過濾、特征提取等各種演算法。

Scikit-Image 提供與 OpenCV 類似的功能。 然而,它被認為更容易學習、更用戶友好,而 OpenCV 提供了更好的優化,因此具有更好的性能。

與Scikit-Learn 類似,該庫構建在 numpy、scipy 和 matplotlib 之上。 如前所述,OpenCV 是基於 C++ 構建的,並具有 Python 綁定。

雖然我們將主要在電腦視覺之旅中使用OpenCV,但 Scikit-Image 有時在實現特定演算法時會派上用場。

1.5.5 Mahotas

Mahotas 是另一個流行的圖像處理庫,其中包含用於電腦視覺任務的各種演算法。 Mahotas基於NumPy庫構建,並被證明對於許多圖像處理任務來說是高效的。

我們的首要用於圖像處理庫是OpenCV。 然而,我們將在特定用例中使用Mahotas,並將用它來補充 OpenCV。

我們將利用每個圖像處理庫的優勢。

1.5.6 TensorFlow

TensorFlow 是一個用於開發基於深度學習的人工智慧應用程式的開源庫。 開發人員可以使用TensorFlow為圖像識別和自然語言處理等各種用例訓練神經網路。

TensorFlow具有廣泛的功能,這使其成為訓練神經網路的最佳框架之一。 從為移動應用程式創建小型優化模型到大型行業規模模型,TensorFlow可用於訓練任何規模的模型。 它還提供了多種可視化工具來幫助開發人員在訓練時監控和評估他們的模型。 此外,TensorFlow 提供了適應性強的架構,這意味著用戶可以在各種平臺(例如 CPU 或 GPU)上訓練模型。

ChatGPT模型是使用TensorFlow創建的。 使用TensorFlow的一個特定變體,即TensorFlow網格來訓練該模型。 訓練數據估計有數百GB或數TB。 模型參數的數量並未透露,但據傳約為1.75 億個。

谷歌開發了TPU,代表張量處理單元(Tensor Processing Units)。 這些是專門為機器學習任務設計的定製集成電路。 TPU專門為優化矩陣運算而設計,由於記憶體更大,可以並行處理更多數據,並且與其他晶元相比功耗更低。 該晶元設計為與 TensorFlow 配合使用,TensorFlow 現在包含利用 TPU 的特定函數。 通過將 TensorFlow 與該硬體結合使用,用戶可以顯著縮短神經網路訓練時間和模型的推理速度。

您可以使用 Google Cloud(Google 提供的免費筆記本)在TPU上試驗和訓練神經網路模型。

1.5.7 Keras

Keras 是一個易於使用的庫,可幫助用戶快速創建和試驗神經網路。 Keras是一種高級神經網路 API,這意味著用戶不必從頭開始編寫複雜的神經網路代碼,並且可以使用預編碼的構建塊(例如層和激活函數)進行模型開發。

Keras最初是作為神經網路的獨立庫開發的。 不過,Google 在2015年收購了 Keras,自此,Keras就被集成到了 TensorFlow 框架中。

我們主要關註圖像處理和基於OpenCV 的方法,但有一個例子表明神經網路是該領域的重要組成部分,並且有一個專門的章節介紹神經網路,我們使用它來訓練我們自己的神經網路 TensorFlow 和 Keras。

1.5.8 Dlib

Dlib 是一個 C++ 庫,包含用於電腦視覺或自然語言處理任務的各種應用程式。 Dlib 提供了用於各種任務的功能,例如文本分類和支持向量機。 然而,就本書的範圍而言,我們將其限制在圖書館的電腦視覺部分。

Dlib 廣泛應用於電腦視覺應用中的面部識別任務。 Dlib 的人臉識別模型被認為是人臉檢測和識別最可靠的模型之一。 Dlib 模型已經能夠證明這些應用程式的高精度,甚至能夠成功地從具有挑戰性的視頻流中識別和檢測人臉。

Dlib 68 面部點檢測器是一種流行的模型,用於在圖像和視頻中繪製面部標誌點。 預訓練的模型可以檢測人臉上的鼻子、耳朵等68個關鍵點,用戶可以將其用於人臉相關的電腦視覺項目。

1.6 環境設置(略)

在涵蓋了電腦視覺所需的基礎知識和基本庫之後,我們可以繼續設置我們自己的定製電腦視覺環境來執行我們的代碼。

釘釘或微信號: pythontesting 微信公眾號:pythontesting
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 你知道奇怪的移動視口錯誤(也稱為100vh bug)嗎?或者如何以正確的方式創建全屏塊? 一、100vh bug 什麼是移動視口錯誤? 你是否曾經在網頁上創建過全屏元素?只需添加一行 CSS 並不難: .my-page { height: 100vh } 1vh是視口高度的1% ,正是我們所需要的。 ...
  • 基於 Chromium 的瀏覽器占了全球市場的 7 成!對於前端開發來說,Chrome 更是形影不離的飯碗級軟體
  • 前言 經過上個章節的介紹,大家可以瞭解到 uni-app-數據緩存 的基本使用方法 那本章節來給大家介紹一下 uni-app-pinia存儲數據 的基本使用方法 經過我這麼多篇章的介紹,我發現大家環境比較耗時,所以在今後的文章中,我會儘量減少環境的搭建 如果某一篇的文章環境確實是不一樣的,我會在文章 ...
  • 1. 行為準則 2. 需求的不確定性 2.1. 不斷變化的客戶需求 2.2. 軟體項目無法避免的挑戰 2.3. 產品需求和環境會隨著時間的推移而改變,你的應用程式也必須隨之改變 2.4. 不斷變化的需求會導致不穩定性,使開發工作偏離軌道 2.5. 通過構建可演進的架構來適應不斷變化的需求 2.5.1 ...
  • 3.1、環境搭建 3.1.1、在project創建新module 3.1.2、選擇maven 3.1.3、設置module名稱和路徑 3.1.4、module初始狀態 3.1.5、引入springboot父工程 <parent> <groupId>org.springframework.boot</ ...
  • 1. 線程池相關基本概念 任務(Task):任務是線程池中要執行的工作單元。任務可以是實現了 Runnable 介面或 Callable 介面的對象。Runnable 任務沒有返回值,而 Callable 任務可以返回一個結果。 線程池管理器(ThreadPool Manager):線程池管理器是用 ...
  • GoFrame Helper是一款適用於 Goland/IntelliJ IDEA Ultimate插件,它為 GoFrame 提供 ORM, Config, OpenApi 結構體標簽代碼輔助;Api, Controller, Service 代碼模板;監聽 Api, Logic 自動生成對應的 ... ...
  • 1. 賦值語句的特點 賦值語句創建對象的引用:賦值語句總是創建對象的引用,而不是複製對象。因此,Python中的變數更像是指針,而不是數據儲存區域。 變數在首次賦值時會被創建:因此不需要提前聲明變數。 變數在引用前必須先賦值:如果引用未賦值的變數會報錯 2. 賦值語句的形式 (1. 普通形式 >>> ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...