Halcon模板匹配算子find_shape_model里的参数Row, Column, Angle(单位:弧度)含义是什么?
find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)
先看官方文档怎么说
The position and rotation of the found instances of the model is returned in Row, Column, and Angle. Additionally, the score of each found instance is returned in Score. 找到的模型实例的位置和旋转以行,列和角度返回。 此外,每个找到的实例的分数都在Score中返回。 find_shape_model(Image : : //搜索图像 ModelID, //模板句柄 AngleStart, // 搜索时的起始角度 AngleExtent, //搜索时的角度范围,必须与创建模板时的有交集 MinScore, //最小匹配值,输出的匹配的得分Score 大于该值 NumMatches, //定义要输出的匹配的最大个数 MaxOverlap, //当找到的目标存在重叠时,且重叠大于该值时选择一个好的输出 //如果MaxOverlap=0, 找到的目标区域不能存在重叠, 如果MaxOverla p=1,所有找到的目标区域都要返回。 SubPixel, //计算精度的设置,五种模式,多选2,3 NumLevels, //搜索时金字塔的层数 Greediness : //贪婪度,搜索启发式,一般都设为0.9,越高速度快,容易出现找不到的情况 //0安全慢;1块不稳定;其他就是介于中间值 Row,Column, Angle, Score) //输出匹配位置的行和列坐标、角度、得分。
再来做个小实验
最后来看看halcon源码的实现
*读图1 read_image (Image1, '1.jpg') *获取图像宽高 get_image_size (Image1, Width, Height) dev_open_window_fit_image (Image1, 0, 0, -1, -1, WindowHandle) set_display_font (WindowHandle, 16, 'mono', 'true', 'false') dev_display (Image1) *彩色转灰度图 count_channels (Image1, Channels) if (Channels == 3) rgb1_to_gray (Image1, Image1) *真彩色转灰度图 elseif (Channels == 4) decompose4 (Image1, ImageR, ImageG, ImageB, ImageA) compose3 (ImageR, ImageG, ImageB, MultiChannelImage) rgb1_to_gray (MultiChannelImage, Image1) endif *从图1选取ROI,建立模板 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) area_center (Rectangle, Area, RowRef, ColumnRef) reduce_domain (Image1, Rectangle, ImageReduced) create_shape_model (ImageReduced, 'auto', 0, rad(180), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID) get_shape_model_contours (ShapeModel, ModelID, 1) *读图2 read_image (Image2, '2.jpg') *模板匹配 find_shape_model (Image2, ModelID, 0, rad(180), 0.1, 1, 0.5, 'least_squares', 0, 0.7, Row, Column, Angle, Score) if (|Score| > 0) dev_set_color ('yellow') dev_clear_window() vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, MovementOfObject) affine_trans_contour_xld (ShapeModel, ModelAtNewPosition, MovementOfObject) dev_display (ImageNew1) dev_display (ModelAtNewPosition) endif
转载自:https://blog.csdn.net/libaineu2004/article/details/105415471
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


