我们现在已经知道 OpenCV 可以拿来处理影像,这样的成效又适用在什麽领域? 或是能对生活有什麽帮助吗?
像是近两年新型冠状病毒的疫情越演越烈,出入各个场所人人都必须戴着口罩,如果单靠人力控管,一定会有所疏失,我们这时就能配合 AI 的使用
→ 辨识
物件的系统,自动侦测到未戴口罩的民众,并增加辨识上的精确度。
我们之所以能够辨别物体的不同,是因为我们可以透过学习该物体的特徵,例如猫&狗:
因此在图形辨识很重要的步骤是必须建立特徵分类器
→ cv2.CascadeClassifier
记得要先下载 haarcascade 的模型 .xml 档 !
faceClassi = cv2.CascadeClassifier(cascPath)
再来是侦测
图片 → 用detectMultiScale
函数检测,调整函数的参数使检测结果更加精确!
faces = faceCascade.detectMultiScale( gray, scaleFactor=1.12 , minNeighbors=5,
minSize=(30, 30), flags = cv2.cv.CV_HAAR_SCALE_IMAGE )
- gray代表是灰阶图片
- scaleFactor是图像的缩放比例
- minNeighbors针对目标进行检测的次数
- minSize检测目标的最小尺寸
scaleFactor,minNeighbors,minSize数值大小将影响辨识结果,须依状况进行调整
接下来将检测到的人脸(或物体)框出来
~!
以下使用 cv2.rectangle
函数画方框。
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
x, y, w, h 是图像物件要被框出时很重要的座标
(x,y)是左上角的座标, w 是宽度, h 则是高度
最後再显示图片就大功告成了!
cv2.imshow('My Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
实际执行结果:
<<: [DAY9] Boxenn 实作 Entity 与 Value Object
>>: #09 No-code 之旅 — 怎麽在 Client-side 抓取资料?SWR 简介
续 Day 12 今天的特别理论和抽象,所以懒得看就跳过吧! 系统模型和现实 (System Mo...
Promise:适用於非同步的运算上。 本身就是建构函式 console.log(Promise);...
ORM 框架可以让开发者专注於物件的 CRUD 操作,不必直接思考 SQL 要怎麽写。如果是新增、修...
这边为一道设计过的 Docker Debug 挑战题目,初始环境有所设置错误,请大家帮忙找出 Do...
我整理一下自己的安装步骤如下: 一、升级 Kernel sudo -i dnf check-upd...