8

我有一个问题,我的猫被一只猫欺负,以至于猫在夏天进入我们的房子,吃我们的猫食并睡在我们的家具里。

我的猫是灰色的,问题猫是棕色的。

我想在 Linux 机器上使用 WiFi 动作摄像头和 OpenCV 检测来制作警报系统,但我不再做太多编码了。

所以我的问题是。这是使用标准 OpenCV 模块的简单任务吗?

还是需要大量的原始代码?

我知道有 OpenCV Cascade Classifier,但从未使用过。

亲切的问候

雅各布

4

1 回答 1

1

这是一个非常初步的答案,只是为了展示一种开始你的项目的方法。

您可以尝试为猫找到训练有素的分类器。例如,我发现了这个 并使用下面的代码测试了一些猫图像。

#include <iostream>

#include "opencv2/highgui.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/imgproc.hpp"

using namespace std;
using namespace cv;

int main( int argc, const char** argv )
{
    if (argc < 3)
    {
    cerr << "usage:\n" << argv[0] << " <image_file_name> <model_file_name>" << endl;
    return 0;
    }

    // Read in the input arguments
    string model = argv[2];

    CascadeClassifier detector(model);
    if(detector.empty())
    {
        cerr << "The model could not be loaded." << endl;
    }

    Mat current_image, grayscale;

    // Read in image and perform preprocessing
    current_image = imread(argv[1]);
    cvtColor(current_image, grayscale, CV_BGR2GRAY);

    vector<Rect> objects;
    detector.detectMultiScale(grayscale, objects, 1.05, 1);

    for(int i = 0; i < objects.size(); i++)
    {
        rectangle(current_image, objects[i], Scalar(0, 255, 0),2);
    }

    imshow("result",current_image);
    waitKey();
    return 0;
}

我得到的一些结果图像

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

当你找到一个令人满意的分类器时,你可以将它与视频帧一起使用,你可以用它们的颜色对检测到的猫进行过滤。

你也可以看看

在 opencv 中使用潜在 SVM 检测猫

黑猫探测器(不知道它是否有效)

于 2016-05-11T21:12:50.667 回答