程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

基於Python的人臉人眼圖像識別處理系統

編輯:Python

對於本實驗,我選擇的編程語言是python,開發平台是pycharm+anaconda,選擇python作為我的開發語言的原因是,python是一種語法簡單的腳本化語言,python可以調用很多第三方庫,包括我采用的當下比較熱門的圖像處理庫OpenCV,學習成本較低,代碼可讀性也很高。選擇pycharm的原因是,比起python自帶的IDE,它內置了語法補全、語法高亮的功能的功能,最新版的pycharm也可以一鍵安裝所需的python版本,非常方便,同時加上anaconda,它包含了許多開發需要的python科學包,如numpy等,並且可以方便的使用conda命令,比起pip命令更加方便。


2.處理技術介紹(如果是算法設計,需要給出算法的基本思想介紹;如果是媒體處理,需要給出處理的基本思路)
(1)阈值二值化:這裡我采用的是二分阈值化,實現非常簡單,首先,圖像必須轉化為灰度圖像,對於RGB空間而言,需要將他們取平均,得到的為灰度值,對這個灰度圖像設置一個阈值,超過這個阈值的像素點,顯示為黑色圖像,低於這個阈值的像素點設置為白色,阈值范圍在[0,255]。
(2)邊緣檢測:邊緣是指圖像中圖像像素值變化明顯的位置。這些變化明顯的位置常常是圖像中需要關注的位置,對這些關鍵位置的檢測,就叫做邊緣檢測。也就是需要對這些位置求導數,這裡一般有兩種常用的算子,我采用了canny算子,即梯度方向的二階導數過零點,但首先需要使用高斯濾波來降噪,以排除噪點的影響(為了說明高斯濾波降噪的重要性,我設置了一個check方法來對比),接著使用canny算子來計算邊緣部分, 在獲得梯度大小和方向後,將對圖像進行全面掃描,以去除可能不構成邊緣的所有不需要的像素。為此,在每個像素處,檢查像素是否是其在梯度方向上附近的局部最大值,最後采用雙阈值法得到最終圖像,它的原理是,在非極大值抑制後的邊緣點中,設置兩個阈值TH和TL,梯度值超過TH的為強邊緣,小於TH大於TL的為弱邊緣,小於TL的不是邊緣,可以肯定的是,強邊緣必然是邊緣點,因此必須將T1設置的足夠高,以要求像素點的梯度值足夠大(變化足夠劇烈),而弱邊緣可能是邊緣,也可能是噪聲,如何判斷呢?當弱邊緣的周圍8鄰域有強邊緣點存在時,就將該弱邊緣點變成強邊緣點,以此來實現對強邊緣的補充。最終得到了一張邊緣檢測之後的視頻圖像。

 

 

 

目錄
《多媒體技術》實驗報告 1
一、 實驗選題 1
二、 實驗要求 1
三、 實驗內容 1
(1)圖像處理系統主題部分代碼 3
(2)CNN人臉識別部分函數代碼: 8
四、 實驗效果 8
(1) 阈值二值化 8
(2) 邊緣檢測 9
加入降噪之後: 9
(3) 輪廓檢測 10
(4) 高斯濾波 10
線性濾波: 11
(5) 色彩空間轉換: 11
(6) 調節對比度: 12
(7) 人臉識別+人眼識別 12
五、 實驗結論 14
一、實驗選題
圖像處理應用系統的開發
二、實驗要求
(正文部分)
三、實驗內容
1.平台選擇
 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved