# find contours of each welding line # 根据mask的每个类别, 用opencv找轮廓方法进行分类 n_class = self.config["n_class"] img_show, contours_info = FindContour(img, imgROI, n_class)
时间: 2024-03-27 17:41:58 浏览: 7
这段代码的功能是在一个图像中找到每个焊接线的轮廓,并将轮廓信息保存到 contours_info 变量中。
具体来说,首先从配置文件中读取 n_class,即图像中需要分割的类别数。然后调用 FindContour 函数,传入原始图像 img 和提取出的 ROI 图像 imgROI 以及类别数 n_class。FindContour 函数使用 OpenCV 提供的轮廓查找方法,将每个类别的轮廓找到,并将轮廓信息保存到 contours_info 变量中。
返回值 img_show 是一个可视化的结果,用于检查轮廓查找的正确性和每个类别的分割情况。
相关问题
for k_class in range(1, n_class): # 遍历每个类找到对应的轮廓, 相当于分类 mask_k = np.zeros((h_mask, m_mask)).astype(np.uint8) mask_k[np.where(mask == k_class)] = 255 FindContourSinge(k_class, mask_k, contours_info, img_show) return img_show, contours_info
这段代码的作用是在二值掩模图像中找到每个类别对应的轮廓,并将轮廓信息保存在一个列表中,最后将轮廓绘制在原始图像上并返回。
具体来说,代码使用`range(1, n_class)`来遍历每个类别,然后通过`np.where(mask == k_class)`找到当前类别在掩模图像中的像素点位置。
接着,将这些像素点位置设置为255,其余位置为0,生成一个新的掩模图像`mask_k`,用于寻找当前类别对应的轮廓。
然后,调用`FindContourSinge`函数,该函数会在`mask_k`中找到当前类别的轮廓,并将轮廓的信息保存在`contours_info`列表中。
最后,将找到的轮廓绘制在原始图像`img_show`上,返回绘制好轮廓的图像和轮廓信息列表`contours_info`。
# 根据每个轮廓的类型, 找到对应的焊缝轨迹 paths = [] self.welding_pts_3d = [] for k, info in enumerate(contours_info): c_type = info["type"] shape, path, pts_3d, end_point_2d = self.FindTypePath(pm, info) if path is None: vision_log.error(f"no path in {k} contour") img_show = cv2.drawContours( img_show, [info["box"].astype(int)], 0, (0, 0, 0), 5) continue
这段代码的功能是根据每个轮廓的类型,找到对应的焊缝轨迹,并将轨迹信息保存到 paths 和 self.welding_pts_3d 变量中。
具体来说,首先定义一个空列表 paths 和空列表 self.welding_pts_3d,用于保存轨迹信息。然后遍历 contours_info 中的每个轮廓,取出轮廓类型 c_type 和轮廓的其他信息 info。
接着调用 self.FindTypePath 函数,传入 pm 和 info 作为参数。FindTypePath 函数根据轮廓的类型 c_type,找到对应的焊缝轨迹,并返回轨迹的形状 shape、轨迹的像素坐标 path、轨迹的三维坐标 pts_3d 和轨迹的末尾点的像素坐标 end_point_2d。
如果轨迹不存在(即 path 为 None),则在控制台输出错误信息,并在可视化结果 img_show 上绘制出该轮廓的外接矩形框。如果轨迹存在,则将轨迹信息保存到 paths 和 self.welding_pts_3d 中。最终返回可视化结果 img_show。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)