spcyk
助理工程师
助理工程师
  • 最后登录2017-11-13
  • 发帖数118
  • 金币540枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
阅读:1281回复:5

求助大神!关于9个圆到矩形固定的一条边的距离的代码程序!

楼主#
更多 发布于:2016-02-29 19:14
如图1所示,有一个矩形边框,里面有9个圆。
需要计算每个圆到矩形的一条固定边(即无论图片怎么旋转,都要是固定的那条边----如图2中那条边,圆的右边那条线)的距离程序!
spcyk
助理工程师
助理工程师
  • 最后登录2017-11-13
  • 发帖数118
  • 金币540枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-02-29 19:19
希望大神们,提供一些想法,相关的算子等,小弟刚刚接触Halcon,对这一块不是很熟悉,恳请大神们帮忙支招。现在自己做到shape_trans_xld算子得到这个矩形轮廓(坐标首尾相连的矩形),想用segment_contour_xld,却是分割不出来。
qing0zui
工程师
工程师
  • 最后登录2016-08-31
  • 发帖数110
  • 金币885枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2016-03-01 08:28
我也是刚接触halcon算子还不熟悉,说一下思路,你这个应该很简单,首先找到圆,然后确定圆心,在找到边的直线,测点到直线距离就OK了。希望对你有帮助。
tanxiangming3
高级工程师
高级工程师
  • 最后登录2017-08-16
  • 发帖数129
  • 金币1217枚
  • 贡献勋章0枚
  • 社区居民
地板#
发布于:2016-03-01 09:23
輪廓很清晰,可以先仿射,然後再確定到固定邊的距離應該就可以了
steven
助理工程师
助理工程师
  • 最后登录2017-11-16
  • 发帖数26
  • 金币437枚
  • 贡献勋章0枚
  • 社区居民
4楼#
发布于:2016-03-01 11:17
看这个行不行:read_image(Image,'3')
rgb1_to_gray(Image,GrayImage)
get_image_size(GrayImage,Width,Height)


threshold(GrayImage,Region,0,128)
connection(Region,ConnectedRegions)
fill_up(ConnectedRegions,RegionFillUp)
select_shape(RegionFillUp,SelectedRegions,'roundness','and',0.8,1)
shape_trans(SelectedRegions,RegionTrans,'circle')
area_center(RegionTrans,Area,Row,Colum)
tuple_mean(Column,Mean1)
tuple_mean(Row,Mean2)


select_shape(RegionFillUp,SelectRegions1,'area','and',1000,99999)
shape_trans(SelectedRegions1,RegionTrans1,'rectangle2')
gen_contour_region_xld(RegionTrans1,Contours,'border')
segment_contours_xld(Contours,ContoursSplit,'lines',5,4,2)
count_obj(ContoursSplit,Number)


for Index:=1 to Number by 1
select_obj(ContoursSplit,ObjectSelected,Index)
orientation_xld(ObjectSelected,Phi)
if(abs(Phi)<rad(10))
area_center_xld(ObjectSelected,Area1,Row1,Column1,PointOrder)
if(Mean2>Row1)
fit_line_contour_xld(ObjectSelected,'tukey',-1,0,5,2,RowBegin,ColBegin,RowEnd,ColEnd,Nr,Nc,Dist)
distance_pl(Row,Column,RowBegin,ColBegin,RowEnd,ColEnd,Distance)
endif
endif
endfor
spcyk
助理工程师
助理工程师
  • 最后登录2017-11-13
  • 发帖数118
  • 金币540枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
5楼#
发布于:2016-03-01 13:03
steven:看这个行不行:read_image(Image,'3')
rgb1_to_gray(Image,GrayImage)
get_image_size(GrayImage,Width,Height)


threshold(GrayI...
回到原帖
能请教一下segment_contours_xld这个算子怎么用吗?我在做的过程中根据边缘得到了一个有四个圆角的矩形,gen_contour_region_xld算子生成了一个外接矩形,但是无法把这个矩形拆分开!参数也跟你设置的一样,这是什么原因呢?
游客

返回顶部