《人工智能綜合項目實踐》全套教學課件_第1頁
《人工智能綜合項目實踐》全套教學課件_第2頁
《人工智能綜合項目實踐》全套教學課件_第3頁
《人工智能綜合項目實踐》全套教學課件_第4頁
《人工智能綜合項目實踐》全套教學課件_第5頁
已閱讀5頁,還剩474頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

人工智能綜合項目開發

理論篇

第1章

人工智能基礎

第2章OpenCV基礎

第3章

全連接神經網絡

應用篇項目1智能農業作物監測系統

項目2智能安防監控系統

項目3智慧零售自助結算系統模擬實驗

項目4口罩佩戴檢測防控系統

項目5情緒識別氛圍交互系統

項目6客流統計分析系統模擬實驗

項目7人體姿態動作識別系統模擬實驗

項目8車牌識別閘機控制系統模擬實驗

全套可編輯PPT課件

人工智能綜合項目開發第一章人工智能基礎

理論篇人工智能應用開發概述01嵌入式與人工智能的關系02開發環境搭建03Linux操作基礎04常用開發工具的使用05嵌入式微控制器IDE的使用06本課件是可編輯的正常PPT課件隨著5G、人工智能和物聯網技術的蓬勃發展,智能連接時代已經來臨,新興的智能終端和解決方案將越來越依賴于嵌入式技術。社會的各行各業都進入到了智能化升級改造的浪潮中,把人工智能技術融入實際的場景中,能夠輔助或者代替人類工作,提高工作效率,成為重點研究的課題。

從人工智能技術應用的角度出發,可分為云端人工智能和端側人工智能兩種。云端人工智能指傳感器收集到的數據不做任何處理,直接傳送到云端,在云端對數據進行計算處理。端側人工智能指數據在智能傳感器、智能節點等嵌入式端側中直接進行計算處理。云端人工智能依靠云的計算能力和標簽化的大數據對算法進行性能提升和優化。端側人工智能是從PC端互聯網搬移到智能化終端的具體應用,是人工智能落地的最后一公里的解決方案,且嵌入式設備無須聯網通過云端數據中心進行大規模計算去實現人工智能,而是在本地計算,在不聯網的情況下就可以做到實時的環境感知、人機交互、決策控制。因此云端計算的人工智能致力于如何更好地解決問題,而端側的人工智能則致力于如何更加經濟地解決問題。本課件是可編輯的正常PPT課件本章主要講述嵌入式與人工智能的關系、嵌入式人工智能的開發流程、嵌入式人工

智能的應用場景。嵌入式與人工智能的關系人工智能的定義人工智能(Artificial

Intelligence),簡稱

AI,即利用機器模擬人類感知、學習、

認知、推理、決策、交互等過程的一門技術??傮w來說人工智能就是要讓機器的行為看

起來就像是人所表現出的智能行為一樣。本課件是可編輯的正常PPT課件圖靈測試本課件是可編輯的正常PPT課件人物介紹

馬文·李·閔斯基(MarvinLeeMinsky,1927年8月9日-2016年1月24日)生于美國紐約州紐約市,科學家,專長于認知科學與人工智能領域,麻省理工學院人工智能實驗室的創始人之一,著有幾部人工智能和哲學方面的作品。1969年,因為在人工智能領域的貢獻,獲得圖靈獎。本課件是可編輯的正常PPT課件人工智能的定義

指由人制造出來的機器所表現出來的智能。通常人工智能是指通過普通計算機程序來呈現人類智能的技術。本課件是可編輯的正常PPT課件人工智能的定義

人工智能是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。本課件是可編輯的正常PPT課件強人工智能和弱人工智能技術階段哲學階段計算智能感知智能認知智能能存會算能聽會說,能看會認能理解會思考弱人工智能強人工智能“看起來”像是智能的,但是并不真正擁有智能,也不會有自主意識。能自主推理,有自主意識現階段人工智能領域未來研究方向本課件是可編輯的正常PPT課件強人工智能和弱人工智能神馬漢斯本課件是可編輯的正常PPT課件人工智能的特征由人類設計,為人類服務,本質為計算,基礎為數據。能感知環境,能產生反應,能與人交互,能與人互補。有適應特性,有學習能力,有演化迭代,有連接擴展。123本課件是可編輯的正常PPT課件人工智能的發展歷程本課件是可編輯的正常PPT課件人工智能、機器學習、深度學習本課件是可編輯的正常PPT課件無人駕駛本課件是可編輯的正常PPT課件醫療影像

目前我國醫學影像行業面臨兩大痛點:

第一是醫學影像醫生缺口大,誤診率高、效率低,服務模式亟待創新;

第二是醫學影像分析工作繁瑣重復,極度消耗精力。

而人工智能的介入使醫生對圖像的調閱、圖像質量的控制等有了更大的主動性,它使得醫生工作的關鍵模式發生了改變?!癆I+醫學影像”解決行業痛點信息技術發展促進了醫學影像和教學科研工作的開展。本課件是可編輯的正常PPT課件人臉識別人臉識別、手機解鎖、人臉支付、相機本課件是可編輯的正常PPT課件自然語言處理南方都市報-小南和廣州日報-阿同、阿樂本課件是可編輯的正常PPT課件傳統預測領域信貸需求預測店鋪效率預測本課件是可編輯的正常PPT課件人工智能技術瓶頸本課件是可編輯的正常PPT課件云端智能與端側智能

云端智能與端側智能,前者的好處是,能夠承受高吞吐量并滿足復雜計算對資源的要求,因此多用于深度學習模型和計算較復雜的情況;而后者,則更多的應用于對「實時處理」有更高要求的場景中。

本課件是可編輯的正常PPT課件端側人工智能五大優勢

相比在云端運行的人工智能,終端側人工智能在隱私、可靠、低延時、高效及個性化方面均有諸多優勢。伴隨著移動終端成為人們生活中的必備品,終端側人工智能的優勢將更加凸顯。本課件是可編輯的正常PPT課件圖

0-1AI

在工作中的應用價值通過錯誤!未找到引用源。可知,人工智能能夠勝任日常工作生活中絕大部分類別的

工作,能夠解決業務場景中高度復雜的計算問題,自主適應環境、主動配合人的工作,本課件是可編輯的正常PPT課件在一定程度上通過計算機運算幫助人們完成觀察、認知與決策的過程。而人類比較適合

做決策相關的任務,能夠定義業務問題,確定目標邊界,拆解問題,尋找完整的解決方

法等。通過人工智能技術能夠更好地輔助或者代替人類工作,提升工作效率,讓人類能夠

