導航:首頁 > 編程語言 > 用python畫人

用python畫人

發布時間:2023-03-20 22:10:11

python檢測人數代碼

您好!下面是一個使用 OpenCV 庫來檢測人數的 Python 代碼:
import cv2
# 讀入視頻文件
video = cv2.VideoCapture("video.mp4")
# 創建人體檢測器
body_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml')
# 初始化人數計數器
people_count = 0
# 循環讀取每一幀
while True:
# 讀取當前幀
ret, frame = video.read()
# 如果視頻結束,退出循環
if not ret:
break
# 轉為灰度圖
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 使用人體檢測器檢測人體
bodies = body_cascade.detectMultiScale(gray, 1.1, 3)
# 將檢測到的人體繪制矩形框
for (x, y, w, h) in bodies:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
# 將矩形框中的人數加 1
people_count += len(bodies)
# 顯示當前幀
cv2.imshow("Frame", frame)
# 如果按下 'q' 鍵,退出循環
if cv2.waitKey(1) == ord('q'):
break
# 關閉窗口
cv2.destroyAllWindows()
# 輸出總人數
print(f'Total people count: {people_count}')
在上面的代碼中,我們還初始化了一個 people_count 變數來記錄人數,並在每一幀中通過檢測到的人體數量搜旅坦來更新人數計數器。最後,我們使用了 OpenCV 的 imshow 函數來顯示當前幀鎮滾的圖像,並使用 waitKey 函數來檢測是世桐否按下了 'q' 鍵。如果按下 'q' 鍵,就會退出循環。
在循環結束後,我們使用了 destroyAllWindows 函數來關閉所有打開的窗口,並使用 print 函數輸出總人數。
如果我的回答對您有幫助,望採納!謝謝

❷ python怎麼用自定義函數畫手朝左邊的小人

可以指信插函數塌逗神。turtle.setup(700,700,100,100)#setup()設置窗體大小,後兩個參數可選,該函數也不是必須的

turtle.speed(10)#設置畫筆移到速度,參數值為0-10,數字越大,速度越大

turtle.pensize(10)#設置畫筆尺寸大小

turtle.pencolor(『green『)#設置畫筆顏色

turtle.penup()#將畫筆抬起團虧(抬起時移到畫筆將不會在畫布留下痕跡)

turtle.goto(0,190)#將畫筆移到(x,y)

turtle.pendown()#將畫筆落下

turtle.circle(80,360)#畫圓,半徑為正表示圓心在畫筆左邊

❸ python如何給二次元人物跳舞

1、首先下載python程序軟體,並登陸自己的賬號。
2、其碼滾次點擊該軟體主界面的文件選項,創建文件,並將二次元人物跳舞的代碼輸前升入該文件中。
3、最後點擊遲悔余運行該文件即可。

❹ 有一張人臉的側臉圖像,如何用python及相關的庫來計算人臉轉過的角度。

這個很難辦到,不過可以通過判斷關鍵點的特點進行判斷,但是准確率不高
前言
很多人都認為人臉識別是一項非常難以實現的工作,看到名字就害怕,然後心懷忐忑到網上一搜,看到網上N頁的教程立馬就放棄了。這些人里包括曾經的我自己。其實如果如果你不是非要深究其中的原理,只是要實現這一工作的話,人臉識別也沒那麼難。今天我們就來看看如何在40行代碼以內簡單地實現人臉識別。
一點區分
對於大部分人來說,區分人臉檢測和人臉識別完全不是問題。但是網上有很多教程有無無意地把人臉檢測說成是人臉識別,誤導群眾,造成一些人認為二者是相同的。其實,人臉檢測解決的問題是確定一張圖上有木有人臉,而人臉識別解決的問題是這個臉是誰的。可以說人臉檢測是是人識別的前期工作。今天我們要做的是人臉識別。
所用工具
Anaconda 2——Python 2
Dlib
scikit-image
Dlib
對於今天要用到的主要工具,還是有必要多說幾句的。Dlib是基於現代C++的一個跨平台通用的框架,作者非常勤奮,一直在保持更新。Dlib內容涵蓋機器學習、圖像處理、數值演算法、數據壓縮等等,涉獵甚廣。更重要的是,Dlib的文檔非常完善,例子非常豐富。就像很多庫一樣,Dlib也提供了Python的介面,安裝非常簡單,用pip只需要一句即可:
pip install dlib
上面需要用到的scikit-image同樣只是需要這么一句:
pip install scikit-image
註:如果用pip install dlib安裝失敗的話,那安裝起來就比較麻煩了。錯誤提示很詳細,按照錯誤提示一步步走就行了。

人臉識別
之所以用Dlib來實現人臉識別,是因為它已經替我們做好了絕大部分的工作,我們只需要去調用就行了。Dlib裡面有人臉檢測器,有訓練好的人臉關鍵點檢測器,也有訓練好的人臉識別模型。今天我們主要目的是實現,而不是深究原理。感興趣的同學可以到官網查看源碼以及實現的參考文獻。今天的例子既然代碼不超過40行,其實是沒啥難度的。有難度的東西都在源碼和論文里。
首先先通過文件樹看一下今天需要用到的東西:

