gpt4 book ai didi

linux - OpenCV:检测具有特定颜色的猫。琐碎的?

转载 作者:IT王子 更新时间:2023-10-29 00:58:39 28 4
gpt4 key购买 nike

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

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

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

所以我的问题是。这是使用标准 OpenCV 模块的微不足道的任务吗?

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

我知道有 OpenCV 级联分类器,但从未使用过。

亲切的问候

雅各布

最佳答案

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

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

#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;
}

我得到的一些结果图片

enter image description here enter image description here enter image description here

当您找到令人满意的分类器时,您可以将其用于视频帧,并且可以对检测到的猫的颜色进行过滤。

also you can take a look at

cat detection using latent SVM in opencv

Black Cat Detector (no idea if it works)

关于linux - OpenCV:检测具有特定颜色的猫。琐碎的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157846/

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