中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站兩邊廣告整站優(yōu)化外包服務(wù)

網(wǎng)站兩邊廣告,整站優(yōu)化外包服務(wù),谷歌收錄網(wǎng)站,b2c機(jī)票網(wǎng)站建設(shè)1. 導(dǎo)入并顯示圖片 #導(dǎo)入模塊 import cv2 as cv#讀取圖片 imgcv.imread(img/wx(1).jpg) #路徑名為全英文,出現(xiàn)中文 圖片加載失敗,"D:\picture\wx.jpg" #顯示圖片 (顯示標(biāo)題,顯示圖片對(duì)象) cv.imshow(read_picture,im…

1. 導(dǎo)入并顯示圖片

#導(dǎo)入模塊
import cv2 as cv#讀取圖片
img=cv.imread('img/wx(1).jpg')  #路徑名為全英文,出現(xiàn)中文 圖片加載失敗,"D:\picture\wx.jpg"
#顯示圖片  (顯示標(biāo)題,顯示圖片對(duì)象)
cv.imshow('read_picture',img)#等待鍵盤輸入(毫秒單位) 值為0 :表示無限等待
cv.waitKey(0)#釋放內(nèi)存 opencv底層由C++ 編寫
cv.destroyAllWindows()

2. 將圖片進(jìn)行灰度處理

import cv2 as cv  #以cv 引用 cv2
img=cv.imread('img/wx(1).jpg')
cv.imshow('BGR_img',img)  #展示該圖片
#等待鍵盤獲取時(shí)間,該時(shí)間內(nèi)得到鍵盤響應(yīng)則繼續(xù)向下執(zhí)行;否則展示圖片計(jì)時(shí)結(jié)束后自動(dòng)運(yùn)行
cv.waitKey(3000)#將 img對(duì)象灰度處理后,賦予gray_img對(duì)象
gray_img=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow('gray_img',gray_img)  #展示灰度圖片
#保存轉(zhuǎn)換后的圖片 (’新文件名‘,原圖片對(duì)象)
cv.imwrite('img/gray_wx(1).jpg', gray_img)
cv.waitKey(3000)
cv.destroyAllWindows()  #釋放內(nèi)存

3. 更改圖片的尺寸大小

import cv2 as cv
img=cv.imread('img/wx(1).jpg')
cv.imshow('old_img',img)
print('原圖尺寸為(寬、高、):',img.shape)
cv.waitKey(5000)#改變?cè)紙D片尺寸大小
resize_img=cv.resize(img,dsize=(500,500))
print('當(dāng)前圖片尺寸(寬、高、):',resize_img.shape)
cv.imshow('resize_img',resize_img)#更改waitKey等待條件 : 鍵盤輸入 'q'
while 1:if ord(' ')==cv.waitKey(0):breakcv.destroyAllWindows()

4. 在圖片中繪制圖形

import cv2 as cv
img=cv.imread('img/wx(1).jpg')
img2=cv.imread('img/wx(1).jpg')
#矩形描點(diǎn):左上角坐標(biāo)(x,y),右下角坐標(biāo)(x+w,y+h),w:寬,h:高
x,y,w,h=100,100,40,40
#繪制矩形 (圖片對(duì)象,坐標(biāo)(),顏色(),寬度)
cv.rectangle(img,(x,y,x+w,y+h),color=(0,255,0),thickness=2)  #color(BGR)
cv.imshow('rectangle_img',img)
cv.waitKey(2000)#繪制圓形:(原點(diǎn)坐標(biāo)(),半徑,顏色,寬度)
cv.circle(img2,center=(100,100),radius=40,color=(0,0,255),thickness=2)
cv.imshow('circle_img',img2)
cv.waitKey(2000)
cv.destroyAllWindows()

5. 對(duì)圖片進(jìn)行人臉檢測,對(duì)應(yīng)面部區(qū)域繪制矩形

import cv2 as cv
img=cv.imread('img/wx(1).jpg')
img2=cv.imread('img/wx(1).jpg')
#矩形描點(diǎn):左上角坐標(biāo)(x,y),右下角坐標(biāo)(x+w,y+h),w:寬,h:高
x,y,w,h=100,100,40,40
#繪制矩形 (圖片對(duì)象,坐標(biāo)(),顏色(),寬度)
cv.rectangle(img,(x,y,x+w,y+h),color=(0,255,0),thickness=2)  #color(BGR)
cv.imshow('rectangle_img',img)
cv.waitKey(2000)#繪制圓形:(原點(diǎn)坐標(biāo)(),半徑,顏色,寬度)
cv.circle(img2,center=(100,100),radius=40,color=(0,0,255),thickness=2)
cv.imshow('circle_img',img2)
cv.waitKey(2000)
cv.destroyAllWindows()

