Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 裁剪并显示我从Haar Cascade获得的图像_C++_Opencv_Computer Vision_Haar Classifier - Fatal编程技术网

C++ 裁剪并显示我从Haar Cascade获得的图像

C++ 裁剪并显示我从Haar Cascade获得的图像,c++,opencv,computer-vision,haar-classifier,C++,Opencv,Computer Vision,Haar Classifier,我已经训练过Haar cascade,现在我需要使用它。如何从原始图像中裁剪并在新窗口中显示?(或者,如果在图像中发现2个对象,则显示多个窗口)。这是我的代码(opencv 2.4.13版): #包括 #包括 #包括 使用名称空间std; 使用名称空间cv; 内部主(空) { 级联分类器流量级联器; 字符串Cascade_name=“TrafficLight.xml”; 如果(!trafficLightCascader.load(Cascade_name)) { cout你的trafficLig

我已经训练过Haar cascade,现在我需要使用它。如何从原始图像中裁剪并在新窗口中显示?(或者,如果在图像中发现2个对象,则显示多个窗口)。这是我的代码(opencv 2.4.13版):

#包括
#包括
#包括
使用名称空间std;
使用名称空间cv;
内部主(空)
{
级联分类器流量级联器;
字符串Cascade_name=“TrafficLight.xml”;
如果(!trafficLightCascader.load(Cascade_name))
{

cout你的
trafficLights vector
保存着每个矩形中找到的对象的数据。你只需要获取每个矩形的左上坐标、宽度和高度,你就已经有了它们。你所需要的就是通过创建它们的Mat格式并在不同的帧中显示来裁剪每个矩形

您可以查看以了解有关裁剪的更多信息

以下是您需要的代码:

for (int i = 0; i < trafficLights.size(); ++i)
    {   
        Rect crop_found(trafficLights[i].x,trafficLights[i].y, trafficLights[i].width, trafficLights[i].height);

        Mat found(src, crop_found);

        imshow(to_string(i),found);

        rectangle(src, trafficLights[i], Scalar(0, 255, 0), 2, 8, 0);
    }
for(int i=0;i
您的
trafficLights向量
保存着每个矩形中找到的对象的数据。您只需获取每个矩形的左上坐标、宽度和高度,就已经有了它们。您只需通过创建它们的Mat格式并在不同的帧中显示来裁剪每个矩形

您可以查看以了解有关裁剪的更多信息

以下是您需要的代码:

for (int i = 0; i < trafficLights.size(); ++i)
    {   
        Rect crop_found(trafficLights[i].x,trafficLights[i].y, trafficLights[i].width, trafficLights[i].height);

        Mat found(src, crop_found);

        imshow(to_string(i),found);

        rectangle(src, trafficLights[i], Scalar(0, 255, 0), 2, 8, 0);
    }
for(int i=0;i