#python
import cv2
import numpy as np
def main():
cap = cv2.VideoCapture("D:\\projects\\SampleCode\\006939-master\\ch13\\hog\\vtest.avi")
if not cap.isOpened():
print("Video open failed!")
return -1
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
while True:
ret, frame = cap.read()
if not ret:
break
detected, _ = hog.detectMultiScale(frame)
for x in detected:
color = np.random.randint(0, 256, 3)
cv2.rectangle(frame, x.tolist(), color.tolist(), 3)
cv2.imshow("frame", frame)
if cv2.waitKey(10) == 27:
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
// C++
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap("vtest.avi");
if (!cap.isOpened()) {
cerr << "Video open failed!" << endl;
return -1;
}
HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
Mat frame;
while (true) {
cap >> frame;
if (frame.empty())
break;
vector<Rect> detected;
hog.detectMultiScale(frame, detected);
for (Rect r : detected) {
Scalar c = Scalar(rand() % 256, rand() % 256, rand() % 256);
rectangle(frame, r, c, 3);
}
imshow("frame", frame);
if (waitKey(10) == 27)
break;
}
return 0;
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저

'OpenCV' 카테고리의 다른 글
ch13 template (0) | 2024.05.21 |
---|---|
ch13 QRCode (0) | 2024.05.21 |
ch13 cascade (0) | 2024.05.21 |
ch12 polygon (0) | 2024.05.21 |
ch12 labeling (0) | 2024.05.21 |