解脫出來做更多的決策工作,創造更大的價值。行業智能化發展浪潮由圖

0-2

可知,隨著人工智能技術的普及應用,傳統行業都進入到了智能化升級改

造的進程中,如:智能制造、智慧農業、智慧物流、智慧商務、智慧金融、智慧交通、

智慧醫療、智慧養老、智慧環保等。同時人工智能技術的發展也促進了新興產業的發展,

如:智能軟硬件、智能機器人、智能運載工具、智能終端、虛擬現實/增強現實等。智能

化的升級改造必將是未來發展的主要趨勢,使用人工智能技術可以在社會的各行各業中

大放異彩,由此可以更加體現出人工智能技術結合行業落地應用的重要性。本課件是可編輯的正常PPT課件圖

0-2

智能化升級改造行業智能化的關鍵思維行業智能化的發展離不開人工智能技術的支撐,從系統化的思維角度出發可拆分出,

構建一個完整的智能應用系統需要包含:輸入、傳輸、計算、存儲、輸出五大部分,如

0-3

所示。例如:智慧交通、智能家居、智慧零售、智能音箱、智能手機、可穿戴設本課件是可編輯的正常PPT課件備等都需要由這五大部分構成最終的智能系統。圖

0-3

智能應用系統的組成人工智能不僅僅是一項技術,而是一種認識和思考世界的方式。人工智能技術要發本課件是可編輯的正常PPT課件揮價值就必須跟行業智能化需求相匹配,針對特定的產品或應用場景做智能化升級改造,

通過人工智能基礎知識的積累和系統化思維的構建輸出產品方案或解決方案,從而實現

人工智能技術的落地應用,如圖

1-4

所示。圖

0-4

智能化的關鍵思維本課件是可編輯的正常PPT課件邊緣計算基礎概述人工智能已經從技術走向應用,如何將

AI

技術真正落地,解決每個應用場景中人們

的實際需求,才是關鍵。而這個過程中嵌入式技術將成為

AI

落地的重要承載平臺,促使

人工智能在各個垂直行業落地生根。嵌入式

AI:讓人工智能算法可以在嵌入式智能終端設備上運行的一種技術概念。嵌

入式系統是“主體”,人工智能是“裝備”,強大的“屬性加成”以模塊來呈現,提供

新功能改進現有功能,讓智能更上一層樓,如圖

0-5

所示。本課件是可編輯的正常PPT課件圖

0-5

嵌入式系統+AI云端人工智能需要使用網絡傳輸,實時性和安全性都無法得到保障。使用嵌入式人

工智能在端側可實時處理數據,并且數據安全和可靠性得到保障。算力下沉到邊緣端已本課件是可編輯的正常PPT課件成為趨勢,嵌入式

AI

有低時延、高帶寬、高可靠、海量連接、異構匯聚、本地安全等特

點,如圖

0-6

所示。圖

0-6

嵌入式

AI

的特點本課件是可編輯的正常PPT課件嵌入式人工智能開發流程嵌入式人工智能可分為基礎支撐層、技術驅動層和場景應用層?;A支撐層主要包

含:操作系統、編程語言、硬件平臺等作為程序運行的基礎支撐;技術驅動層主要包含:

理論及算法、技術平臺/框架、通用技術等,通過對圖像處理、機器學習和深度學習等技

術的理論支撐,結合各種軟件框架實現圖像識別、目標檢測、圖像分割、語音識別、語

音合成、多傳感器融合等通用技術;場景應用主要是

AI

場景的落地應用,通過對通用技

術的理解結合人工智能思維在實際的場景中落地應用,如:智能無人車、智能可穿戴設

備、智能移動機器人、智能無人機等,如圖

0-7

所示。本課件是可編輯的正常PPT課件圖

0-7

嵌入式人工智能體系結構嵌入式人工智能開發主要包括兩大部分,即人工智能模型訓練和嵌入式終端模型部本課件是可編輯的正常PPT課件署。人工智能模型訓練主要在

PC

端進行,包括數據處理、模型訓練、模型優化等。嵌入

式端主要是結合實際場景部署和應用人工智能模型,如圖

0-8

所示。圖

0-8

嵌入式人工智能開發流程嵌入式人工智能開發的三個環節:模型訓練、模型轉換、模型部署。模型訓練需要

PC

端完成,使用深度學習框架構建模型,并完成模型訓練,常用的深度學習框架有:本課件是可編輯的正常PPT課件PyTorch、TensorFlow、PaddlePaddle

等;模型轉換主要是進行模型優化,對模型進行剪

枝、量化等操作,在損失較小模型識別精度的同時,極大地降低模型大小,便于在嵌入

式端運行;模型部署根據模型轉換后的模型編寫模型推理代碼,實現嵌入式端的模型部

,

:OpenCV

DNN、OpenVINO、TensorFlow

Lite、

PaddleLite、TensorRT、ONNX、Tengine

等。本課件是可編輯的正常PPT課件圖

0-9

嵌入式

AI

的三個主要環節圖

0-10

主要描述人臉口罩檢測嵌入式端模型部署的完整流程,該樣例使用

PyTorch

深度學習框架和

OpenVINO

模型推理框架實現。主要分為

PC

端模型訓練和嵌入式端模型部本課件是可編輯的正常PPT課件署及應用,由數據采集、模型構建、模型訓練、模型轉換、模型部署、擴展應用六大步

驟組成。圖

0-10

人臉口罩檢測模型部署及應用本課件是可編輯的正常PPT課件嵌入式人工智能應用場景嵌入式與人工智能的結合為各行各業垂直領域的應用帶來巨大潛力。嵌入式人工智

能廣泛應用于零售、交通、運輸、自動化、制造業及農業等行業。驅動市場的主要因素

就是嵌入式人工智能技術在各種終端用戶垂直領域的應用數量不斷增加,尤其是改善對

終端消費者的服務。嵌入式技術在人工智能時代,有了新的定義與前景,人工智能也為

嵌入式的智能發展賦能,使嵌入式產品更快地走進千家萬戶,甚至未來絕大多數產品都

是基于嵌入式設備的數據采集與智能處理分析,比如用于物流的自動分揀機器人、智能

快遞柜等,用于城市交通中的無人駕駛汽車、交警機器人等,用于安防系統的智能攝像

頭、人臉識別、巡檢機器人等,用于家居中的智能音箱、掃地機器人等,這些都是典型

的嵌入式人工智能應用產品??偠灾?,人工智能的落地大多基于嵌入式技術,嵌入式技術為人工智能發展提供

