halcon-distance_cc计算两个轮廓之间最小和最大的距离
在HDevelop中
read_image (Image9, 'D:/bb/tu/9.jpg') rgb1_to_gray (Image9, GrayImage) threshold (GrayImage, Region, 200, 255) connection (Region, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 15400, 15500) smallest_rectangle1 (SelectedRegions, Row1, Column1, Row2, Column2) *返回最小外接正矩形数据 gen_rectangle1 (Rectangle, Row1+10, Column1-10, Row2-10, Column2+10) *创建一个平行于坐标轴的矩形区域 *说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边 reduce_domain (GrayImage, Rectangle, ImageReduced) **获取区域图像 edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40) *亚像素边缘 sort_contours_xld (Edges, SortedContours, 'upper_left', 'true', 'column') select_obj (Edges, ObjectSelected, 1) select_obj (Edges, ObjectSelected1, 2) get_contour_xld (ObjectSelected, Row, Col) get_contour_xld (ObjectSelected1, Row3, Col1) distance_cc (ObjectSelected, ObjectSelected1, 'point_to_point', DistanceMin, DistanceMax) *计算两个轮廓之间最小和最大的距离 *参数1:第一个轮廓 *参数2:第二个输入轮廓 *参数3:距离计算模式 * 'point_to_point' 确定轮廓线之间的最小和最大距离 * 'point_to_segment' 轮廓线段之间的实际最小距离 *参数4:返回两个轮廓之间的最小距离 *参数5:两个轮廓之间的最大距离
在QtCreator中
HObject ho_Image9, ho_GrayImage, ho_Region, ho_ConnectedRegions;
HObject ho_SelectedRegions, ho_Rectangle, ho_ImageReduced;
HObject ho_Edges, ho_SortedContours, ho_ObjectSelected;
HObject ho_ObjectSelected1;
HTuple hv_Row1, hv_Column1, hv_Row2, hv_Column2;
HTuple hv_Row, hv_Col, hv_Row3, hv_Col1, hv_DistanceMin;
HTuple hv_DistanceMax;
ReadImage(&ho_Image9, "D:/bb/tu/9.jpg"); Rgb1ToGray(ho_Image9, &ho_GrayImage); Threshold(ho_GrayImage, &ho_Region, 200, 255); Connection(ho_Region, &ho_ConnectedRegions); SelectShape(ho_ConnectedRegions, &ho_SelectedRegions, "area", "and", 15400, 15500); SmallestRectangle1(ho_SelectedRegions, &hv_Row1, &hv_Column1, &hv_Row2, &hv_Column2); //返回最小外接正矩形数据 GenRectangle1(&ho_Rectangle, hv_Row1+10, hv_Column1-10, hv_Row2-10, hv_Column2+10); //创建一个平行于坐标轴的矩形区域 //说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边 ReduceDomain(ho_GrayImage, ho_Rectangle, &ho_ImageReduced); //*获取区域图像 EdgesSubPix(ho_ImageReduced, &ho_Edges, "canny", 1, 20, 40); //亚像素边缘 SortContoursXld(ho_Edges, &ho_SortedContours, "upper_left", "true", "column"); SelectObj(ho_Edges, &ho_ObjectSelected, 1); SelectObj(ho_Edges, &ho_ObjectSelected1, 2); GetContourXld(ho_ObjectSelected, &hv_Row, &hv_Col); GetContourXld(ho_ObjectSelected1, &hv_Row3, &hv_Col1); DistanceCc(ho_ObjectSelected, ho_ObjectSelected1, "point_to_point", &hv_DistanceMin, &hv_DistanceMax); //计算两个轮廓之间最小和最大的距离 //参数1:第一个轮廓 //参数2:第二个输入轮廓 //参数3:距离计算模式 // 'point_to_point' 确定轮廓线之间的最小和最大距离 // 'point_to_segment' 轮廓线段之间的实际最小距离 //参数4:返回两个轮廓之间的最小距离 //参数5:两个轮廓之间的最大距离
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2019-03-22 C++析构函数