6. 多人人臉檢測

import cv2 as cv
def face_detact_demo(img_path):img=cv.imread(img_path)if img is None:print("Error:img_path error!")return# 1:灰度處理并適當(dāng)更改尺寸大小# img=cv.resize(img,dsize=(1000,600))gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)# 2:加載特征數(shù)據(jù),獲取特征對(duì)象face_detector=cv.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')if face_detector.empty():print("Error:Failed to load haarcascade_frontalface_default.xml")return# 3:檢測人臉,獲取范圍坐標(biāo)faces = face_detector.detectMultiScale(gray)# faces=face_detector.detectMultiScale(gray,scaleFactor=1.01,minNeighbors=3,flags=0,maxSize=(35,35),minSize=(29,29))# detectMultiScale(image,scaleFactor = 1.1,minNeighbors = 3,flags = 0,minSize = Size(),maxSize = Size())if len(faces)==0:print("Error:NO faces face_detected!")returnelse:# 在監(jiān)測的人臉范圍繪制矩形for (x,y,w,h) in faces:print(x,y,w,h)cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)cv.circle(img,(x+w//2,y+h//2),radius=w//2,color=(0,255,0),thickness=2)cv.imshow('face_detect',img)cv.waitKey(10000)img_path='img/m.jpg'
face_detact_demo(img_path)
cv.destroyAllWindows()

由特征對(duì)象獲取人臉范圍坐標(biāo)時(shí),因圖片中人臉的精準(zhǔn)度問題可能存在獲取非人臉范圍,因此需要調(diào)節(jié)函數(shù)參數(shù),實(shí)現(xiàn)高效掃描

face_detector.detectMultiScale 是 OpenCV 庫中用于人臉檢測的一個(gè)常用函數(shù)。這個(gè)函數(shù)屬于 Haar 或 LBP 特征分類器的一部分,通常用于在圖像中檢測不同大小的人臉

std::vector<Rect> detectMultiScale(InputArray image,double scaleFactor = 1.1,int minNeighbors = 3,int flags = 0,Size minSize = Size(),Size maxSize = Size()
);

參數(shù)介紹:

  1. image: 輸入圖像,通常是一個(gè)灰度圖像(盡管也可以傳入彩色圖像,但內(nèi)部會(huì)自動(dòng)轉(zhuǎn)換為灰度圖)。
  2. scaleFactor: 圖像縮放的比例因子。例如,1.1 表示每次圖像尺寸變?yōu)樵瓉淼?1.1 倍。該參數(shù)決定了圖像金字塔的層數(shù),從而影響檢測到的人臉的大小范圍。
  3. minNeighbors: 每個(gè)候選矩形區(qū)域需要有多少個(gè)相鄰的矩形區(qū)域來保留該區(qū)域,也就是掃描該范圍多少次。這個(gè)參數(shù)影響檢測的準(zhǔn)確度和檢測到的區(qū)域的數(shù)量。
  4. flags: 修改檢測方法的標(biāo)志??梢允且韵轮档慕M合:
    • CASCADE_SCALE_IMAGE: 按比例縮放圖像。默認(rèn)開啟。
    • CASCADE_FIND_BIGGEST_OBJ: 只返回最大的對(duì)象。
    • CASCADE_DO_ROUGH_SEARCH: 只做粗略搜索。
    • CASCADE_DO_CANNY_PRUNING: 使用 Canny 邊緣檢測器來丟棄一些邊緣太多的圖像區(qū)域。
    • CASCADE_SCALE_IMAGE 和 CASCADE_DO_ROUGH_SEARCH 通常默認(rèn)開啟,其他標(biāo)志可能需要根據(jù)具體需求來設(shè)置。
  1. minSize: 目標(biāo)對(duì)象的最小可能尺寸。
  2. maxSize: 目標(biāo)對(duì)象的最大可能尺寸。

返回值

該函數(shù)返回一個(gè) Rect 對(duì)象的向量,每個(gè) Rect 對(duì)象代表檢測到的人臉的位置和大小

7. 視頻人臉檢測:

