halcon-fit_rectangle2_contour_xld对轮廓进行矩形拟合
在HDevelop中
read_image (Image, 'D:/bb/tu/6.png') get_image_size (Image, Width, Height) rgb1_to_gray(Image,Image1) edges_sub_pix (Image1, Edges, 'canny', 1, 5, 10) *亚像素边缘 fit_rectangle2_contour_xld (Edges, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder) *对轮廓进行矩形拟合--得到矩形数据 *参数1:输入轮廓 *参数2:用于拟合矩形的算法 * 'huber', 'regression', 'tukey' *参数3:用于计算的轮廓点的最大数量 * 所有点:-1 *参数4:轮廓端点之间的最大距离被视为“闭合” *参数5:拟合要忽略的轮廓起点和终点的点数 *参数6:最大迭代次数 *参数7: *参数8:矩形中心的行坐标 *参数9:矩形中心的列坐标 *参数10:矩形主轴的方向(弧度) *参数11:矩形的第一个半径(长度的一半) *参数12:矩形的第二个半径(半宽度) *参数13:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序) gen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2) dev_open_window(10,10,Width, Height,'black',WindowHandle) dev_display (Rectangle) dev_open_window(10,100,Width, Height,'black',WindowHandle1) dev_display (Image)
在Qt Creator中
HObject ho_Image, ho_Image1, ho_Edges, ho_Rectangle;
HTuple hv_Width, hv_Height, hv_Row, hv_Column;
HTuple hv_Phi, hv_Length1, hv_Length2, hv_PointOrder, hv_WindowHandle;
HTuple hv_WindowHandle1;
ReadImage(&ho_Image, "D:/bb/tu/6.png"); GetImageSize(ho_Image, &hv_Width, &hv_Height); Rgb1ToGray(ho_Image, &ho_Image1); EdgesSubPix(ho_Image1, &ho_Edges, "canny", 1, 5, 10); //亚像素边缘 FitRectangle2ContourXld(ho_Edges, "regression", -1, 0, 0, 3, 2, &hv_Row, &hv_Column, &hv_Phi, &hv_Length1, &hv_Length2, &hv_PointOrder); //对轮廓进行矩形拟合--得到矩形数据 //参数1:输入轮廓 //参数2:用于拟合矩形的算法 // 'huber', 'regression', 'tukey' //参数3:用于计算的轮廓点的最大数量 // 所有点:-1 //参数4:轮廓端点之间的最大距离被视为“闭合” //参数5:拟合要忽略的轮廓起点和终点的点数 //参数6:最大迭代次数 //参数7: //参数8:矩形中心的行坐标 //参数9:矩形中心的列坐标 //参数10:矩形主轴的方向(弧度) //参数11:矩形的第一个半径(长度的一半) //参数12:矩形的第二个半径(半宽度) //参数13:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序) GenRectangle2ContourXld(&ho_Rectangle, hv_Row, hv_Column, hv_Phi, hv_Length1, hv_Length2); SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle); HDevWindowStack::Push(hv_WindowHandle); if (HDevWindowStack::IsOpen()) DispObj(ho_Rectangle, HDevWindowStack::GetActive()); SetWindowAttr("background_color","black"); OpenWindow(10,100,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1); HDevWindowStack::Push(hv_WindowHandle1); if (HDevWindowStack::IsOpen()) DispObj(ho_Image, HDevWindowStack::GetActive());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2019-05-01 python-类对象的比较
2019-05-01 Arduino-元件简介