- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 Opencv项目,正在使用C++。我被困在计算运动物体的距离和速度。
问题:
I have detected moving cars in video using Haar classifier in Opencv.
But didn't find any way to calculate moving objects
distance from camera as well as moving objects speed.
I want to achieve this using only 1 Camera. I am not using Stereo vision.
这是我的代码:
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
CvHaarClassifierCascade *cascade;
CvMemStorage *storage;
void detect(IplImage *img);
int main(int argc, char** argv)
{
CvCapture *capture;
IplImage *frame;
int input_resize_percent = 100;
if(argc < 3)
{
std::cout << "Usage " << argv[0] << " cascade.xml video.avi" << std::endl;
return 0;
}
if(argc == 4)
{
input_resize_percent = atoi(argv[3]);
std::cout << "Resizing to: " << input_resize_percent << "%" << std::endl;
}
cascade = (CvHaarClassifierCascade*) cvLoad(argv[1], 0, 0, 0);
storage = cvCreateMemStorage(0);
capture = cvCaptureFromAVI(argv[2]);
assert(cascade && storage && capture);
cvNamedWindow("video", 1);
IplImage* frame1 = cvQueryFrame(capture);
frame = cvCreateImage(cvSize((int)((frame1->width*input_resize_percent)/100) , (int)((frame1->height*input_resize_percent)/100)), frame1->depth, frame1->nChannels);
const int KEY_SPACE = 32;
const int KEY_ESC = 27;
int key = 0;
do
{
frame1 = cvQueryFrame(capture);
if(!frame1)
break;
cvResize(frame1, frame);
detect(frame);
key = cvWaitKey(10);
if(key == KEY_SPACE)
key = cvWaitKey(0);
if(key == KEY_ESC)
break;
}while(1);
cvDestroyAllWindows();
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
cvReleaseHaarClassifierCascade(&cascade);
cvReleaseMemStorage(&storage);
return 0;
}
void detect(IplImage *img)
{
CvSize img_size = cvGetSize(img);
CvSeq *object = cvHaarDetectObjects(
img,
cascade,
storage,
1.1, //1.1,//1.5, //-------------------SCALE FACTOR
1, //2 //------------------MIN NEIGHBOURS
0, //CV_HAAR_DO_CANNY_PRUNING
cvSize(0,0),//cvSize( 30,30), // ------MINSIZE
img_size //cvSize(70,70)//cvSize(640,480) //---------MAXSIZE
);
std::cout << "Total: " << object->total << " cars" << std::endl;
for(int i = 0 ; i < ( object ? object->total : 0 ) ; i++)
{
CvRect *r = (CvRect*)cvGetSeqElem(object, i);
cvRectangle(img,
cvPoint(r->x, r->y),
cvPoint(r->x + r->width, r->y + r->height),
CV_RGB(255, 0, 0), 2, 8, 0);
}
cvShowImage("video", img);
}
如果您有任何示例,请提供更好的理解。它的赞赏。
最佳答案
我怀疑精度,但是下面提到的方法可以在某种程度上帮助您找到物体(运动)的距离。
关于c++ - Opencv-如何在Haar分类器串级中计算到摄像机的移动物体距离和速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21232301/
我使用以下代码使用OpenCv Python提供的Haar级联分类器检测人脸。但是未检测到脸部,并且未绘制脸部周围的正方形。如何解决呢? import cv2 index=raw_input("Ent
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我已经创建了多个 haar 级联面部分类器。我每次都使用不同数量的正面和负面。 例如, 第一个分类器:5000 个正类和 3000 个负类 第 2 个分类器:3000 个正类和 3000 个负类(删除
我想知道 OpenCV 中的 Haar Object Detection Api (Python) 是否都受专利保护?据我了解,SIFT、SURF 和 Haar Cascade 已获得专利,但我不太清
我正在尝试训练 Haar 分类器,但是在 Stage 2 期间它停止并显示消息 Killed PARAMETERS: cascadeDirName: classifier vecFileName: s
我想了解 haar 分类器的工作原理。我在这里阅读 opencv 文档:http://docs.opencv.org/modules/objdetect/doc/cascade_classificat
OpenCV Haar 级联分类器似乎使用 24x24 的人脸图像作为其正面训练数据。我有两个问题: 除了较大的训练图像需要更多处理之外,选择训练图像大小还有哪些考虑因素? 对于非正方形图像,some
我正在尝试使用提供的 xml 文件 haarcascade_frontalface_alt 和 hogcascade_pedestrians.xml 检测人脸和行人。到目前为止,我可以进行一些检测,但
我正在通过“opencv_createsamples.exe”在 opencv 2.1 中创建示例,但我在第 1 行遇到解析错误。 文件 positives.txt 包含: c:\haar\Posit
您能否帮助了解与 Haar 分类器培训相关的几点: 1)正图像应该只包含训练对象还是可以包含其他一些对象?就像我想识别一些交通标志一样,正面图像应该只包含交通标志还是也可以包含高速公路? 2)创建样本
我正在使用这个数据集:http://www.robots.ox.ac.uk/~vgg/data/hands/ 但是,我只会使用面积大于 4200 平方像素的手,这让我只有 621 只手。我意识到这可能
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我目前有一个 Java 程序可以获取图像中每个像素的 rgb 值。我还有一种在二维值矩阵上计算 Haar 小波的方法。但是我不知道应该为计算 Haar 小波的方法赋予哪些值。我应该平均每个像素的 rg
当我调暗灯光时,我注意到面部 Haar 级联很难找到我的脸。 (甚至没有那么黑!) 当灯光变暗时,我如何才能像灯光打开一样进行跟踪? 最佳答案 假设照明条件仍然足以区分面部细节,您可以尝试increa
我正在尝试将视频分割成前景和背景。假设我的视频主要是人脸,我从人脸检测器开始,使用人脸检测器内的所有像素作为 GrabCut 的可能前景种子。 问题是有时(在几帧内),人脸检测器不会检测到人脸,尽管人
我训练了一个 HAAR 分类器来检测来自网络摄像头的实时视频馈送中的手。我使用了 621 个正片和 3712 个负片。 我使用 opencv_createsamples 为阳性生成 vec 文件:./
我看到 OpenCV 中有 2 个不同的 Haar Cascade 数据集。例如,查看 haarcascade_upperbody.xml 和 haarcascade_mcs_upperbody.xm
我已经使用下面的教程来检测对象并获取包含对象的矩形的坐标 https://docs.opencv.org/3.3.1/d2/d99/tutorial_js_face_detection.html 但是
我正在学校开展一个项目,检测教室里有多少学生。就像在这张照片中一样。 一直尝试用opencv中的Haar Cascade进行人脸检测来检测人,但是结果很糟糕。像这样: 我在类里面拍了数千张照片,然后手
我正在尝试使用 OpenCV 和 Haar 级联制作手部检测程序。它工作得很好,但它非常生涩。所以我在问自己,这是否是 haar 文件的问题,它太“便宜”了,或者是否有一种方法可以通过使用轮廓或特征检
我是一名优秀的程序员,十分优秀!