准備了六個候選人的圖片放在candidate-faces文件夾中,然後需要識別的人臉圖片test.jpg。我們的工作就是要檢測到test.jpg中的人臉,然後判斷她到底是候選人中的誰。另外的girl-face-rec.py是我們的python腳本。shape_predictor_68_face_landmarks.dat是已經訓練好的人臉關鍵點檢測器。dlib_face_recognition_resnet_model_v1.dat是訓練好的ResNet人臉識別模型。ResNet是何凱明在微軟的時候提出的深度殘差網路,獲得了 ImageNet 2015 冠軍,通過讓網路對殘差進行學習,在深度和精度上做到了比
CNN 更加強大。
1. 前期准備
shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat都可以在這里找到。
然後准備幾個人的人臉圖片作為候選人臉,最好是正臉。放到candidate-faces文件夾中。
本文這里准備的是六張圖片,如下:

她們分別是

然後准備四張需要識別的人臉圖像,其實一張就夠了,這里只是要看看不同的情況:

可以看到前兩張和候選文件中的本人看起來還是差別不小的,第三張是候選人中的原圖,第四張圖片微微側臉,而且右側有陰影。
2.識別流程
數據准備完畢,接下來就是代碼了。識別的大致流程是這樣的:
3.代碼
代碼不做過多解釋,因為已經注釋的非常完善了。以下是girl-face-rec.py
# -*- coding: UTF-8 -*-
import sys,os,dlib,glob,numpy
from skimage import io
if len(sys.argv) != 5:
print "請檢查參數是否正確"
exit()
# 1.人臉關鍵點檢測器
predictor_path = sys.argv[1]
# 2.人臉識別模型
face_rec_model_path = sys.argv[2]
# 3.候選人臉文件夾
faces_folder_path = sys.argv[3]
# 4.需識別的人臉
img_path = sys.argv[4]
# 1.載入正臉檢測器
detector = dlib.get_frontal_face_detector()
# 2.載入人臉關鍵點檢測器
sp = dlib.shape_predictor(predictor_path)
# 3. 載入人臉識別模型
facerec = dlib.face_recognition_model_v1(face_rec_model_path)
# win = dlib.image_window()
# 候選人臉描述子list
descriptors = []
# 對文件夾下的每一個人臉進行:
# 1.人臉檢測
# 2.關鍵點檢測
# 3.描述子提取
for f in glob.glob(os.path.join(faces_folder_path, "*.jpg")):
print("Processing file: {}".format(f))
img = io.imread(f)
#win.clear_overlay()
#win.set_image(img)
# 1.人臉檢測
dets = detector(img, 1)
print("Number of faces detected: {}".format(len(dets)))
for k, d in enumerate(dets):
# 2.關鍵點檢測
shape = sp(img, d)
# 畫出人臉區域和和關鍵點
# win.clear_overlay()
# win.add_overlay(d)
# win.add_overlay(shape)
# 3.描述子提取,128D向量
face_descriptor = facerec.compute_face_descriptor(img, shape)
# 轉換為numpy array
v = numpy.array(face_descriptor)
descriptors.append(v)
# 對需識別人臉進行同樣處理
# 提取描述子,不再注釋
img = io.imread(img_path)
dets = detector(img, 1)
dist = []
for k, d in enumerate(dets):
shape = sp(img, d)
face_descriptor = facerec.compute_face_descriptor(img, shape)
d_test = numpy.array(face_descriptor)
# 計算歐式距離
for i in descriptors:
dist_ = numpy.linalg.norm(i-d_test)
dist.append(dist_)
# 候選人名單
candidate = ['Unknown1','Unknown2','Shishi','Unknown4','Bingbing','Feifei']
# 候選人和距離組成一個dict
c_d = dict(zip(candidate,dist))
cd_sorted = sorted(c_d.iteritems(), key=lambda d:d[1])
print "\n The person is: ",cd_sorted[0][0]
dlib.hit_enter_to_continue()

4.運行結果
我們在.py所在的文件夾下打開命令行,運行如下命令
python girl-face-rec.py 1.dat 2.dat ./candidate-faecs test1.jpg
由於shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat名字實在太長,所以我把它們重命名為1.dat和2.dat。
運行結果如下:
The person is Bingbing。
記憶力不好的同學可以翻上去看看test1.jpg是誰的圖片。有興趣的話可以把四張測試圖片都運行下試試。
這里需要說明的是,前三張圖輸出結果都是非常理想的。但是第四張測試圖片的輸出結果是候選人4。對比一下兩張圖片可以很容易發現混淆的原因。
機器畢竟不是人,機器的智能還需要人來提升。
有興趣的同學可以繼續深入研究如何提升識別的准確率。比如每個人的候選圖片用多張,然後對比和每個人距離的平均值之類的。全憑自己了。