了硬件支撐。人類突破了早年的通信速度問題產生了萬物互聯,通過萬物互聯產生了大

數據,通過大數據分析可以讓設備擁有機器學習的能力。隨著物聯網、三網融合等高端本課件是可編輯的正常PPT課件技術的發展,嵌入式與人工智能相結合必將成為主流的核心技術。開發環境搭建任任務要求通過本章節學習將會對嵌入式人工智能應用需要的開發環境有了整體的認識,并對

整個環境的配置過程做到全面掌握。任知識入入Python

開發環境配置Anaconda

指的是一個開源的

Python

發行版本,其包含了

conda、Python、科學計算

工具等科學包,是一個用于數據科學,機器學習和深度學習的開源軟件包管理系統。Miniconda

只包含了最基本的包和工具

conda、Python,需要的包可以通過

conda

安裝和管理。在官網下載

Miniconda,下載鏈接:https://conda.io/miniconda.html。下載完成本課件是可編輯的正常PPT課件后雙擊.exe

文件啟動安裝向入,如圖

3-1

所示:Miniconda

安裝本課件是可編輯的正常PPT課件選擇添加環境變量,如圖

3-2

所示。圖

3-2

Miniconda

配置環境變量本課件是可編輯的正常PPT課件如圖

3-3

所示,點擊

finish

完成安裝。圖

3-3

Miniconda

安裝完成本課件是可編輯的正常PPT課件Miniconda

創建

Python

虛擬環境Python

之所以強大,除了語言本身的特性外,更重要的是擁有無所不及的第三方庫。

強大的軟件庫,讓開發者將精力集中在業務上,而避免重復造輪子的浪費。但眾多的軟

件庫,形成了復雜的依賴關系,對

Python

開發造成了不少困擾。conda

作為一個非常好

Python

包管理軟件,能輕松實現

Python

開發環境的管理。使用

Miniconda

創建一個

python3.6

的環境,并安裝

python3.6,命令如下:基于

python3.6

創建一個名為

test_py

的虛擬環境。激活

test_py

虛擬環境。conda

deactivate退出虛擬環境。Miniconda

常用命令conda

install

python=3.6conda

create

--name

test_py

python=3.6conda

activate

test_py本課件是可編輯的正常PPT課件可以使用

conda

直接安裝和管理

Python

庫。使用如下命令安裝

Python

庫:同時安裝多個

Python

庫時,用空格將

Python

庫名隔開即可,例如同時安裝

numpy、

scipy、pandas

包命令如下:查看已安裝的

Python

包:根據

Python

包名搜索已安裝的包:更新

Python

包:卸載

Python

包:conda

install

package_nameconda

install

numpy

scipy

pandasconda

listconda

search

search_termconda

update

package_nameconda

remove

package_name本課件是可編輯的正常PPT課件Python

IDE

的使用(1)PyCharm

簡介PyCharm

是一種

Python

IDE(Integrated

Development

Environment,集成開發環

境),帶有一整套可以幫助用戶在使用

Python

語言開發時提高其效率的工具,比如調試、

語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等。(2)PyCharm

的安裝在官網:/pycharm/根據電腦版本選擇不同的包進行下

載,如圖

3-4。本課件是可編輯的正常PPT課件圖

3-4

PyCharm

軟件下載完成結束,開始安裝,安裝目錄推薦磁盤為

D

盤。安裝版本選擇。Create

Desktop

Shortcut

創建桌面快捷方式,如圖

2-5

所示,選擇

64

位。勾選

Create

Associations

是否關聯文件,選擇之后打開.py

文件,之后所有本課件是可編輯的正常PPT課件的.py

文件都將會用

PyCharm

軟件打開。本課件是可編輯的正常PPT課件圖

3-5

PyCharm

版本選擇(3)PyCharm

的使用如圖

3-6

所示,點擊

Create

New

Project

創建一個新的項目。圖

3-6

PyCharm

首次創建工程界面如圖

3-7

所示,輸入路徑,選擇

Python

解釋器。本課件是可編輯的正常PPT課件圖

3-7

PyCharm

路徑選擇如圖

3-8

所示,選擇

Python

解釋器,添加

Python

解釋器后,PyCharm

就會掃描出目

前已經安裝的

Python

擴展包,和這些擴展包的最新版本。本課件是可編輯的正常PPT課件圖

3-8

Python

解釋器點擊

File

創建工程,如圖

3-9

所示。本課件是可編輯的正常PPT課件圖

3-9

創建工程點擊

New,創建

Python

文件,如圖

3-10

所示。本課件是可編輯的正常PPT課件圖

3-10

創建

Python

文件點擊

Run

運行程序,并將運行結果輸出,如圖

3-11

所示。本課件是可編輯的正常PPT課件圖

3-11

運行

Hello

World本課件是可編輯的正常PPT課件Linux

操作基礎任任務要求在了解了整個環境之后,對環境中的基本操作需要熟練掌握,本章就是對嵌入式人工智能的常用基本操作進行講解和練習,為后面的實現案例打好

基礎。本章將涉及

SSH

的認識及遠程連接操作、Linux

的基本操作、軟件包的安裝與卸載命令以及

VNC

的可視化界面操作。任知識入入Linux

操作基礎Linux

是一個高可靠、高性能的系統,而所有這些優越性只有在直接使用

Linux

命令

行時(shell

環境)才能充分地體現出來。(1)Shell說到命令行,實際上指的是

shell。shell

腳本解釋程序,它接受從鍵盤輸入的命令,

然后把命令傳遞給操作系統去執行。幾乎所有的

Linux

發行版都提供一個來自

GNU

項目名

bash

的應用程序。bash

是“Bourne

Again

SHell”的首字母縮寫。bash

其實是

Unix本課件是可編輯的正常PPT課件上的

shell

的一個增強版。外接入鍵鼠之后使用按下

Ctrl+Alt+T,即可彈出

Shell

終端。圖

4-1

打開

Shell

終端如上圖

4-1

所示,字符包括用戶名@主機名,當前工作目錄和一個美元符號。如果提

示符的最后一個字符是“#”,而不是“$”,那么終端會話就是超級用戶權限。(4)Linux

常用基礎命令

1、ls

命令ls

就是

list

的縮寫,通過

ls

命令不僅可以查看

Linux

文件夾包含的文件,而且本課件是可編輯的正常PPT課件可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。$

ls

-lrS例如按大小反序顯示文件詳細信息。2、cd

命令$

cd

..例如返回上一級目錄。3、mkdir

命令mkdir

命令用于創建文件夾。-m:

對新建目錄設置存取權限,也可以用

chmod

命令設置;-p:

可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系

統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。$

mkdir

test例如在當前工作目錄下創建名為

test

的文件夾。例如在

tmp

目錄下創建路徑為

test/t1/t

的目錄,若不存在,則創建:本課件是可編輯的正常PPT課件4、rm

命令除一個目錄中的一個或多個文件或目錄,如果沒有使用

-r

選項,則

rm

不會刪除目

錄。如果使用

rm

來刪除文件,通常仍可以將該文件恢復原狀。

5、df

命令df

命令是顯示磁盤空間使用情況。獲取硬盤被占用了多少空間,目前還剩下多少空

間等信息,如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示。

默認情況下,磁盤空間將以

1KB

為單位進行顯示,除非環境變量

POSIXLY_CORRECT

被指

定,那樣將以

512

字節為單位進行顯示。$

df

-h例如顯示磁盤使用情況。6、free

命令$

mkdir

-p

/tmp/test/t1/t例如刪除

test

子目錄及子目錄中所有檔案刪除,并且不用一一確認。$

rm

-rf

test本課件是可編輯的正常PPT課件free

命令是顯示系統內存使用情況,包括物理內存、交互區內存(swap)和內核緩

沖區內存。$

free

-h例如顯示內存使用情況7、find

命令find

命令用于在文件樹中查找文件,并作出相應的處理。$

find

/opt

-

/opt

目錄下權限為

777

的文件。8、cp

命令cp

命令將源文件復制至目標文件,或將多個源文件復制至目標目錄。例如復制

a.txt

test

目錄下,保持原文件時間,如果原文件存在提示是否覆蓋。9、locate

命令locate

命令通過搜尋系統內建文檔數據庫達到快速找到檔案,數據庫由

updatedb$

cp

-ai

a.txt

test本課件是可編輯的正常PPT課件程序來更新,updatedb

是由

crondaemon

周期性調用的。默認情況下

locate

命令在搜尋數據庫時比由整個硬盤資料來搜尋資料來得快。例如搜索

etc

目錄下所有以

sh

開頭的文件$

locate

/etc/sh(5)視頻的讀取與顯示OpenCV

為開發者提供了

CV2.VideoCapture

視頻捕獲類函數,這是一個通用的捕獲視頻圖像的程序接口。CV2.VideoCapture

視頻捕獲類函數如下表

4-1

所示:表

4-1

攝像頭捕獲構造類功能cv2.VideoCapture

類的構造函數參數說明視頻文件<VideoCaputrue

object>

=

cv2.VideoCapture(VideoPath)VideoPath:本地視頻文件路徑攝

備<VideoCaputrue

object>

=

cv2.VideoCapture(index)index:攝像頭設備

ID,填

0

表示

使用系統默認的攝像頭,在

linux

系統中,如果存在多個攝像頭,可

以使用“/dev/video1“

等這樣的

設備名通過構造函數可獲得

VideoCapture

類的實例對象,通過

VideoCapture

實例對象的成

員方法

read

讀取視頻幀。本課件是可編輯的正常PPT課件使用

OpenCV

捕獲視頻流非常容易,流程如下圖

4-2

所示:圖

4-2

視頻捕獲基本流程本課件是可編輯的正常PPT課件視頻流捕獲示例代碼如下:import

cv2

as

cv#獲取本地攝像頭對象

cap

=

cv.VideoCapture(0)

#如果檢測到攝像頭已打開

if

cap.isOpened():state,

frame

=

cap.read()

#抓取下一個視頻幀狀態和圖像while

state:#當抓取成功則進入循環state,frame

=

cap.read()

#

抓取每一幀圖像cv.imshow('video',frame)

#

顯示抓取到的圖像幀#

等待鍵盤按下,超時

25ms

可通過設置等待超時時間來控制視頻播放速度。k

=

cv.waitKey(25)

&

0xff

#

25ms

內當有鍵盤按下時返回對應按鍵

ASCII

碼,超時返回-1if

k

==

27

or

chr(k)

==

‘q’:

#

當按下

Esc

或者

q

時退出循環。break(6)Python

程序運行在嵌入式端運行

Python

程序時,首先確定端側已搭建好

Python

環境,如下圖

4-3

所示,輸入命令

python

-V

查看

Python

版本號。圖

4-3

查看

Python

版本號本課件是可編輯的正常PPT課件若同時安裝了

Python2

Python3,如下圖

4-4

所示,輸入命令

python3

-V

查看

Python3

版本號。圖

4-4

查看

Python3

版本號如圖

4-5

所示,在終端命令行輸入:python

文件名.py,直接運行

Python

程序,如果安裝的是

python3,則運行程序的命令為:python3

文件名.py。圖

4-5

運行

Python

程序示例(7)vim

編輯器vim

是一個可以在

shell

中運行的高度可自定義的文本編輯器。vim

簡潔而強大,下面將

vim

進行一些外觀優化:$

sudo

apt-get

install

vim

#

安裝

vim

編輯器$

wget

--no-check-certificate

https:///amix/vimrc/master/vimrcs/basic.vim//

復制

vim

的配置文件到你的~/.vimrc$

cp

basic.vim

~/.vimrc本課件是可編輯的正常PPT課件優化后編輯

Python

文件時將會高亮顯示語法關鍵字。vim

共分為三種模式,分別是命令模式(Command

mode),輸入模式(Insert

mode)

和底線命令模式(Last

line

mode)。使用命令

vim

文件名,進入

vim

編輯器,如圖

4-6

所示。圖

4-6

進入

vim

編輯器啟動

vim

編輯器時,默認進入命令模式,在這個模式下,vim

編輯器會將按鍵解釋成

命令,無法對文件進行編輯,如圖

4-7

所示。在命令模式下輸入:q

即可退出

vim

編輯器。本課件是可編輯的正常PPT課件圖

4-7

vim

編輯器命令模式在命令模式下鍵入

i

可進入插入模式

insert,如圖

4-8

所示。在插入模式下

vim

將你在光標位置輸入的每個鍵都插入到緩沖區,也就是直接輸入到文本中,并在屏幕上

打印出來。一般通過插入模式對文件進行編輯修改操作。一般編輯結束后,鍵入

ESC

退出插入模式返回命令模式,然后輸入:wq

即可保存并退出

vim

編輯器。本課件是可編輯的正常PPT課件圖

4-8

vim

編輯器插入模式軟件包安裝與卸載(1)apt-getAdvanced

Package

Tool,又名

apt-get,是一款適用于

Unix

Linux

系統的應用程

序管理器,最初于

1998

