好的我有一个奇怪的问题。我会尽力把它描述得最好。
我从侧面看到了我的应用程序以检测汽车
Imgproc.cvtColor(aInputFrame, grayscaleImage, Imgproc.COLOR_RGBA2RGB);
MatOfRect objects = new MatOfRect();
// Use the classifier to detect cars
if (cascadeClassifier != null) {
cascadeClassifier.detectMultiScale(grayscaleImage, objects, 1.1, 1,
2, new Size(absoluteObjectSize, absoluteObjectSize),
new Size());
}
for (int i = 0; i < dataArray.length; i++) {
Core.rectangle(aInputFrame, dataArray[i].tl(), dataArray[i].br(),
new Scalar(0, 255, 0, 255), 3);
mRenderer.setCameraPosition(-5, 5, 60f);
}
现在,这段代码很好用。我的意思是我检测到汽车,并用绿色矩形标记它们。问题是标记的矩形像地狱一样跳跃。我的意思是即使手机保持不动,矩形也会从左向右跳到中间。永远不会有一个矩形。我希望我已经正确地描述了这个问题。我想稳定标记因为我想基于它绘制一个叠加层,我不能让它像这样跳转
答案 0 :(得分:0)
detectMultiScale
的参数并期望
CV_8U
类型的图片。您需要转换为灰度图像
使用COLOR_RGBA2GRAY
代替COLOR_RGBA2RGB
detectMultiScale
中,增加邻居数量参数以避免误报。detectMultiScale
。即使您使用LBP
,它也很慢
级联。尝试在一帧中进行检测,然后进行跟踪技术。