OpenCV 安裝使用教程

一、OpenCV 簡介

OpenCV(Open Source Computer Vision Library)是一個開源計算機視覺和機器學習軟件庫,提供了超過 2500 個優化的算法,用于實時圖像處理、視頻分析、對象識別、人臉檢測、機器學習等任務。

Python 提供了對 OpenCV 的完整綁定接口:cv2


二、安裝 OpenCV

2.1 使用 pip 安裝(推薦)

pip install opencv-python
pip install opencv-python-headless  # 若不需要 GUI 窗口(如服務器環境)

2.2 使用 Anaconda 安裝

conda install -c conda-forge opencv

2.3 驗證安裝

import cv2
print(cv2.__version__)

三、OpenCV 基本操作

3.1 讀取并顯示圖像

import cv2img = cv2.imread('example.jpg')
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意:某些平臺不支持 cv2.imshow,建議使用 Jupyter 的 matplotlib 顯示。

3.2 灰度圖轉換

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

3.3 圖像保存

cv2.imwrite('gray.jpg', gray)

四、攝像頭訪問與視頻處理

cap = cv2.VideoCapture(0)while True:ret, frame = cap.read()if not ret:breakcv2.imshow('Live', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
cv2.destroyAllWindows()

五、常見圖像處理功能

5.1 圖像縮放與裁剪

resized = cv2.resize(img, (200, 200))
cropped = img[50:150, 100:200]

5.2 邊緣檢測

edges = cv2.Canny(img, 100, 200)

5.3 模糊處理

blur = cv2.GaussianBlur(img, (5, 5), 0)

六、圖像繪圖功能

cv2.line(img, (0, 0), (100, 100), (0, 255, 0), 2)
cv2.rectangle(img, (50, 50), (150, 150), (255, 0, 0), 2)
cv2.circle(img, (100, 100), 50, (0, 0, 255), -1)

七、常見問題

Q1: 安裝失敗或速度慢?

可使用清華鏡像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

Q2: GUI 顯示函數報錯?

使用 headless 版本的 opencv 可能無法使用 cv2.imshow(),需要使用非 headless 版本:

pip uninstall opencv-python-headless
pip install opencv-python

八、學習資源推薦

  • OpenCV 官方文檔
  • OpenCV-Python Tutorials
  • PyImageSearch 教程
  • 《OpenCV 4 編程實戰》

本文由“小奇Java面試”原創發布,轉載請注明出處。

可以搜索【小奇JAVA面試】第一時間閱讀,回復【資料】獲取福利,回復【項目】獲取項目源碼,回復【簡歷模板】獲取簡歷模板,回復【學習路線圖】獲取學習路線圖。

在這里插入圖片描述

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

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

相關文章

【SNN脈沖神經網絡3】HH神經元軟件仿真

本篇文章主要核心目的在于研究明白HH神經元的數學模型,并且驗證其正確性。因此,在本篇文章中只會使用numpy函數庫用于構建神經元,以及matplotlib用于繪圖。1.導入對應的庫import numpy as np import matplotlib.pyplot as plt import re impo…

「日拱一碼」014 Python常用庫——Pandas

目錄 數據結構 pandas.Series :一維數組,類似于數組,但索引可以是任意類型,而不僅僅是整數 pandas.DataFrame :二維表格型數據結構,類似于 Excel 表格,每列可以是不同的數據類型 數據讀取與寫…

狂命爆肝21天,共51K字的JAVA學習筆記奉上,JAVA從入門到精通一文搞定,一文在手JAVA無憂

背景知識 Java 相關概念 JavaSE (Java Standard Edition): 基礎版,用于開發桌面應用程序。JavaEE (Java Enterprise Edition): 企業版,用于開發企業級應用程序。JavaME (Java Micro Edition): 微型版,用于開發嵌入式系統和移動設備應用程序…

Dijkstra 算法#圖論

Dijkstra 算法 算法前提:在沒有負邊的情況下使用。算法思路:將結點分成已確定最短路長度的點集 S 和未確定最短路長度的點集 T,每次從 T 集合中選取最短路長度最小的結點移到 S 集合中,并對其出邊執行更新操作 從T集合中&#x…

開源與閉源大模型的生態與技術對比:以百度文心4.5開源為視角

技術對比:開源與閉源大模型的優劣勢 性能對比:算力效率與場景適配的博弈 在模型性能的競技場上,開源與閉源大模型呈現出明顯的差異化特征。以百度文心4.5開源系列為例,其47B參數的混合專家(MoE)模型在飛槳…

企業電商解決方案哪家好?ZKmall模塊商城全渠道支持 + 定制化服務更省心

在數字化浪潮席卷各行各業的當下,企業要想拓展市場、提升競爭力,搭建專屬電商平臺已經成了繞不開的選擇。但市場上的電商解決方案五花八門,怎么才能挑到真正適合自己的?其實道理很簡單:能同時搞定全渠道支持和定制化服…

使用哪種語言的人更容易通過面試?

Ruby 和 Swift!似乎語言越大眾面試通過率越低,畢竟崗位數量有限,Java 和 C 程序員所面對的競爭也會更加激烈。使用 Ruby 和 Swift 的程序員比例到底怎么樣?我們可以從 Google Trends 中發現一些蛛絲馬跡。最火熱的 Java 的熱度平均…

Axios 二次封裝高級教程(含請求取消等功能)

Axios 二次封裝高級教程(含請求取消等功能) 整理不易,收藏、點贊、關注哦! 一、總體架構設計 目的:構建一套功能完善、易用且健壯的 HTTP 請求封裝層 核心功能: 請求攔截、響應攔截請求取消(防…

MobileNet V1的Pytorch實現并加載預訓練模型進行驗證

一. 環境 windonws 11RTX5060CUDA 12.8Pytorch 2.9.0dev20250630cu128torchvision 0.23.0dev20250701cu128 二. 代碼 基于Mobilenet-CustomData 的Mobilenet_Pretrain.ipynb 1. 定義Mobile Net V1 import os import time import torch import torch.nn as nn import torch…

HTTP協議利用TCP的特性來實現長連接

在討論網絡協議時,經常會有人提出這樣一個問題:“既然HTTP是基于TCP的,而TCP本身支持長連接,為什么HTTP不支持長連接?”這種說法其實是一種誤解。實際上,HTTP確實可以并且經常使用長連接(也稱為持久連接)。 什么是長連接? 首先,我們需要明確什么是“長連接”。在網…

整流電路Multisim電路仿真實驗匯總——硬件工程師筆記

目錄 1 整流電路基礎 1.1 整流電路基本原理 1.2 整流電路的類型 1.2.1 單相整流電路 1.2.2 三相整流電路 1.3 整流電路的應用 1.3.1 直流電源 1.3.2 電池充電器 1.3.3 變頻調速系統 1.34 電解和電鍍 1.4 整流電路的優缺點 1.4.1 優點 1.4.2 缺點 2 二極管整流電路…

LangChain 全面入門

什么是 LangChain? LangChain 是一個專門為 大語言模型 (LLM) 應用開發設計的開源框架,幫你快速實現: ? 多輪對話 ? 知識庫問答 (RAG) ? 多工具協同調用 (function calling / tool) ? 智能體 Agent 自動決策任務鏈 解耦 LLM 接口、Prom…

RabbitMQ 高級特性之消息確認

1. 簡介 RabbitMQ 的消息發送流程: producer 將消息發送給 broker,consumer 從 broker 中獲取消息并消費 那么在這里就涉及到了兩種消息發送,即 producer 與 broker 之間和 consumer 與 broker 之間。 “消息確認” 討論的是 consumer 與…

【51單片機用數碼管顯示流水燈的種類是按鈕控制數碼管加一和流水燈】2022-6-14

緣由 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共陰0~F消隱減號 unsigned char Js0, miao0;//中斷計時 秒 分 時 毫秒 sbit k0P3^0; sbit k1P3^1; void smxs(u…

Android15 開機動畫播放結束之后如何直接啟動應用

問題背景 軟件版本:Android15 在一些需求場景里面,需要開機動畫播放結束立馬去啟動一個應用,下面介紹如何實現這種方案。 解決方案 首選我們需要知道開機動畫播放結束之后的流程,這里會調用到wms里面,也就是一些enableScreen之類的函數,知道這個大概流程之后,再去對應…

AI實踐:大模型痛點和解決方案討論

大家好,我是星野,歡迎來到我的CSDN博客。在這個技術日新月異的時代,我們一起學習,共同進步。 今天想和大家分享的是大模型在實際應用中的痛點以及解決方案,特別是RAG(檢索增強生成)技術。 大模…

Web前端工程化

Web前端工程化 前端工程化是指將軟件工程的方法和原則應用到前端開發中,以提高開發效率、保證代碼質量、便于團隊協作和項目維護的一套體系化實踐。以下是前端工程化的主要內容和實踐: 核心組成部分 1. 模塊化開發 JavaScript模塊化:Comm…

Java 原生 HTTP Client

?介紹 Java 原生 HttpClient 是從 Java 11 開始引入的標準庫,用于簡化 HTTP 請求的發送與響應處理。它支持同步和異步請求,并內置對 HTTP/1.1 和 HTTP/2 協議的支持。HttpClient 提供了易用的 API 來設置請求頭、請求體、處理響應以及配置 SSL/TLS 加密…

【C語言刷題】第十天:加量加餐繼續,代碼題訓練,融會貫通IO模式

🔥個人主頁:艾莉絲努力練劍 ?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題 🍉學習方向:C/C方向 ??人生格言:為天地立心,為生民立命,為…

【WEB】Polar靶場 6-10題 詳細筆記

六.jwt 這題我又不會寫 先來了解下jwt **JWT(JSON Web Token)**是一種基于JSON的開放標準(RFC 7519),主要用于在網絡應用環境間傳遞聲明信息。JWT通常用于身份驗證和信息交換,確保在各方之間安全地傳輸信…