gpt4 book ai didi

c++ - 使用opencv c++进行静态图像车辆识别

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:54 25 4
gpt4 key购买 nike

我正在做一个项目,使用相机拍照来检测 parking 场的可用 parking 位。

我将使用图像减法来比较 parking 场的空置和占用情况。

这是两张对比图

这是生成的图像:

谁能告诉我怎么做

  1. 识别并在车外放置一个矩形

  2. 输出车号供我以后使用?

代码如下:

    // Test.cpp

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

#include<iostream>

using namespace std;
using namespace cv;

Mat bg_frame;
Mat cam_frame;
Mat diff_frame;
char charCheckForEscKey = 0;

int main() {

while (charCheckForEscKey != 27 /*&& capWebcam.isOpened()*/) {

bg_frame = imread("Picture1.jpg",0);
cam_frame = imread("Picture4.jpg",0);

resize(cam_frame, cam_frame, bg_frame.size());

imshow("test1", bg_frame);
imshow("test2", cam_frame);

absdiff(bg_frame, cam_frame, diff_frame);

threshold(diff_frame, diff_frame, 80, 255, THRESH_BINARY);


//erode(diff_frame, diff_frame, getStructuringElement(MORPH_RECT, Size(1, 1)));

dilate(diff_frame, diff_frame, Mat(), Point(-1, -1));

//Canny(diff_frame, diff_frame, 30, 70);

imshow("test3", diff_frame);

charCheckForEscKey = cv::waitKey(1); // delay (in ms) and get key press, if any
}

return(0);

}

最佳答案

您的问题非常复杂,无法在一个帖子中解决,但我会给您一些解决方法的建议。

思路是对的,你应该比较图像之间的差异。我不建议直接逐像素比较,但它是原型(prototype)的快速解决方案。如需更强大的方法,请查看 background subtraction c++more extense but in python

至于计算车辆数量,考虑到场景的复杂性(重叠的汽车、非统一 parking ),我建议为每辆汽车手动指定感兴趣区域 (ROI)。对每个 ROI 应用您已有的方法,您可以检测该 parking 位是否被占用。

关于如何draw a rectangle在 opencv 中。

void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0);

关于c++ - 使用opencv c++进行静态图像车辆识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42714681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com