import cv2 as cv
def faces_detect_demo(img):#灰度處理gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)#加載特征數(shù)據(jù)face_detector = cv.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')if face_detector.empty():print("Error: failed to load face_detector!")return#檢測人臉范圍face=face_detector.detectMultiScale(gray)#繪制人臉矩形for(x,y,w,h)in face:print(x,y,w)cv.rectangle(img,(x,y),(x+w,y+h),color=(255,0,255),thickness=2)cv.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(255,0,0),thickness=2)#顯示圖片cv.imshow('vedio_detect',img)#1:讀取本地視頻
# "D:\桌面\代碼\video.mp4"
cap1=cv.VideoCapture('v.mp4')
#2:調(diào)用自己的攝像頭
cap=cv.VideoCapture(0)while True:#flag為監(jiān)測標(biāo)志位flag為false時(shí)退出視頻監(jiān)測#frame為視頻中讀取每一幀的的圖片對(duì)象flag,frame=cap.read()if not flag:break#進(jìn)行方法監(jiān)測faces_detect_demo(frame)# 鍵入空格退出,否則循環(huán)檢測if ord('q')==cv.waitKey(3000):break
cv.destroyAllWindows()
cap.release()

以上提供兩種視頻提供:

#1:讀取本地視頻
cap1=cv.VideoCapture('v.mp4')
#2:調(diào)用自己的攝像頭
cap2=cv.VideoCapture(0)

繼而循環(huán)從視頻中提取圖片對(duì)象:flag,frame=cap.read() 進(jìn)行方法檢測人臉

flag 以及 操作鍵入值 q 作為循環(huán)是否繼續(xù)的判斷

8. 人臉數(shù)據(jù)訓(xùn)練:

import os
import sys
import cv2
import numpy as np
from PIL import Imagedef getImageAndLabels(path):facesSamples=[]ids=[]#將路徑與文件名稱結(jié)合 以列表形式存儲(chǔ)imagePaths=[os.path.join(path,f) for f in os.listdir(path)]# 加載特征數(shù)據(jù)face_detector = cv2.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')if face_detector.empty():print("Error: failed to load face_detector!")return#遍歷列表中的圖片for imagePath in imagePaths:#打開圖片PIL_img=Image.open(imagePath).convert('L')#將圖片轉(zhuǎn)為數(shù)組img_numpy=np.array(PIL_img,'uint8')# 檢測人臉范圍face = face_detector.detectMultiScale(img_numpy)#獲取圖片id#將路徑中第二部分文件名中的數(shù)據(jù)id由‘.’進(jìn)行分割,將字符串轉(zhuǎn)換為整形存儲(chǔ)id=int(os.path.split(imagePath)[1].split('.')[0])for x,y,w,h in face:#將人臉檢測范圍進(jìn)行切片處理,作為圖像數(shù)組facesSamples.append(img_numpy[y:y+h,x:x+w])ids.append(id)return facesSamples,idsif __name__ == '__main__':#圖片路徑:path='./data/jm/'#獲取圖像數(shù)組以及id標(biāo)簽數(shù)組faces,ids=getImageAndLabels(path)#獲取循環(huán)對(duì)象recognizer=cv2.face.LBPHFaceRecognizer_create()recognizer.train(faces, np.array(ids))#保存文件recognizer.write('trainer/trainer.yml')

獲取訓(xùn)練集:

9. 人臉識(shí)別:

基于 LBPH 的人臉識(shí)別

LBPH(Local Binary Pattern Histogram)將檢測到的人臉分為小單元,并將其與模型中 的對(duì)應(yīng)單元進(jìn)行比較,對(duì)每個(gè)區(qū)域的匹配值產(chǎn)生一個(gè)直方圖。由于這種方法的靈活性,LBPH 是唯一允許模型樣本人臉和檢測到的人臉在形狀、大小上可以不同的人臉識(shí)別算法。 調(diào)整后的區(qū)域中調(diào)用 predict()函數(shù),該函數(shù)返回兩個(gè)元素的數(shù)組:第一個(gè)元素是所識(shí)別 個(gè)體的標(biāo)簽,第二個(gè)是置信度評(píng)分。所有的算法都有一個(gè)置信度評(píng)分閾值,置信度評(píng)分用來 衡量所識(shí)別人臉與原模型的差距,0 表示完全匹配??赡苡袝r(shí)不想保留所有的識(shí)別結(jié)果,則 需要進(jìn)一步處理,因此可用自己的算法來估算識(shí)別的置信度評(píng)分。LBPH 一個(gè)好的識(shí)別參 考值要低于 50 ,任何高于 80 的參考值都會(huì)被認(rèn)為是低的置信度評(píng)分。

