http://www.bubuko.com/infodetail-2274185.html

在Halcon中,Region和XLD之间可以彼此转换。但这种转换并不是“无损”的,XLD可以是不闭合的,但是Region一定是闭合的。因此,如果将不闭合的XLD转为Region,然后再转回XLD,那么转换后的XLD和原先的XLD就有了一定的区别。

言归正传,先说说Region的缩放。

一、Region的缩放

Region的缩放很简单,有zoom_region算子,其签名如下,其中ScaleWidth, ScaleHeight是宽、高的缩放比例因子:

zoom_region(Region : RegionZoom : ScaleWidth, ScaleHeight : )

缩放的时候,Row和Column都根据缩放比例因子来放大或缩小。因此缩放后,Region的位置会移位,如果不想让缩放后的Region移位,可以这样:

set_system (‘clip_region‘, ‘false‘)
zoom_region (Region, RegionZoom, 0.5, 0.5)area_center (Region, Area, Row, Column)
area_center (RegionZoom, Area1, Row1, Column1)
move_region (RegionZoom, RegionMoved, Row - Row1, Column - Column1)

需要注意的是,Region缩放后,经常会有一部分跑到画布外面,Halcon默认是将画布外部的Region进行裁切的,如果不想裁切,可以在程序开始加上set_system (‘clip_region‘, ‘false‘),即不裁切画布外面的部分。

二、XLD的缩放

本文开头分析过,“XLD——Region——XLD”的转换不是无损的,但是如果不介意这一点(或者说影响不大),XLD的缩放就可以通过Region的缩放为中介。

1、使用Region为中介缩放XLD

1 gen_image_const (Image, ‘byte‘, 8200, 4200)
2 set_system (‘clip_region‘, ‘false‘)
3 read_contour_xld_dxf (Contours,‘01.dxf‘, [], [], DxfStatus)
4 *转为region
5 gen_region_contour_xld (Contours, Region, ‘margin‘)
6 *缩放region
7 zoom_region (Region, RegionZoom, 0.2, 0.2)
8 *转回XLD
9 gen_contour_region_xld (RegionZoom, Contours2, ‘border‘)

如果是下面这样的XLD呢?

用上面的方法的话,发现结果完全不对,如下图:

那么应该怎么弄呢?

2、通过缩放XLD中每个点的坐标值来缩放XLD

 1 gen_image_const (Image, ‘byte‘, 8200, 4200)
 2 set_system (‘clip_region‘, ‘false‘)
 3 read_contour_xld_dxf (Contours,‘02.dxf‘, [], [], DxfStatus)
 4 count_obj (Contours, Num)
 5
 6 *XLD上点的采样间隔(为了缩短处理时间)
 7 Step := 10
 8 *缩放比例
 9 Scale := 0.3
10 gen_empty_obj (Contour2)
11 for i := 1 to Num by 1
12     select_obj (Contours, Contour, i)
13     get_contour_xld (Contour, Row, Col)
14     Row1 := []
15     Col1 := []
16     for j := 0 to |Row|-1 by Step
17
18         Row1:=[Row1,Row[j] * Scale]
19         Col1:=[Col1,Col[j] * Scale]
20
21     endfor
22
23     *判断轮廓是不是闭合,如果是闭合的,那么使最后一个点与第一个点重合(即让缩放后的XLD也闭合)
24     test_closed_xld (Contour, IsClosed)
25     if (IsClosed == 1)
26         Row1:=[Row1,Row[0] * Scale]
27         Col1:=[Col1,Col[0] * Scale]
28     endif
29
30     gen_contour_polygon_xld (Contour1, Row1, Col1)
31     smooth_contours_xld (Contour1, SmoothedContours, 5)
32     concat_obj (Contour2, SmoothedContours, Contour2)
33 endfor

其中:

get_contour_xld (Contour, Row, Col)是得到XLD中的一系列点;

gen_contour_polygon_xld (Contour1, Row1, Col1)是通过一系列点重建XLD。

结果如下:

Halcon中缩放Region或XLD的方法研究

( 0)

( 1)

   

举报
评论 一句话评论(0)
共0条  

分享档案
更多>

2018年04月03日 (13)
2018年04月02日 (845)
2018年04月01日 (1104)
2018年03月31日 (1091)
2018年03月30日 (1252)
2018年03月29日 (1217)
2018年03月28日 (1259)
2018年03月27日 (1242)
2018年03月26日 (1001)
2018年03月25日 (937)

最新文章
更多>

  • 二值形态学——开、闭运算  2018-04-02
  • notes  2018-04-02
  • OO第一次反思与总结  2018-04-03
  • Spring与Junit测试整合  2018-04-02
  • 花真完议须果容制iffr8YCp  2018-04-03
  • Spring基础知识1--环境搭建、bean创建、依赖注入、注解注入  2018-04-02
  • 铁乐学python_day09_作业  2018-04-02
  • POJ - 2226 Muddy Fields  2018-04-02
  • BZOJ2152 - 聪聪可可  2018-04-02
  • 4.2  2018-04-02

