Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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++ 如何找到图像的非方形ROI?_C++_Opencv_Image Processing_Motion Detection_Roi - Fatal编程技术网

C++ 如何找到图像的非方形ROI?

C++ 如何找到图像的非方形ROI?,c++,opencv,image-processing,motion-detection,roi,C++,Opencv,Image Processing,Motion Detection,Roi,我正在寻找一种方法来找到一个非正方形的感兴趣区域。我在这里看到的例子都是基于矩形的。例如我看过一些代码示例,比如当你把鼠标从一个角拖到另一个角时,他们会画一个矩形 我的目标是拍摄一张像下面这样的照片,并用手勾勒出道路的轮廓。这是可能的还是我只需要在上面画一个矩形 编辑:我最初的想法是建立在这些算法的基础上,而不是将鼠标点击标记为角点,我认为我可以将访问的每个点存储在一个向量中。然后我可以使用cv::Mat来填充中间的所有点。不确定它是否会起作用,但这只是一个开始 如果您想手动标记该区域,则可以使

我正在寻找一种方法来找到一个非正方形的感兴趣区域。我在这里看到的例子都是基于矩形的。例如我看过一些代码示例,比如当你把鼠标从一个角拖到另一个角时,他们会画一个矩形

我的目标是拍摄一张像下面这样的照片,并用手勾勒出道路的轮廓。这是可能的还是我只需要在上面画一个矩形

编辑:我最初的想法是建立在这些算法的基础上,而不是将鼠标点击标记为角点,我认为我可以将访问的每个点存储在一个向量中。然后我可以使用cv::Mat来填充中间的所有点。不确定它是否会起作用,但这只是一个开始


如果您想手动标记该区域,则可以使用图形图像编辑环境(如GIMP、Photoshop或MATLAB)来避免麻烦

您还可以使用图像绘制一个窗口,然后调用:

cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse, void* param=NULL )
每次单击列表、数组、dict中的x、y位置时,都可以保存它,如:)。使用此信息构建一个新的垫作为遮罩。使用多边形进行近似:

// Create Polygon from vertices
vector<Point> ROI_Poly;
approxPolyDP(ROI_Vertices, ROI_Poly, 1.0, true);

// Fill polygon white
fillConvexPoly(mask, &ROI_Poly[0], ROI_Poly.size(), 255, 8, 0);       
//从顶点创建多边形
向量ROI_Poly;
APROXPOLYDP(ROI_顶点,ROI_多边形,1.0,真);
//填充多边形白色
FILLCONVERXPOLY(掩模,&ROI_Poly[0],ROI_Poly.size(),255,8,0);
更多信息请点击此处:


顺便说一句,图片很好。因此,一般情况下,框是简单的。但正如你正确指出的那样,它们对道路和天空等无定形的“东西”并不那么好。你有几个选择

  • 创建与原始图像大小相同的遮罩图像。图像中的每个像素都是“道路”,在遮罩中将其设置为1,否则为零,这类似于图像中的“着色”,就像儿童在着色书中一样

  • 使用大致围绕道路边界进行跟踪的多边形。多边形中的点越多,分割越精确

  • 我通常在GIMP中执行这类操作,然后将掩码加载到OpenCV中。对于完整的OpenCV imp,我怀疑您可能需要深入研究支持的QT或OpenGL来制作一个小的图像编辑工具

    我在这里找到了QT的一个链接


    但请注意,我自己并没有尝试过实现这样的功能,我的回答只是想让您了解两种尝试的可能性。

    哇,这很好。很抱歉延迟回信,但这非常有效。谢谢你的帮助。嘿,对不起,我花了一段时间才回来,但是谢谢你的帮助。我考虑过使用QT来生成ROI,可能仍然会,但从来没有弄糟过。他明确提到使用OpenCV