设置首页收藏本站
切换到宽版
开启左侧

求助:不使用模板匹配,如何求出直角交点

[复制链接]
XiaoLuLu 发表于 2026-1-8 11:08:50 | 显示全部楼层 |阅读模式 |来自 广东省广州市
求助,我有一张大图,想求四个角的交点位置。请问不使用模板匹配的情况下,如下图指示位置。
Snipaste_2026-01-08_11-03-22.png

Snipaste_2026-01-08_10-59-00.png



奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
gungun 发表于 2026-1-8 14:17:39 | 显示全部楼层 |来自 广东省东莞市
如果单是一张图,有很多办法
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| XiaoLuLu 发表于 2026-1-9 08:35:30 | 显示全部楼层 |来自 广东省广州市
gungun 发表于 2026-1-8 14:17
如果单是一张图,有很多办法

大佬,请问如何实现,这大图每次检测可能有细微的角度变化,但不会太明显
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
zhynapo 发表于 2026-1-10 16:11:53 | 显示全部楼层 |来自 上海市
办法总比困难多,
无标题.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| XiaoLuLu 发表于 2026-1-13 10:21:38 | 显示全部楼层 |来自 广东省广州市

感谢大佬提供的思路{:1_70:}
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| XiaoLuLu 发表于 2026-1-13 15:47:07 | 显示全部楼层 |来自 广东省广州市
zhynapo 发表于 2026-1-10 16:11
办法总比困难多,

请问这个交点位置测量准确吗,是如何实现的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
zhynapo 发表于 2026-1-15 09:38:21 | 显示全部楼层 |来自 上海市
XiaoLuLu 发表于 2026-1-13 15:47
请问这个交点位置测量准确吗,是如何实现的

阈值分割后,做大尺度形态学变换就可以得到连贯的中间区域,然后做轮廓跟踪,矩形拟合就得到4个角点了。
精度看实际情况
1、如果拍摄的图像角点位置是清晰无破损的,使用角度做矫正可以提高图像精度;
2、如果角度位置是不可靠的,使用边缘拟合更鲁棒,位置精度由整条边保证(需要对图像做畸变矫正)
无标题2.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| XiaoLuLu 发表于 2026-1-15 14:48:25 | 显示全部楼层 |来自 广东省广州市
zhynapo 发表于 2026-1-15 09:38
阈值分割后,做大尺度形态学变换就可以得到连贯的中间区域,然后做轮廓跟踪,矩形拟合就得到4个角点了。
...

谢谢{:1_8:}
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2026-1-20 19:58:35 | 显示全部楼层 |来自 湖北省黄冈市
本帖最后由 halcon2016 于 2026-1-20 20:04 编辑

2026-01-20_195724.png
  1. read_image (Image105930mzlpcacobc6jbv6v, 'C:/Users/Administrator/Desktop/105930mzlpcacobc6jbv6v.png')
  2. rgb1_to_gray(Image105930mzlpcacobc6jbv6v, GrayImage)
  3. threshold (GrayImage, Region, 30, 220)
  4. connection (Region, ConnectedRegions)
  5. select_shape (ConnectedRegions, Region1, 'area', 'and', 8, 18)
  6. union1 (Region1, RegionUnion)
  7. closing_rectangle1 (RegionUnion, RegionClosing1, 100, 100)
  8. gen_contour_region_xld (RegionClosing1, Contours, 'border')
  9. segment_contours_xld (Contours, ContoursSplit, 'lines', 5, 4, 2)
  10. select_contours_xld (ContoursSplit, SelectedContours1, 'contour_length', 500, 700, -0.5, 0.5)
  11. select_shape_xld (SelectedContours1, SelectedXLD1, ['row','orientation'], 'and', [63,-0.1], [820,0.1])
  12. select_shape_xld (SelectedContours1, SelectedXLD2, ['column','orientation'], 'and', [68,1.5], [825,3.4])
  13. concat_obj (SelectedXLD1, SelectedXLD2, ObjectsConcat)
  14. select_obj (ObjectsConcat, ObjectSelected1, [1,3,2,4])
  15. fit_line_contour_xld (ObjectSelected1, 'tukey', -1, 0, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)
  16. intersection_lines (RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], Row1, Column1, IsOverlapping)
  17. intersection_lines (RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], Row2, Column2, IsOverlapping)
  18. intersection_lines (RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], RowBegin[3], ColBegin[3], RowEnd[3], ColEnd[3], Row3, Column3, IsOverlapping)
  19. intersection_lines (RowBegin[3], ColBegin[3], RowEnd[3], ColEnd[3], RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], Row4, Column4, IsOverlapping)
  20. gen_cross_contour_xld (Cross, [Row1,Row2,Row3,Row4], [Column1,Column2,Column3,Column4], 16, 0.785398)
复制代码
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
freeloop 发表于 2026-1-27 14:34:49 | 显示全部楼层 |来自 浙江省杭州市
我仅仅表达一下我自己的想法哈,各位铁子这样写在实际项目中是绝对不能用的。
第一步:缩小范围之后,色阶增强一下
enhanced_contrast(ImageReduced, ImageZoom, 128, 255)
* 色阶补正
if (Min == 0 and Max == 0)
    * 假设输入值为空时
    min_max_gray (InputImg, InputImg, 0, Min, Max, Range)
endif
Mult := 255.0 / (Max - Min)
Add := -Mult * Min
scale_image (InputImg, OutputImg, Mult, Add)
return ()

第二步:横向和竖向使用差异比较大的结构体
mean_image(ImageZoom, ImageMean, 1, 25)  
mean_image(ImageZoom, ImageMean, 25, 1)


第三步:使用抓边函数,这个网站的Criss分享过rake抓边函数,可以找一下


奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表