小编man*_*ans的帖子

OpenCV中是否有任何函数可以找到两个cv :: Rect的交集,并集和补充

OpenCV中是否有任何函数可以找到两个的交集,并集和补充cv::Rect

我可以自己编写它们,但我希望OpenCV中有一些快速功能可以做到这一点.

搜索文档,没有任何功能.

编辑1

正如一些人所解释的那样,对于rects没有联合和补充,所以我查看了可用的函数,我发现在我的情况下,我可以使用

rect = rect1 | rect2 (minimum area rectangle containing rect1 and rect2 )
Run Code Online (Sandbox Code Playgroud)

而不是工会.对于补充,我需要一个类似的函数,定义为:

 rect=rect1 || rect2 (maximum area rectangle containing rect1 but not rect2 )
Run Code Online (Sandbox Code Playgroud)

如下图所示:

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

rect1是黄色,rect2是红色,结果是蓝色.

编写此函数的最快方法是什么?

c++ opencv

1
推荐指数
4
解决办法
8778
查看次数

使用图像观察(opencv)查看驻留在矢量中的图像

在我的代码中,我有与此类似的代码:

std::vector<cv::Mat> myImages=GetMyImages();
Run Code Online (Sandbox Code Playgroud)

我想在 image watch 中看到这些图像,但是 image watch 不会将 myImages 检测为图像,因此不会显示它们。

如何在图像观察窗口中查看一张(或全部)图像?

c++ opencv image visual-studio

1
推荐指数
1
解决办法
735
查看次数

在类中私有定义该类?

如果我写这样的东西:

class myclass
{
#define ADD(x,y) {return x+y}

public:

}
Run Code Online (Sandbox Code Playgroud)

我的班级的私人定义是什么?

请注意我在*.hpp中定义它并且我想确保如果我将此hpp包含到另一个源代码中,则其他源代码无法访问此定义.

有没有比#define在C++中使用更好的解决方案可以做同样的事情?

怎么用?我的班级是否私密?

class myclass
{
using std;

public:

}
Run Code Online (Sandbox Code Playgroud)

c++ c-preprocessor

1
推荐指数
1
解决办法
77
查看次数

stl 中的错误代码是否有任何异常?

我阅读了一些关于异常和错误代码的使用以及它们何时适合的讨论。

我相信在我的情况下例外更好,但我有一个具体问题:

如果我抛出一个 std::runtime_error("this is an error") 然后我抓住了它,我找不到错误是什么,我只知道有一个错误。

我正在寻找的是一个异常,我可以抛出并为其添加错误代码,以便稍后我可以在捕获它时检查错误代码,例如:

 enum errorCodes
 {
        error_1,
        error_2,
        error_3
 }

 try
 {
     throw std::runtime_error(error_1,"can not do the job!");
 }
 catch (std::runtime_error & err)
 {
     switch (err.errorCode)
     {
         case error_1:
            // I can not contunue, so re throw it
             rethrow err;
         case error_2:
            // it is not important for me, so I can continue
           break;
        case error_3: 
            //Oh, I need to do something before continue
            re_init();
            break;
        default:
             rethrow err;
  }
Run Code Online (Sandbox Code Playgroud)

我可以写这样的异常,但在这样做之前,我想知道 STL 或 BOOST …

c++ boost stl exception

1
推荐指数
1
解决办法
3089
查看次数

如何将std :: array转换为std :: vector?

我需要将std :: array转换为std :: vector,但无论如何我都无法快速找到它.以下是示例代码:

 std::array<char,10> myData={0,1,2,3,4,5,6,7,8,9};
Run Code Online (Sandbox Code Playgroud)

现在我需要创建一个矢量,例如:

std::vector<char> myvector;
Run Code Online (Sandbox Code Playgroud)

并使用数组值初始化它.

最快的方法是什么?

c++ arrays vector c++11

1
推荐指数
2
解决办法
4558
查看次数

如何从 yolo8 分割结果创建二进制掩码

我想使用 yolo8 分割图像,然后为图像中具有特定类别的所有对象创建一个掩码。

我开发了这段代码:

img=cv2.imread('images/bus.jpg')
model = YOLO('yolov8m-seg.pt')
results = model.predict(source=img.copy(), save=False, save_txt=False)
class_ids = np.array(results[0].boxes.cls.cpu(), dtype="int")
for i in range(len(class_ids)):
    if class_ids[i]==0:
         empty_image = np.zeros((height, width,3), dtype=np.uint8)
         res_plotted = results[0][i].plot(boxes=0, img=empty_image)

Run Code Online (Sandbox Code Playgroud)

在上面的代码中,res_plotted是一个对象的遮罩,采用 RGB 格式。我想将所有这些图像相互添加,并为所有 0 类对象创建一个掩码(在本例中是行人)

我的问题:

  1. 我怎样才能完成这段代码?
  2. 有没有更好的方法可以在没有循环的情况下实现这一目标?
  3. yolo8 库中有任何实用函数可以做到这一点吗?

python image-segmentation semantic-segmentation yolov8

1
推荐指数
1
解决办法
6163
查看次数

TFS的scrum项目模板

我在我的电脑上安装了Microsoft Visual Studio Scrum 1.0,我将把它上传到我的TFS.我应该在连接到此TFS的每个Visual Studio副本上安装吗?

tfs scrum

0
推荐指数
1
解决办法
221
查看次数

标题c ++中的类定义

我有这个代码:

#include <time.h> 
class ElapsedTime
{   
    time_t _startTime;
public:
    ElapsedTime(void){
        time(&_startTime);  
    }

    double MiliSecond()
    {
        time_t endTime;
        time(&endTime);
        return difftime(_startTime,endTime) * 1000;
    }

    ~ElapsedTime(void);
};
Run Code Online (Sandbox Code Playgroud)

我在我的c ++代码中使用它.它编译但在链接期间生成错误,因为链接器说它无法找到elapsetime定义.

如何在H文件中完全定义类?对于这个简单的类,我不希望有.h和.cpp.

c++ linker visual-c++

0
推荐指数
1
解决办法
59
查看次数

什么类型的对象是opencv :: Mat?它是shared_ptr还是auto_ptr?它是指针吗?

我使用OpenCv,我在代码中使用它类似于以下代码:

Mat Create()
{ 
     Mat myMat(10, 10, CV8U_C1);    
     int x=myMat.Rows; // I am accessing Mat like an object not a pointer. 
     Return myMat;
 }

 Main()
 {
       Mat aMat=Create(); // created inside this function
       int x=aMat.Rows; // accessing it using . notation
       // do some work
       return;   //I did not delete Mat, as it would release its memory.
 }
Run Code Online (Sandbox Code Playgroud)

如何在我的c ++代码中创建类似的对象?

我正在使用STL,但如果需要我也可以使用Boost.

c++ boost opencv stl smart-pointers

0
推荐指数
1
解决办法
3485
查看次数

视觉工作室中的GNU tm相当于什么?

似乎GNU c和visual studio中tm结构的定义是不同的.

在GNU C中,这种结构保存时区数据,但在Visual Studio中却没有.

我从Linux计算机接收时间作为tm结构,我需要映射内存以获取其所有数据.

在visual studio中是否有任何结构与gnu中的tm具有相同的内存占用?

我试图自己写这个结构,但似乎我的大小错了.我在win64中开发,但数据来自32位Linux机器.

Linux中这种结构的大小是多少?

c++ linux time gnu visual-studio

0
推荐指数
1
解决办法
124
查看次数