年發布,用于檢索應用程序并將其加載到

Debian

Linux

系統。

apt-get,是一條

linux

命令,主要用于自動從互聯網的軟件倉庫中搜索、安裝、升級、

卸載軟件或操作系統。本課件是可編輯的正常PPT課件apt-get

安裝和卸載軟件包命令如下:a.apt-get

update

更新軟件包信息庫b.apt-get

upgrade

更新所有已安裝的軟件包c.apt-get

dist-upgrade

更新整個

Debian

系統d.apt-get

install

packagename

安裝新軟件包e.apt-get

remove

packagename

卸載已安裝軟件包(保留配置文件)f.apt-get

-purge

remove

package_name

卸載已安裝軟件包(不保留配置文件)

g.apt-get

autoremove

packagename

卸載已安裝軟件包(卸載依賴軟件)

h.apt-get

autoclean

刪除已卸載軟件的安裝包i.apt-get

clean

刪除已卸載和安裝軟件的安裝包本課件是可編輯的正常PPT課件pip

是一個現代的,通用的

python

包的管理工具,pip

也是一個

python

庫,提供了

Python

包的查找、下載、安裝和卸載功能。一般來說

Python

需要什么包可以直接在線使用:即可,但是這種安裝方法太慢,因為該方法是通過國外的服務器下載。為提高

pip

載速度,這里提供幾個國內下載源:清華源:/simple

阿里云:/pypi/simple/中國科技大學

/simple/華中理工大學:/

山東理工大學:/

例如使用前清華源下載,使用如下命令:pip

install

-i

/simple

numpypip

install

包名命令本課件是可編輯的正常PPT課件在

pip

安裝中,可能無法通過正常的

pip

命令來安裝,下面將通過使用源碼編譯的方

式來進行安裝。下面是

Linux

離線安裝

pip3

的詳細步驟:

步驟一:在官網下載安裝包如圖

4-9

所示;圖

4-9

pip

官網本課件是可編輯的正常PPT課件步驟二:將下載好的安裝包上傳至

Linux

系統下;

步驟三:使用如下的命令對安裝包進行解壓;步驟四:使用

cd

命令進入解壓好的文件所在路徑;

步驟五:執行如下的命令進行安裝。sudo

python3

setup.py

installpip

卸載命令為:tar

-xf

文件名pip

uninstall

包名本課件是可編輯的正常PPT課件任任務要求

常用開發工具的使用通過本章節學習將會對嵌入式人工智能應用需要的開發環境有了整體的認識,并對

整個環境的配置過程做到全面掌握。任知識入入SSH

遠程連接(1)SSH

簡介Secure

Shell(SSH)是由

IETF(The

Internet

Engineering

Task

Force,國際互

聯網工程任務組)制定的建立在應用層基礎上的安全網絡協議。它是專為遠程登錄會話

(甚至可以用

Windows

遠程登錄

Linux

服務器進行文件互傳)和其他網絡服務提供安全性

的協議,可有效彌補網絡中的漏洞。通過

SSH,可以把所有傳輸的數據進行加密,也能夠

防止

DNS

欺騙和

IP

欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以本課件是可編輯的正常PPT課件加快傳輸的速度。目前已經成為

Linux

系統的標準配置。(2)SFTPSFTP(Secret

File

Transfer

Protocol)是一種安全的文件傳輸協議,提供文件訪

問、傳輸和管理功能的網絡傳輸協議。它確保使用私有和安全的數據流來安全地傳輸數

據。SFTP

要求客戶端用戶必須由服務器進行身份驗證,并且數據傳輸必須通過

SSH

進行,

也即是不傳輸明文密碼或文件數據。它允許對遠程文件執行各種操作,有點像遠程文件

系統協議。(3)SSH

基礎用法SSH

主要用于遠程登錄。例如用戶名為

user,登錄遠程主機為

host,只需輸入如下

命令即可。SSH

的默認端口是

22,如果不設置端口號登錄,則會自動送到遠程主機的

22

號端口,$

ssh

user@host本課件是可編輯的正常PPT課件可以使用-p

選項來修改端口號,比如連接到服務器端口的

1234。ssh

-

目錄。$HOME/src/目錄下面的所有文件,復制到遠程主機的$HOME/src/p

1234

ldz@192.168.0.1$

cd

&&

tar

czv

src

|

ssh

user@host

'tar

xz'如果是第一次連接登錄,系統會提示“無法確認

host

主機的真實性,只知道它的公鑰指紋你還想繼續連接嗎”,如下所示:

使用密碼登錄,每次都必須輸入密碼,是非常繁瑣的。但

SSH

提供了公鑰指紋,可

以省去輸入密碼的步驟。所謂“公鑰指紋”,原理很簡單,就是用戶將自己的公鑰儲存在遠程主機上。登錄

的時候,遠程主機會向用戶發送一段隨機字符串,用戶用自己的私鑰加密后,再發回來。

遠程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄$

ssh

user@hostThe

authenticity

of

host

'host

(12.18.429.21)'

can't

be

established.RSA

key

fingerprint

is

98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.Are

you

sure

you

want

to

continue

connecting

(yes/no)?本課件是可編輯的正常PPT課件shell,不再要求密碼。遠程主機必須在自己網站上貼出公鑰指紋,以便用戶自行核對。假定經過風險衡量

以后,用戶決定接受這個遠程主機的公鑰提示如下:

host系統會出現如下提示,表示Are

you

sure

you

want

to

continue

connecting

(yes/no)?

yes

主機已經得到認可。要求輸入密碼后,就可以正常登錄。當遠程主機的公鑰被接受以后,它就會被保存在文件$HOME/.ssh/known_hosts

之中。

下次再連接這臺主機,系統就會認出它的公鑰已經保存在本地了,從而跳過警告部分,

直接提示輸入密碼。每個

SSH

用戶都有自己的

known_hosts

文件,此外系統也有這樣的文件,通常是

/etc/ssh/ssh_known_hosts,保存一些對所有用戶都可信賴的遠程主機的公鑰。使用公鑰登錄要求用戶必須提供自己的公鑰。如果沒有,可以直接用

ssh-keygen

命Warning:

Permanently

added

'host,12.18.429.21'

(RSA)

to

the

list

of

known

hosts.Password:

(enter

password)本課件是可編輯的正常PPT課件令生成。輸入命令運行結束后,在$HOME/.ssh/目錄下,會新生成兩個文件:id_rsa.pub

id_rsa。前者是公鑰,后者是私鑰。這時再輸入如下命令,將公鑰傳送到遠程主機

host

上面再次連接時就不再輸入登錄