import cv2
import os
import numpy as np#加載訓(xùn)練數(shù)據(jù)文件
recognizer=cv2.face.LBPHFaceRecognizer_create()
recognizer.read('trainer/trainer.yml')
#準(zhǔn)備識(shí)別的圖片
img=cv2.imread('./img/10.pgm')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
face_detector = cv2.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
face=face_detector.detectMultiScale(gray)
for x,y,w,h in face:cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),thickness=2)#人臉識(shí)別id,confidence=recognizer.predict(gray[y:y+h,x:x+w])print('標(biāo)簽id:',id,'置信評(píng)分:',confidence)print('置信評(píng)分范圍低于 50,高于80為低的置信度評(píng)分')img2_path='data/jm/'+str(id)+'.pgm'img2=cv2.imread(img2_path)
#擴(kuò)大圖像尺寸
img=cv2.resize(img,(300,300))
img2=cv2.resize(img2,(300,300))
#face_detect 檢測圖像展示
cv2.imshow('face_detect',img)
#recognize_img 原始圖像成功比對(duì)圖片
cv2.imshow('recognize_img',img2)
cv2.waitKey(8000)

http://www.risenshineclean.com/news/7930.html

相關(guān)文章:

  • 香港做雞網(wǎng)站今日資訊最新消息
  • 做爰小視頻網(wǎng)站鄭州網(wǎng)絡(luò)營銷哪個(gè)好
  • 彩票銷信 網(wǎng)站怎么做站長之家最新網(wǎng)站
  • 企業(yè)如何免費(fèi)做網(wǎng)站商業(yè)公司的域名
  • wordpress 制作portfolioseo管理與優(yōu)化期末試題
  • gta5買別墅的網(wǎng)站正在建設(shè)企業(yè)培訓(xùn)機(jī)構(gòu)哪家最好
  • 鄭州做網(wǎng)站公司有多少泰州網(wǎng)站建設(shè)優(yōu)化
  • 做網(wǎng)站別名解析的目的是什么友情鏈接交換形式
  • 黑龍江做網(wǎng)站的公司seo咨詢推廣找推推蛙
  • 租服務(wù)器的網(wǎng)站北京seo關(guān)鍵詞優(yōu)化外包
  • 網(wǎng)站建設(shè)時(shí)間如何查詢網(wǎng)店推廣營銷方案
  • 網(wǎng)站建設(shè) 流程網(wǎng)站建設(shè)的技術(shù)支持
  • 安全無毒做網(wǎng)站網(wǎng)絡(luò)推廣策劃案
  • 網(wǎng)站截圖怎么做網(wǎng)推app怎么推廣
  • 重慶網(wǎng)站優(yōu)化服務(wù)優(yōu)化關(guān)鍵詞排名提升
  • 永久免費(fèi)erp長沙百度網(wǎng)站排名優(yōu)化
  • 網(wǎng)站建設(shè)寬帶seo優(yōu)化排名百度教程
  • 北京市順義區(qū)住房和建設(shè)委員會(huì)網(wǎng)站自助建站免費(fèi)建站平臺(tái)
  • 毛片a做片在線觀看網(wǎng)站有哪些鄭州seo優(yōu)化公司
  • 河南省建設(shè)工程一體化平臺(tái)常州seo招聘
  • wordpress+魅族天津債務(wù)優(yōu)化公司
  • 淘客怎么做推廣網(wǎng)站電商運(yùn)營是做什么的
  • 完整的活動(dòng)策劃方案seo外鏈推廣工具下載
  • 做網(wǎng)站多久能盈利營銷咨詢顧問
  • 好網(wǎng)站目錄汽車軟文廣告
  • php做購物網(wǎng)站武漢seo首頁優(yōu)化報(bào)價(jià)
  • 做英文企業(yè)網(wǎng)站濟(jì)南網(wǎng)站seo公司
  • 求生之路2怎么做非官方網(wǎng)站東莞做網(wǎng)站公司
  • 分類網(wǎng)站怎么做seo百度ocpc如何優(yōu)化
  • 專門做淘寶優(yōu)惠券的網(wǎng)站醫(yī)院線上預(yù)約