最新新闻
更多>

  • 北京网信办等部门联合约谈,京东回应认真接受批评,全面严肃整改  2018-04-02
  • 青腾汇私访|保利的野心,再入局万亿级社区消费  2018-04-02
  • 机械革命深海幽灵Z2,开启游戏本全面屏时代!  2018-04-02
  • 拼多多“低价爆款”的全部秘密,都在这家年销量过亿的工厂里  2018-04-02
  • 太疯狂!外卖员闯灯924次,1天闯5次,最高一天18次  2018-04-02
  • 滴滴回应女乘客怀疑司机不轨:正核实 向当事人致歉  2018-04-02
  • 暴风TV发布40吋电视暴风AI电视4(40X)售价999元  2018-04-02
  • ofo否认愚人节传言“与摩拜正商谈合并”  2018-04-02
  • 苹果股价3月份下跌5.8% 曾连续6个交易日下跌  2018-04-02
  • 天宫一号再入大气层坠落南太平洋中部:欢迎你回家!  2018-04-02

教程昨日排行
更多>

  • 1.form
  • 2.strtolower()
  • 3.font
  • 4.background-origin
  • 5.transition-delay
  • 6.选择器:empty
  • 7.line-height
  • 8.PHP Timezones
  • 9.选择器:disabled
  • 10.font-size

友情链接
兰亭集智   国之画   cnbeta   CSDN   博客园    百度统计   站长统计  
阳和移动开发   汇智网      天码营    HarriesBlog    程序员客栈    PHP教程    插件网   
关于我们 - 联系我们 - 留言反馈
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

000002号

http://www.bubuko.com/infodetail-2274185.html相关推荐

  1. 清风电子—keil5,无法运行官方的代码程序,出现这样的错误显示 \objects\main.o:No such file or directory

    清风电子-keil5,无法运行官方的代码程序,出现这样的错误显示 \objects\main.o:No such file or directory 一般有四个原因 1,电脑系统用户名有中文字符(你的 ...

  2. linux 终端 含义,ubuntu终端中@前后的字符串含义及修改-布布扣-bubuko.com

    @后面的代表的是主机名. [email protected],这样在编译程序的时候可以在一行上非常清楚. 1.如果主机名比较长.可以在终端中通过sudu hostname xxx (xxx)表示你想要 ...

  3. 主要用于收集数据库服务器性能参数,数据库-布布扣-bubuko.com

    一系统数据库:  information_schema: 虚拟库, 不占磁盘空间, 存储数据库启动后的一些参数, 如用户表信息, 列信息/权限信息/字符信息等等 performance_schema: ...

  4. hadoop,spark,scala,flink 大数据分布式系统汇总

    20220314 https://shimo.im/docs/YcPW8YY3T6dT86dV/read 尚硅谷大数据文档资料 iceberg相当于对hive的读写,starrocks相当于对mysq ...

  5. delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题

    IOS 9 于17号早上正式开始推送,早上起来立马安装,这次升级包只有1G, 安装空间也大大降低(想起IOS 8 升级时,几乎把手机里面的东西删光了,满眼都是泪). 虽然安装后,网上几乎是铺天盖地的吐 ...

  6. Caffe源码中各种依赖库的作用及简单使用

    1.      Boost库:它是一个可移植.跨平台,提供源代码的C++库,作为标准库的后备. 在Caffe中用到的Boost头文件包括: (1).shared_ptr.hpp:智能指针,使用它可以不 ...

  7. springboot 头像上传 文件流保存 文件流返回浏览器查看 区分操作系统 windows 7 or linux...

    1 //我的会员中心 头像上传接口 2 /*windows 调试*/ 3 @Value("${appImg.location}") 4 private String winPath ...

  8. 用好 Git 和 SVN,轻松驾驭版本管理

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 凌承一 来源 | bubuko.com/infodeta ...

  9. centos开机启动zookeeper

    2019独角兽企业重金招聘Python工程师标准>>> 1.切换目录到/etc/rc.d/init.d 2.创建zookeeper文件 3.然后为这个文件添加可执行权限chmod + ...

最新文章

  1. 中国电子信息工程科技发展十大趋势(2019)发布
  2. java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
  3. mysql, 一对多查询, 统计一表数量
  4. linux自动运行python脚本,执行脚本如何在linux环境下自启动
  5. php表单显示mysql数据库_php用表单形式显示数据库信息
  6. 程序员修神之路--redis做分布式锁可能不那么简单
  7. 菜鸟读jQuery 2.0.3 源码分析系列(1)
  8. 在web项目中集成xfire的方法
  9. matlab画图点形状,matlab画图点的形状
  10. Windows2019在IIS下添加.NET Framework 3.5 NetFx3 失败 (状态为:0x800f0950)的解决办法)
  11. 135编辑器代码是html吗,不会代码,你也能做背景样式!!!
  12. [02]时区时间获取
  13. 人工智能时代,机遇与挑战并存
  14. 小米路由器3刷openWRT系统的实践过程
  15. linux下,pip安装lap出现问题 ,已解决,亲测有效
  16. 值得关注的IT技术博客
  17. JEECG容器化部署:Alpine镜像方式
  18. 云和恩墨2022届春季校招正式启动!
  19. Linux嵌入式开发——C编程
  20. 电影《可可西里》散记

热门文章

  1. Android开源项目及库整理总结
  2. GYM 100827 A.Runes(水~)
  3. 【组队学习】【36期】组队学习内容详情
  4. termux上的c语言编译器,Termux 与 C 基础
  5. VM12 启动虚拟机问题汇总
  6. Matlab数值分析编程:牛顿下山法解方程
  7. win10亮度进度条不见了
  8. Transformer,bert—t for transformers
  9. 我与工具--阅读和知识管理
  10. 什么是测评认证 转自藏锋者