密碼。連接工具

MobaXtermMobaXterm

SSH

客戶端,可以向

Windows

桌面提供所有重要的遠程網絡工具(SSH,X11,RDP,VNC,FTP,MOSH

…)和

Unix

命令(bash,ls,

cat,sed,grep,awk,rsync

等),為遠程任務提供一體化服務。當用戶使用

SSH

連接到遠程服務器時,將自動彈出圖形

SFTP

瀏覽器以直接編輯遠程

文件。$

ssh-keygen$

ssh-copy-id

user@host本課件是可編輯的正常PPT課件MobaXterm

軟件安裝首先下載該軟件,下載網址:https:///,選擇“Download”,選擇免費版的下載。下載完成后,直接解壓文件,雙擊

exe

文件安裝軟件。軟件安裝完成后,電腦桌面將會出現如圖

5-1

的圖標。圖

5-1

MobaXterm

軟件圖標本課件是可編輯的正常PPT課件MobaXterm

軟件使用打開軟件界面如圖

5-2

所示:圖

5-2

MobaXterm

軟件界面首先創建

SSH

session,點擊菜單欄「sessions」,點擊「new

session」,將彈出

session

setting

對話框,如圖

5-3:本課件是可編輯的正常PPT課件圖

5-3

SSH

創建界面選中第一個

SSH

圖標,并填入相關信息,就可以完成

session

的創建。點擊確定后,

輸入用戶名和密碼后就可以連接上虛擬機了。且連上虛擬機之后,會自動通過

FTP

也連

接到虛擬機,直接拖拽就可以完成文件上傳和下載。登錄后的界面主要分為兩部分,左邊的是主機的文件,右邊是終端。如圖

5-4

勾選

左下角“Follow

terminal

folder”可以讓兩者的工作路徑保持一致。本課件是可編輯的正常PPT課件圖

5-4

SSH

登錄界面本課件是可編輯的正常PPT課件創建串口

session串口

session

創建如圖

5-5

所示,在

Session

settings

對話框里選擇

Serial,選擇

相對應的串口號及波特率,點擊

OK

按鈕即可完成連接。同樣

session

會保存在左側的

session

標簽頁里,方便下次連接。圖

5-5

創建串口

session

界面本課件是可編輯的正常PPT課件如圖

5-6

所示,可以個性化設置,如設置終端字體、設置右鍵復制、設置字號等。圖

5-6

個性化設置界面本課件是可編輯的正常PPT課件VNC

可視化連接工具(1)VNC

簡介VNC(Virtual

Network

Computer)是一款基于

UNIX

Linux

操作系統的遠程控制工

具軟件,由

AT&T

的歐洲研究實驗室開發,其遠程控制能力強大,高效實用。VNC

作為一

種遠程登錄的圖形化界面軟件,能將完整的窗口界面通過網絡傳輸到另一臺計算機的屏

幕上。VNC

由兩個基礎部分組成:客戶端的應用程序(vncviewer)和服務器端的應用程序

(vncserver)。用戶需先將

VNC

server

安裝在被遠程操控的計算機上后,在主控端執行

VNC

viewer

就能進行遠程操控,且服務器端還內建了

Java

Web

接口,開發者通過服務器

端對其他計算機的操作就能通過

Netscape

進行顯示,這樣的操作過程和顯示方式比較直

觀方便。本課件是可編輯的正常PPT課件(2)VNC

連接apt-get

install

vnc4server在服務器端啟動

VNC

Server

執行如下命令安裝

VNC

Server。

vncserver然后啟動

VNC

Server。(3)客戶端安裝

VNC

Viewer若要通過客戶端對服務器端進行遠程桌面連接,需在客戶端安裝

VNC

Viewer,首先

下載

VNC

Viewer,官方下載地址。下載完成后雙擊.exe

文件啟動安裝向入如圖

5-7

所示。圖

5-7

VNC

Viewer

安裝向入本課件是可編輯的正常PPT課件當看到下圖

5-8

所示時,點擊

finish

完成安裝。圖

5-8

VNC

Viewer

安裝成功2)VNC

客戶端通過

VNC

Viewer

連接至

VNC

Server。打開客戶端

VNC

Viewer,輸入遠程控制端所在局域網的

IP

地址和端口號進行連接,

如圖

5-9

所示。本課件是可編輯的正常PPT課件圖

5-9

連接

VNC輸入服務器端登錄密碼,點擊

OK

如圖

5-10

所示。本課件是可編輯的正常PPT課件圖

5-10

輸入密碼若客戶端通過

VNC

Server

的驗證,即成功連接到

VNC

Server

圖形化桌面,如圖

5-

11

所示為遠程連接開發板圖像化桌面示例。本課件是可編輯的正常PPT課件圖

5-11

VNC

連接成功示例本課件是可編輯的正常PPT課件嵌入式微控制器

IDE

的使用Keil

MDK-ARM

是美國

Keil

軟件公司(現已被

ARM

公司收購)出品的支持

ARM

微控制

器的一款

IDE(集成開發環境)。MDK-ARM

包含了工業標準的

Keil

C

編譯器、宏匯編器、調試器、實時內核等組件。

具有行業領先的

ARM

C/C++編譯工具鏈,完美支持

Cortex-M、Cortex-R4、ARM7

ARM9

系列器件,涉及世界上眾多品牌的芯片,比如:ST、Atmel、Freescale、NXP、TI

等大公

司微控制器芯片。(1)Keil

5

軟件安裝雙擊如圖

5-12

中所示圖標進行安裝。圖

5-12

MDK

安裝包本課件是可編輯的正常PPT課件如圖

5-13

所示,選擇安裝路徑(以

D

Keil

5

為例)——點擊

Next,安裝路徑不

能帶中文。圖

5-13

選擇安裝路徑本課件是可編輯的正常PPT課件如圖

5-14

所示,填寫用戶名(First

name)與郵箱(E-Mail)。圖

5-14

填寫用戶名本課件是可編輯的正常PPT課件添加器件庫安裝包,如圖

5-15

所示,雙擊

Keil.STM32F4xx_DFP.1.0.8.pack

安裝包

(根據使用的芯片型號,添加對應的器件庫包;因這里以

STM32F407xx

為例,故選擇對

F4

系列的安裝包;若使用其他系列芯片,則需要添加其對應區間的庫包;可同時添加

不同型號的器件庫安裝包)。圖

5-15

STM32F4

系列器件庫包本課件是可編輯的正常PPT課件(2)keil

5

下載工程如圖

5-16

所示,打開軟件,選擇

Project——Open