❺ 如何快速學習Python

1.要有決心
做任何事情,首先要有足夠的決心和堅持,才能做好事情、學好Python也是如此。
2.勤於動手
對於編程語言的學習,不能眼高手低,學的過程中,想到就要寫出來,一方面能夠培養出寫代碼的感覺,另一方面可以加深知識的掌控。
3.一套完整的學習體系
Python編程語言的全面學習,需要擁有一整套系統的學習資料和學習計劃,全面掌握Python基礎知識,對以後解決Python編程過程中的問題十分有益!
4.項目實戰訓練
Python編程基礎知識的學習最終目的是應用於項目中,因此,項目實戰訓練必不可少,多做幾個項目,盡量是功能完整的項目,形成項目思路,對以後進行項目實戰是很有好處的!

❻ 用Python里的小海龜畫個簡單的小機器人怎麼搞

from turtle import *
from random import *
for i in range(4):
begin_fill()
penup()
goto(0, 30*(i+1)) # 從裡面最小鉛氏的一槐灶散個圓的底部,辯緩慢慢變大
fillcolor((random(), random(), random()))
pendown()
circle(150-30*(i+1))
end_fill()
mainloop()

❼ Python太好用了!AI初學者快速體驗人臉檢測

我們使頌宴用python進行AI識別測試,具體方式是是開啟本地電腦的攝像頭進行實時的識別,或者直接傳入一張圖片進行行人檢測,在分析代碼把數據源傳入到識別,看到的是source=』0』,但是這個參數是打開本地電腦的攝像頭流,再進行行人檢測。

但我們需要對此處進行修改,使用rtsp流,進行AI行人識別,下面需要進行分析代碼,找到可以修改的地方,或者摸個參數,來進行RTSP流的修改。

已經找到了視頻流在哪裡傳進去的了,下面就是進行分析裡面的代碼進行改成rtsp流,把rtsp流寫進去,汪知來做到實時分析,實現行人檢測的效果。

在進行分析的時候,發現source這個參數只有LoadStreams用到過,而且是直接傳進去的。

進入source參數裡面查看,發現裡面有一個默認的值,就是讀文件,如果不是文件,就把source=[source],再進行source值遍歷。在遍歷中還使用到了opencv打開本地電腦的攝像機流,再開一個線程進行實時行人識別。

代碼中使用了opencv中cv2.VideoCapture的函數,從網上查找這個函數的用法得知,此函數是可以直接傳入rtsp流地址的,所以問題解決就簡單多了。cv2.VideoCapture這個函數是可以傳入rtsp地址的,所以傳入rtsp地址進行嘗試,發現傳入rtsp地址是沒有問題的。困櫻消

只要修改source這個參數即可,最終實現了檢測:

❽ PythonDOTA人物能力值雷達圖label為什麼沒用

Python可以使用matplotlib或者plotly等庫來繪制雷達圖,也就是用來顯示多變數數據的一種二維圖表,每個變數對應一個從中心發出的軸。DOTA是一款多人在族鄭線對戰游戲,每個英雄都有不同的能力值,可以用雷達圖來表示。

如果你想在雷達圖上添加標簽,也就是每個軸的變數名,稿租你需要注意以下幾點:

❾ 編寫Python程序,用於顯示人的姓名和年齡

按照題目要求編寫的Python程序如下

class Person:

def __init__(self,name,age):

self.__name=name

self.__age=age

def display(self):

print("姓名:{},年齡{}".format(self.__name,self.__age))

if __name__ == '__main__':

p=Person("張三",18)

p.display()

源代碼(注意源代碼的縮進)

閱讀全文

與用python畫人相關的資料

熱點內容
程序員那麼可愛孩子還在嗎 瀏覽:513
以下哪些是資料庫編程技術 瀏覽:164
水冷壓縮冷凝機組 瀏覽:176
小米路由器app怎麼加黑名單 瀏覽:433
證券交易2012pdf 瀏覽:208
單線程和多線程編譯 瀏覽:155
游戲被加密了刪不了怎麼辦 瀏覽:475
二建6米的柱子加密多少箍筋 瀏覽:648
怎麼簡單易懂的了解伺服器 瀏覽:356
mcpe怎麼看伺服器地址 瀏覽:994
螢石雲智能鎖添加密碼 瀏覽:503
股票自動化交易編程 瀏覽:471
android自定義窗口 瀏覽:921
工程動力學pdf 瀏覽:179
騰訊的雲伺服器是bgp嗎 瀏覽:945
excel弘編程 瀏覽:912
什麼人不適合做程序員 瀏覽:675
喜購app怎麼樣 瀏覽:804
交換機查鄰居命令 瀏覽:343
渲染卡在正在編譯場景幾何體 瀏覽:316