付費限定

[OpenCV][Python]Win10+Cmake+VS2022編譯 OpenCV 及opencv_contrib

更新於 2024/10/10閱讀時間約 7 分鐘

你還沒有編譯 OpenCV,那麼你需要先完成 OpenCV 的編譯過程,這樣才能生成 OpenCVConfig.cmake 文件。下面是一步一步的指南,幫助你在 Windows 上編譯 OpenCV。

本文主要介紹使用Cmake + VS2022來編譯OpenCV,最後目的是讓OpenCV可以利用 CUDA 加速進行深度神經網絡(DNN)推理。


CUDA安裝方式參考另外一篇

[Python]安裝CUDA + cuDNN


步驟 1:下載必要的Source code

  1. 下載 OpenCV 源碼: 前往 OpenCV GitHub 頁面 或使用以下 Git 指令下載 OpenCV Source code:
    git clone https://github.com/opencv/opencv.git

    下載指定版本

    raw-image
  2. 下載 opencv_contrib(可選): 如果你需要額外的模組(例如 DNN 模組),下載 opencv_contrib
    git clone https://github.com/opencv/opencv_contrib.git

步驟 2:安裝必要的編譯工具

安裝 CMake: 前往 CMake 官網 下載並安裝 CMake。

raw-image
  1. 安裝 Visual Studio: 你需要 Visual Studio 作為編譯工具。可以安裝 Visual Studio 2019 或 2022,並確保安裝了 C++ 編譯工具。

如要下載Visual Studio Installer,記得勾選「桌面開發 C++」工作負載。

  1. 安裝 CUDA(可選): 如果你希望啟用 CUDA 加速,安裝 NVIDIA CUDA Toolkit 並配置好你的系統。

步驟 2:打開 CMake GUI

  1. 打開 CMake GUI
  2. 設置源碼目錄和編譯目錄
    • 在「Where is the source code」欄位中,選擇你解壓縮的 OpenCV 源碼目錄,例如 D:/OpenCV/opencv-4.x/opencv-4.x。
    • 在「Where to build the binaries」欄位中,選擇一個新的空目錄來存放編譯後的文件,例如 D:/OpenCV/Build。
raw-image
  1. 點擊「Configure」
    • 點擊「Configure」按鈕。
    • CMake 會要求你選擇一個生成器(編譯器)。如果你在 Windows 上使用 Visual Studio,選擇相應的 Visual Studio 版本(例如 Visual Studio 2019 或 Visual Studio 2022),並選擇 x64 平台。
    • 點擊「Finish」進行初次配置。