Projec...(打開工程)。圖

5-16

創建工程本課件是可編輯的正常PPT課件如圖

5-17

所示,找到工程存放路徑,選擇工程,點擊打開已經編寫好的工程。圖

5-17

保存工程路徑本課件是可編輯的正常PPT課件如圖

5-18

所示,點擊如下圖所示按鈕進行下載器配置。圖

5-18

進入下載器配置界面本課件是可編輯的正常PPT課件如圖

5-19

選擇

Debug

選項,這里所使用的仿真器為

J-LINK

V8

仿真器,所以在

Use

的下拉列表中選擇

J-LiNK/J-TRACE

Cortex

選項。圖

5-19

下載器配置本課件是可編輯的正常PPT課件如圖

5-20

所示,點擊

Settings

按鈕,進入設置界面。圖

5-20

設置界面本課件是可編輯的正常PPT課件選擇

Debug

的選項,在

Port

選項中選擇

SW

模式,如圖

5-21

所示的步驟

3,表示仿

真器識別到開發板的芯片。設置完成后選擇

Flash

Download

選項。完成此步驟,需要仿

真器連接電腦和開發板,并且需要給開發板供電。圖

5-21

Debug

界面本課件是可編輯的正常PPT課件按照如圖

5-22

所示設置下載配置,勾選“Reset

and

Run”,則在下載完程序會自動

復位,無需手動復位,點擊

Add(添加按鈕)。圖

5-22

下載配置本課件是可編輯的正常PPT課件如圖

5-23

所示采用的

STM32

Flash

大小是

1M

的,所以選擇容量大小為

1M

STM32F4xx

Flash,點擊

Add(添加)。圖

5-23

添加

flash本課件是可編輯的正常PPT課件如圖

5-24

所示添加成功。圖

5-24

添加成功本課件是可編輯的正常PPT課件如圖

5-25

所示,點擊編譯程序,在“Build

Output”窗口查看編譯結果,只有編譯

通過,程序才能被下載。圖

5-25

編譯程序本課件是可編輯的正常PPT課件如圖

5-26,程序沒有錯誤,點擊下載燒寫程序。下載程序時,需要仿真器連接到電

腦和開發板,并且開發板要供電。圖

5-26

下載程序本課件是可編輯的正常PPT課件Thankyouforwatching.

人工智能綜合項目開發第二章OpenCV基礎

OpenCV簡介01OpenCV安裝02圖像讀取與顯示03視頻的讀取與顯示04圖像基本操作05本課件是可編輯的正常PPT課件OpenCV

基礎OpenCV

簡介OpenCV(Open

Source

Computer

Vision

Library)是一個開源的跨平臺計算機視覺

和機器學習庫。擁有超過

2500

種優化算法,包括一套全面的、經典的和最先進的計算機

視覺和機器學習算法。這些算法可用于檢測和識別面部,識別物體,對視頻中的人體動

作進行分類,跟蹤相機移動,跟蹤移動物體等應用。OpenCV

其本身是用

C++編寫的,同時提供了

C++,Python,Java

MATLAB

程序接口,

并支持

Windows、Linux、Android、Mac

OS

等操作系統。如圖

0-1

所示,1999

Intel

公司為增強

CPU

集群性能,啟動了很多研究項目,其

中就包括

OpenCV。OpenCV

最初的核心代碼和算法規范是英特爾實驗室團隊完成的。2018

年發布了

OpenCV4.X

版本,該版本全面加強了算法的性能,補充了神經網絡等模塊功能。本課件是可編輯的正常PPT課件圖

0-1OpenCV

版本迭代歷史OpenCV

安裝Python

開發環境安裝

OpenCV

依賴包可使用如下命令安裝。pip3

instal

opencv-python

-i

/simple

--user使用

pip3,意思是在

python3

中安裝

opencv-python

庫,可以使用如下命令來查看

pip3

的版本號和

pip3

所對應的庫安裝路徑。-i

選項指定倉庫源,這使用豆瓣提供的

pip

源,用來加速下載。--user

選項指定是用戶安裝,避免出現權限不足的問題,而入致安本課件是可編輯的正常PPT課件裝失敗。pi@raspberrypi:~$

pip3

--versionpip

19.3.1

from

/usr/local/lib/python3.7/dist-packages/pip

(python

3.7)任注意

如果需要安裝指定版本的

opencv-python

庫。可以使用如下命令先查詢當前有多少版本可供安裝。pip3

install

opencv-python==報錯,然后提示可以從如下版本中選擇安裝。ERROR:

Could

not

find

a

version

that

satisfies

the

requirement

opencv-python==

(from

versions:

,

,

,

,

,

,

,

,

,

,

0,1,

2,

4,

5,

6,

7,

8,

9,

0,

7,

8,

9,

1,

3,

4,

5,

6,

0)比如,需要安裝

opencv-python

庫的

6

版本,則安裝命令如下:pip3

instal

opencv-python==6

-i

https:///simple

--user圖像讀取與顯示讀入、顯示和保存圖像和視頻數據是計算機視覺中最基本也是必不可少的操作,OpenCV

提供了這些基礎操作的

API

函數,通過本節內容,開發者可以掌握如何使用OpenCV

庫中的函數進行圖像和視頻的讀取、顯示和存儲。本課件是可編輯的正常PPT課件使用

OpenCV

庫的

imread

函數實現從磁盤中讀取一張圖像,使用函數

imshow

將它顯

示到

GUI

窗口中,圖像寫入使用

imwrite

函數。讀取、顯示與寫入圖像的流程如圖

0-1

所示:圖

0-1

圖像讀取顯示與寫入基本流程根據圖

4-2

流程,讀取一張圖片并顯示的示例代碼如下:本課件是可編輯的正常PPT課件import

cv2

as

cv#

自定義圖片地址

img_path

=

'./test_alpha.png'

#

讀入圖像img_bgr

=

cv.imread(img_path)

#

顯示圖片

cv.imshow('img_bgr',

img_bgr)

#

無限期的等待鍵盤按下

cv.waitKey(0)#銷毀所有窗體

cv.destroyAllWindows()#

存儲圖片,將圖片保存成

jpg

格式

cv.imwrite('./test.jpg',

img_bgr)通過上述代碼,可以將.png

格式的圖片另存為.jpg

格式的圖像,這是因為函數

imwrite()會根據文件名的后綴名來選擇不同的壓縮編碼方式,開發者只需更改文件后綴

名即可實現將圖像保存成不同的圖像格式。視頻的讀取與顯示OpenCV

為開發者提供了

CV2.VideoCapture

