and353
初学者
初学者
  • 最后登录2016-12-02
  • 发帖数10
  • 金币52枚
  • 贡献勋章0枚
  • 社区居民
阅读:620回复:10

如何求出图像中两根红线间的距离。

楼主#
更多 发布于:2016-11-25 14:55
大神们求指教,如图两根红线间是笔珠的露珠度,怎么测量这个珠子露出来有多少距离。刚开始学,很菜,望请指教。

图片:1old.jpg

图片:1new.jpg

[and353于2016-11-25 16:52编辑了帖子]

最新喜欢:

likooooolikooo...
上海析图自动化
助理工程师
助理工程师
  • 最后登录2017-02-14
  • 发帖数41
  • 金币222枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-11-26 11:06

图片:1111.jpg


不是用的形态学处理,形态学处理不可靠
and353
初学者
初学者
  • 最后登录2016-12-02
  • 发帖数10
  • 金币52枚
  • 贡献勋章0枚
  • 社区居民
板凳#
发布于:2016-11-26 14:23
上海析图自动化:不是用的形态学处理,形态学处理不可靠回到原帖
怎么处理的,可以提供个思路吗。
qqwty123
专家
专家
  • 最后登录2017-02-21
  • 发帖数191
  • 金币2251枚
  • 贡献勋章1枚
  • 社区居民
  • 忠实会员
地板#
发布于:2016-11-27 20:08
角点
bjliu
助理工程师
助理工程师
  • 最后登录2017-02-24
  • 发帖数48
  • 金币275枚
  • 贡献勋章0枚
  • 社区居民
4楼#
发布于:2016-11-28 11:40
能提供代码吗,学习一下!
RobotV
技术员
技术员
  • 最后登录2017-02-13
  • 发帖数45
  • 金币164枚
  • 贡献勋章0枚
  • 社区居民
5楼#
发布于:2016-11-28 18:59
菜鸟的方法,欢迎指点
read_image (Image10149174deda7c965361e6, 'F:/TestHalcon/10_14917_4deda7c965361e6.jpg')
dev_set_draw('margin')
threshold(Image10149174deda7c965361e6, Region, 0, 130)
fill_up(Region, RegionFillUp)
connection(RegionFillUp, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 500, 99999999)
smallest_rectangle2(SelectedRegions, Row1, Column1, Phi3, Length13, Length23)
gen_rectangle2(Rectangle3, Row1, Column1, Phi3, Length13, Length23)
shape_trans(SelectedRegions, RegionTrans, 'convex')
difference(RegionTrans, SelectedRegions, RegionDifference1)
connection(RegionDifference1, ConnectedRegions1)
opening_rectangle1(ConnectedRegions1, RegionOpening2, 5, 2)
select_shape(RegionOpening2, SelectedRegions1, 'area', 'and', 150, 99999)
union1(SelectedRegions1, RegionUnion)
smallest_rectangle2(RegionUnion, Row4, Column4, Phi4, Length14, Length24)
gen_rectangle2(Rectangle4, Row4, Column4, Phi4, Length14, Length24)
dilation_rectangle1(Rectangle4, RegionDilation1, 1, 3)
difference(SelectedRegions, Rectangle4, RegionDifference2)
connection(RegionDifference2, ConnectedRegions2)
select_shape(ConnectedRegions2, SelectedRegions2, 'area', 'and', 15000, 99999999)
select_shape(ConnectedRegions2, SelectedRegions3, 'area', 'and', 150, 9999)
intersection(SelectedRegions2, RegionDilation1, RegionIntersection1)
move_region(RegionIntersection1, RegionMoved, 1, 0)
union2(Rectangle4, SelectedRegions3, RegionUnion2)
intersection(SelectedRegions, RegionUnion2, RegionIntersection2)
smallest_rectangle2(RegionIntersection2, Row5, Column5, Phi5, Length15, Length25)
gen_rectangle2(Rectangle5, Row5, Column5, Phi5, Length15, Length25)
set_tposition(3600, 100, 100)
write_string (3600, Length25*2)
and353
初学者
初学者
  • 最后登录2016-12-02
  • 发帖数10
  • 金币52枚
  • 贡献勋章0枚
  • 社区居民
6楼#
发布于:2016-11-29 15:20
我是这样想的,取两侧肩膀处的边线,两侧肩线拉成一条直线。然后球珠顶端求个顶点,然后求点到线的距离。
用以下方法画出两肩的线后,不知道怎么获得这两根线的坐标。



read_image (Image, 'I:/1.bmp')
get_image_size(Image, Width, Height)


*rgb1_to_gray(Image, GrayImage)
dev_set_draw ('margin')
dev_set_color ('red')
Row0 := 1150
Col0 := 930
Row1 := 1000
Col1 := 1400
Row2 := 1150
Col2 := 1850
length01 := 70  
length02 := 15
length11 := 270  
length12 := 15
length21 := 70  
length22 := 15
angle0 := rad(90)  
angle1 := rad(90)
angle2 := rad(90)
gen_rectangle2 (Rectangle1, Row0, Col0, angle0, length01 , length02)
gen_rectangle2 (Rectangle2, Row1, Col1, angle1, length11, length12)
gen_rectangle2 (Rectangle3, Row2, Col2, angle2, length21, length22)  


gen_measure_rectangle2 (Row0, Col0, angle0, length01, length02, Width, Height, 'nearest_neighbor', MeasureHandle0)    
gen_measure_rectangle2 (Row1, Col1, angle1, length11, length12, Width, Height, 'nearest_neighbor', MeasureHandle1)  
gen_measure_rectangle2 (Row2, Col2, angle2, length21, length22, Width, Height, 'nearest_neighbor', MeasureHandle2)  


reduce_domain(Image,Rectangle1, ImageReduced1)
edges_sub_pix(ImageReduced1, Edges, 'canny', 0.6, 30, 50)
and353
初学者
初学者
  • 最后登录2016-12-02
  • 发帖数10
  • 金币52枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2016-11-29 15:52
RobotV:菜鸟的方法,欢迎指点
read_image (Image10149174deda7c965361e6, 'F:/TestHalcon/10_14917_4deda7c965361e6.jpg')
dev_set_draw('margin')...
回到原帖
你这个求出来的不是露珠的长度吧。
denny1x2002
助理工程师
助理工程师
  • 最后登录2017-02-24
  • 发帖数37
  • 金币590枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
8楼#
发布于:2016-11-30 09:08
這用一般數學就行
第一條線的Rows的平均值和Cols的平均值
第二條線的Rows的平均值和Cols的平均值
就可以得到兩點!
再透過下面公式去算距離。

图片:123.png



只是不知道你要的精度是要到怎樣!
基本大約距離可以用這方法解
RobotV
技术员
技术员
  • 最后登录2017-02-13
  • 发帖数45
  • 金币164枚
  • 贡献勋章0枚
  • 社区居民
9楼#
发布于:2016-12-03 09:11
and353:你这个求出来的不是露珠的长度吧。回到原帖
我是求出露出来的圆的最小外接矩形,通过矩形的边计算露出来的圆的高度
风一样的季节
助理工程师
助理工程师
  • 最后登录2017-02-24
  • 发帖数43
  • 金币451枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
10楼#
发布于:2017-01-08 21:34
上海析图自动化:不是用的形态学处理,形态学处理不可靠回到原帖
这个你是怎么测的呢?我用轮廓测到87.823,。可以分享一下思路吗?
游客

返回顶部