hgd1234
助理工程师
助理工程师
  • 最后登录2017-06-29
  • 发帖数103
  • 金币469枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
阅读:1053回复:22

关于检测轮廓是直线还是曲线

楼主#
更多 发布于:2016-12-19 15:52
下图中左边白色轮廓是曲的,右边轮廓是直的,请问大家有没办法区分出来呢?

图片:曲线直线检测.jpg

最新喜欢:

yfntiancaiyfntia...
qq906727550
技术员
技术员
  • 最后登录2017-07-26
  • 发帖数82
  • 金币183枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-12-19 17:04
利用圆度区分............
hgd1234
助理工程师
助理工程师
  • 最后登录2017-06-29
  • 发帖数103
  • 金币469枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2016-12-19 22:21
qq906727550:利用圆度区分............回到原帖
请问这个用圆度怎么检测?第一个轮廓也不近似圆呢。
956225453
工程师
工程师
  • 最后登录2017-07-19
  • 发帖数108
  • 金币1090枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
地板#
发布于:2016-12-19 22:34
求金币(程序有注释)

图片:QQ截图20161219223152.bmp

此帖售价 2 金币,已有 19 人购买 [记录] [购买]
此段为出售的内容,购买后显示
fengxiaoyun987
专家
专家
  • 最后登录2017-07-26
  • 发帖数662
  • 金币2298枚
  • 贡献勋章0枚
  • 社区居民
  • 原创写手
4楼#
发布于:2016-12-20 08:41
下载下来看看,感觉有意思!
fengxiaoyun987
专家
专家
  • 最后登录2017-07-26
  • 发帖数662
  • 金币2298枚
  • 贡献勋章0枚
  • 社区居民
  • 原创写手
5楼#
发布于:2016-12-20 08:45
像你说的一样,的确不能直接读取
qqwty123
专家
专家
  • 最后登录2017-07-26
  • 发帖数201
  • 金币2442枚
  • 贡献勋章1枚
  • 社区居民
  • 忠实会员
6楼#
发布于:2016-12-20 08:48
直接按宽度分可以的吧
chentian1207
工程师
工程师
  • 最后登录2017-07-26
  • 发帖数287
  • 金币768枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
7楼#
发布于:2016-12-20 09:11
按y轴方向投影,判断投影的长度应该可以的。。。。
ii
zhmyahg
专家
专家
  • 最后登录2017-07-26
  • 发帖数474
  • 金币3546枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
8楼#
发布于:2016-12-20 09:29
拟合直线,求点到拟合直线的距离,大于阈值的就不是直线
Everything will be alright, tmr will be fine.
fengxiaoyun987
专家
专家
  • 最后登录2017-07-26
  • 发帖数662
  • 金币2298枚
  • 贡献勋章0枚
  • 社区居民
  • 原创写手
9楼#
发布于:2016-12-20 11:35
zhmyahg:拟合直线,求点到拟合直线的距离,大于阈值的就不是直线回到原帖
很厉害的样子
hgd1234
助理工程师
助理工程师
  • 最后登录2017-06-29
  • 发帖数103
  • 金币469枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
10楼#
发布于:2016-12-20 15:16
fengxiaoyun987:很厉害的样子回到原帖
学习了
956225453
工程师
工程师
  • 最后登录2017-07-19
  • 发帖数108
  • 金币1090枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
11楼#
发布于:2016-12-20 16:53
zhmyahg:拟合直线,求点到拟合直线的距离,大于阈值的就不是直线回到原帖
你做出来试试就知道了
zhbitczm
助理工程师
助理工程师
  • 最后登录2017-07-12
  • 发帖数52
  • 金币231枚
  • 贡献勋章0枚
12楼#
发布于:2016-12-21 09:48
外接个矩形,求下宽度,根据宽度来区分
zhbitczm
助理工程师
助理工程师
  • 最后登录2017-07-12
  • 发帖数52
  • 金币231枚
  • 贡献勋章0枚
13楼#
发布于:2016-12-21 10:23
改了下上面那位大神的例子


read_image (Image, 'C:/Users/Micheal/Desktop/3.bmp')
decompose3 (Image, Image1, Image, Image3)

dev_close_window()
get_image_size(Image, Width, Height)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
dev_display(Image)
*筛选出你要检测的区域
threshold (Image, Regions, 85, 255)
*把不连续的分开出来
connection(Regions, ConnectedRegions)
*太小的不要区分
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 10, 99999)
*要检测区域的个数
count_obj(SelectedRegions, Number)
*创建一个空的区域来存放检测结果[不直]
gen_empty_obj(Bend)
*创建一个空的区域来存放检测结果[直]
gen_empty_obj(Just)
*一个一个区域计算
for Index := 1 to Number by 1
    select_obj(SelectedRegions, ObjectSelected, Index)
    smallest_rectangle2 (ObjectSelected, Row, Column, Phi, Length1, Length2)
    gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
    if(Length2<20)
        *相等则Length2<20,加入直的
        concat_obj(Just, ObjectSelected, Just)
    else
        *Length2>20,加入不直的
        concat_obj(Bend, ObjectSelected, Bend)
    endif
endfor
dev_clear_window()
dev_display(Image)
disp_message(WindowHandle, '直:黄色\n不直:红色', 'window', 12, 12, 'coral', 'false')
dev_set_color('red')
dev_display(Bend)
dev_set_color('yellow')
dev_display(Just)
ytnbwy
技术员
技术员
  • 最后登录2017-07-24
  • 发帖数29
  • 金币199枚
  • 贡献勋章0枚
14楼#
发布于:2016-12-21 11:18
上一页
游客

返回顶部