以行動支持創作者!付費即可解鎖
本篇內容共 2594 字、2 則留言,僅發佈於[Python][OpenCV]學習心得筆記你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
128會員
209內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
[OpenCV][Python]使用GrabCut 來去背 在上篇文章提到如何用GrabCut 來去背,但都是處於比較基礎的方式,讓演算法自行判斷前景背景,本文主要說明,使用設定參數讓演算法計算得更加準確,可根據UI上的圖顯示,用滑鼠畫區域來設定參考的背景與前景。 UI圖顯示 步驟,先載圖,在
本文詳細探討了Tesseract的box定義。經驗分享釐清了Tesseract與cv2.rectangle的座標差異,解釋了怎樣使用JTessBoxEditor進行框的驗證。透過範例,讀者將瞭解如何正確設置字符的bounding box,並學會轉換OCR座標為Tesseract所需格式
本文主要介紹使用Numpy實現一個尋找邊界的方法,在用這個方法延伸去判斷2D條碼中圖案L角,根據預定義的方向角度對應表來判斷圖像的角度(0 度、90 度、180 度或 270 度) 設計邏輯 數據過濾: 函式 __filtered_positions 確保在對數據進行處理之前,能夠有效地過濾
色階調整去霧技術是一種圖像增強技術,通過調整圖像的亮度和對比度來減少或消除霧氣的影響。主要依賴於圖像的直方圖,通過分析圖像中像素亮度的分佈來增強細節、提高對比度,使得被霧氣模糊的細節得以還原。以改善模糊或灰濛的圖像。 本文主要利用了圖像去霧技術中的暗通道先驗(Dark Channel Prior)
本文將實測,使用同一組圖像,用不同的OCR模型來辨識看成效如何,主要介紹如何從資料夾中,讀取圖片檔中的檔名來比對tesseract OCR的結果是否一致,若結果不同就記錄其錯誤位置及次數,統計最後的誤判率及誤判字的總次數。 圖片檔中的檔名由事先整理出正確結果,比對OCR模型用。
在Tesseract的討論論壇中看到一篇文章,有人研究tesseract在文字高度在30~33pixl~內辨識率是最佳的。 本文就將來實作看看,拿出之前實驗用的OCR圖檔來跑跑看。 實驗內容 縮放與不縮放的圖片在tesseract OCR結果比較 圖片縮放流程 先讀取圖片中OCR的高度,取
[OpenCV][Python]使用GrabCut 來去背 在上篇文章提到如何用GrabCut 來去背,但都是處於比較基礎的方式,讓演算法自行判斷前景背景,本文主要說明,使用設定參數讓演算法計算得更加準確,可根據UI上的圖顯示,用滑鼠畫區域來設定參考的背景與前景。 UI圖顯示 步驟,先載圖,在
本文詳細探討了Tesseract的box定義。經驗分享釐清了Tesseract與cv2.rectangle的座標差異,解釋了怎樣使用JTessBoxEditor進行框的驗證。透過範例,讀者將瞭解如何正確設置字符的bounding box,並學會轉換OCR座標為Tesseract所需格式
本文主要介紹使用Numpy實現一個尋找邊界的方法,在用這個方法延伸去判斷2D條碼中圖案L角,根據預定義的方向角度對應表來判斷圖像的角度(0 度、90 度、180 度或 270 度) 設計邏輯 數據過濾: 函式 __filtered_positions 確保在對數據進行處理之前,能夠有效地過濾
色階調整去霧技術是一種圖像增強技術,通過調整圖像的亮度和對比度來減少或消除霧氣的影響。主要依賴於圖像的直方圖,通過分析圖像中像素亮度的分佈來增強細節、提高對比度,使得被霧氣模糊的細節得以還原。以改善模糊或灰濛的圖像。 本文主要利用了圖像去霧技術中的暗通道先驗(Dark Channel Prior)
本文將實測,使用同一組圖像,用不同的OCR模型來辨識看成效如何,主要介紹如何從資料夾中,讀取圖片檔中的檔名來比對tesseract OCR的結果是否一致,若結果不同就記錄其錯誤位置及次數,統計最後的誤判率及誤判字的總次數。 圖片檔中的檔名由事先整理出正確結果,比對OCR模型用。
在Tesseract的討論論壇中看到一篇文章,有人研究tesseract在文字高度在30~33pixl~內辨識率是最佳的。 本文就將來實作看看,拿出之前實驗用的OCR圖檔來跑跑看。 實驗內容 縮放與不縮放的圖片在tesseract OCR結果比較 圖片縮放流程 先讀取圖片中OCR的高度,取
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
此篇為上一篇文章的延伸,先辦別是螺絲還是螺母才擷取出影像。 [OpenCV應用][Python]利用findContours辨識螺絲還是螺母 因為可能會需要另外處理螺絲與螺母才可以準確地去做量測,所以第一步就是先分割出這兩種的圖像。
Thumbnail
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和影像處理庫,它提供了豐富的功能和工具,可用於開發各種視覺應用程式。 OpenCV最初是用C++編寫的,但它也提供了Python、Java等多種程式語言的接口,方便不同語言的開發者使用。
Thumbnail
大部分在求物件的寬度及高度,都會想到用OpenCV的findContours函式來做,從找到的輪廓中來計算物件的面積,周長,邊界框等屬性,從而得到物體的寬度與高度 [OpenCV應用][Python]利用findContours找出物件邊界框求出寬度及高度 本文將用不同的方法,利用Numpy
Thumbnail
本文將利用OpenCV的findContours函式,從找到的輪廓中來計算物件的面積,周長,邊界框等屬性,從而得到物體的寬度與高度。 一般來說,我們在進行輪廓檢測時,會先進行圖像二值化,將對象轉換為白色,背景為黑色。這樣,在找到輪廓後,輪廓的點就會以白色表示,背景為黑色。 結果圖 從圖中綠色框
Thumbnail
[影像處理_OpenCV Python]使用Python撰寫影像處理功能,圖片遮罩或濾除掉不要的地方,旋轉圖片 以下範例將呈現影像處理三種不同的應用: 遮罩的實現 濾除 旋轉
Thumbnail
軟體版本:CLIP STUDIO PAINT Ver.1.12.0 這裡預設讀者知道電腦繪圖的基本常識,並且有能力繪製一張彩色插畫,所以不會介紹任何基本概念,例如:圖層是什麼、色相環如何使用...等,也不會提到 CSP 繪圖環境設置(因為我就直接使用預設XD),如果需要基本教程,可以試試看 CLI
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
Thumbnail
此篇為上一篇文章的延伸,先辦別是螺絲還是螺母才擷取出影像。 [OpenCV應用][Python]利用findContours辨識螺絲還是螺母 因為可能會需要另外處理螺絲與螺母才可以準確地去做量測,所以第一步就是先分割出這兩種的圖像。
Thumbnail
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
Thumbnail
本文將介紹影像的基本操作包括:影像的讀取、顯示、保存,以及一些常見的操作如裁剪、旋轉、縮放等。 語法介紹 讀取影像: cv2.imread函數的參數是影像的檔案路徑。讀取後的影像以NumPy的ndarray形式表示。
Thumbnail
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和影像處理庫,它提供了豐富的功能和工具,可用於開發各種視覺應用程式。 OpenCV最初是用C++編寫的,但它也提供了Python、Java等多種程式語言的接口,方便不同語言的開發者使用。
Thumbnail
大部分在求物件的寬度及高度,都會想到用OpenCV的findContours函式來做,從找到的輪廓中來計算物件的面積,周長,邊界框等屬性,從而得到物體的寬度與高度 [OpenCV應用][Python]利用findContours找出物件邊界框求出寬度及高度 本文將用不同的方法,利用Numpy
Thumbnail
本文將利用OpenCV的findContours函式,從找到的輪廓中來計算物件的面積,周長,邊界框等屬性,從而得到物體的寬度與高度。 一般來說,我們在進行輪廓檢測時,會先進行圖像二值化,將對象轉換為白色,背景為黑色。這樣,在找到輪廓後,輪廓的點就會以白色表示,背景為黑色。 結果圖 從圖中綠色框
Thumbnail
[影像處理_OpenCV Python]使用Python撰寫影像處理功能,圖片遮罩或濾除掉不要的地方,旋轉圖片 以下範例將呈現影像處理三種不同的應用: 遮罩的實現 濾除 旋轉
Thumbnail
軟體版本:CLIP STUDIO PAINT Ver.1.12.0 這裡預設讀者知道電腦繪圖的基本常識,並且有能力繪製一張彩色插畫,所以不會介紹任何基本概念,例如:圖層是什麼、色相環如何使用...等,也不會提到 CSP 繪圖環境設置(因為我就直接使用預設XD),如果需要基本教程,可以試試看 CLI