視頻捕獲類函數,這是一個通用的捕獲視本課件是可編輯的正常PPT課件頻圖像的程序接口。CV2.VideoCapture

視頻捕獲類函數如下表

4-1

所示:表

4-1

攝像頭捕獲構造類功能cv2.VideoCapture

類的構造函數參數說明視頻文件<VideoCaputrue

object>

=

cv2.VideoCapture(VideoPath)VideoPath:本地視頻文件路徑攝

備<VideoCaputrue

object>

=

cv2.VideoCapture(index)index:攝像頭設備

ID,填

0

表示

使用系統默認的攝像頭,在

linux

系統中,如果存在多個攝像頭,可

以使用“/dev/video1“

等這樣的

設備名通過構造函數可獲得

VideoCapture

類的實例對象,通過實例對象

VideoCapture

的成

員方法

read

讀取視頻幀。使用

OpenCV

捕獲視頻流非常容易,流程如下圖

0-1

所示:本課件是可編輯的正常PPT課件圖

0-1

視頻捕獲基本流程本課件是可編輯的正常PPT課件視頻流捕獲示例代碼如下:import

cv2

as

cv#獲取本地攝像頭對象

cap

=

cv.VideoCapture(0)

#如果檢測到攝像頭已打開

if

cap.isOpened():state,

frame

=

cap.read()

#抓取下一個視頻幀狀態和圖像while

state:#當抓取成功則進入循環state,frame

=

cap.read()

#

抓取每一幀圖像cv.imshow('video',frame)

#

顯示抓取到的圖像幀#

等待鍵盤按下,超時

25ms

可通過設置等待超時時間來控制視頻播放速度。k

=

cv.waitKey(25)

&

0xff

#

25ms

內當有鍵盤按下時返回對應按鍵

ASCII

碼,超時返回-1if

k

==

27

or

chr(k)

==

‘q’:

#

當按下

Esc

或者

q

時退出循環。break(1)視頻存儲視頻是由一幀一幀的圖像構成的,當一秒中內切換

24

幀圖像,人眼就會覺得視頻流暢,人們把一秒鐘切換圖像的次數叫做幀率(FPS),如一秒鐘能切換

30

張圖像,則其幀率為

30FPS。為了減少視頻大小,設計了很多視頻壓縮編碼格式,如常見的

MPEG-4、H.264、H.265。將視頻壓縮編碼之后,原來為

4.976

GB

的視頻文件就被壓縮到

50MB

以本課件是可編輯的正常PPT課件內,且畫質還原度高。在

OpenCV

中的

VideoWriter

類提供的

API

可以輕松實現視頻編碼壓縮。目前視頻信

息壓縮編碼的方法很多,fourcc

是用于設置壓縮幀的

4

字符編解碼方式代碼。視頻保存示例代碼如下:#!/usr/bin/env

python3

#

-*-

coding:UTF8

-*-

import

cv2

as

cv

import

numpy

as

np#獲取本地攝像頭對象

cap

=

cv.VideoCapture(0)#

指定視頻的編碼格式fourcc

=

cv.VideoWriter_fourcc(*

'XVID')

#

保存到文件,VideWriter

參數說明:#

VideWriter(文件名,

編碼格式,

FPS,

幀大小,isColor),isColor

默認為

True

表示保存彩圖

out

=

cv.VideoWriter('output.avi',

fourcc,

30,

(640,

480))while

cap.isOpened():

ret,

frame

=

cap.read()

if

ret:#

幀翻轉本課件是可編輯的正常PPT課件

圖像基本操作圖像運算指以圖像為單位進行的操作,該操作對圖像中的所有像素同樣進行,運算

的結果是一幅其灰度分布與原來參與運算圖像灰度分布不同的新圖像。具體的運算主要

包括算術和邏輯運算,它們通過改變像素的值來得到圖像增強的效果。算術運算是指對兩幅或兩幅以上的輸入圖像中對應像素的灰度值作加、減、乘或除

等運算后,將運算結果作為輸出圖像相應像素的灰度值。這種運算的特點在于:其一,

輸出圖像像素的灰度僅取決于兩幅或兩幅以上的輸入圖像的對應像素灰度值,和點運算out.write(frame)

#

保存視頻幀cv.imshow('frame',

frame)

#

顯示當前幀k

=

cv.waitKey(25)

&

0xFFif

chr(k)

==

'q':

#

按‘q’鍵退出break#

調用

release

函數釋放內存cap.release()out.release()cv.destroyAllWindows()本課件是可編輯的正常PPT課件相似,算術運算結果和參與運算像素的鄰域內像素的灰度值無關;其二,算術運算不會

改變像素的空間位置。(1)圖像按位運算圖像的基本運算有很多種,比如兩幅圖像可以相加、相減、相乘、相除、位運算、

平方根、對數、絕對值等。通常在圖像處理過程中需要對圖像截取其中的一部分作為感

興趣的區域(region

of

interest,ROI),按位運算常被廣泛用于

ROI

區域提取。所謂按位運算,就是對圖像像素的二進制形式的每個

bit

進行對應運算。按位運算

通常包括按位與、按位或、按位非和按位異或運算。OpenCV

提供了函數

cv2.

bitwise_and

能將兩幅圖像

src1

src2

每個像素值進行位

與運算,并返回處理后的圖像。該函數的用法如表

5-1

所示:表

5-1

位與函數函數名稱cv2.bitwise_and函數原型bitwise_and(src1,

src2[,

dst[,

mask]])

->

dst必填參數src1&src2:輸入的需要按位與的圖像,要求兩幅圖像有相同的類型和大小本課件是可編輯的正常PPT課件默認參數dst:與輸入圖像有同樣大小和類型的輸出圖像mask:輸入掩模,可省略參數,必須是

8

位單通道圖像返回值返回位與之后的圖像調用示例output

=

cv2.bitwise_and(source,

mask)函數

cv2.bitwise_not

將輸入圖像

src

每個像素值按位取反,并返回處理后的圖像。

該函數的用法如表

5-2

所示:表

5-2

位或函數函數名稱cv2.

bitwise_not函數原型bitwise_not(src[,

dst[,

mask]])

->

dst必填參數src:輸入的需要按位取反的圖像默認參數dst:與輸入圖像有同樣大小和類型的輸出圖像mask:輸入掩模,可省略參數,必須是

8

位單通道圖像返回值返回位與之后的圖像調用示例output

=

cv2.bitwise_not(source)(2)圖像加法OpenCV

提供了

cv2.add()函數實現圖像相加,使用該函數進行圖像的加法運算時,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論