HALCON示例程序forest.hdev识别森林中的树

HALCON示例程序forest.hdev识别森林中的树

示例程序源码(加注释)

  • 关于显示类函数解释
    dev_close_window ()
    dev_update_window (‘off’)
    read_image (Forest, ‘forest_air1’)
    get_image_size (Forest, Width, Height)
    dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
    decompose3 (Forest, Red, Green, Blue)
    dev_display (Red)
  • 二值化
    threshold (Blue, BlueBright, 80, 255)
  • 分割连通域
    connection (BlueBright, BlueBrightConnection)
  • 通过面积进行区域筛选
    select_shape (BlueBrightConnection, Path, ‘area’, ‘and’, 100, 100000000)
    dev_set_color (‘red’)
    dev_set_draw (‘margin’)
    dev_display (Path)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
  • 二值化红色通道图像
    threshold (Red, RedBright, 120, 255)
  • 分割连通域
    connection (RedBright, RedBrightConnection)
  • 使用面积进行区域筛选
    select_shape (RedBrightConnection, RedBrightBig, ‘area’, ‘and’, 1500, 10000000)
  • 使用圆形元素进行闭运算
    closing_circle (RedBrightBig, RedBrightClosing, 7.5)
  • 使用圆形元素进行开运算
    opening_circle (RedBrightClosing, RedBrightOpening, 9.5)
  • 分割连通域
    connection (RedBrightOpening, RedBrightOpeningConnection)
  • 使用面积进行区域筛选
    select_shape (RedBrightOpeningConnection, BeechBig, ‘area’, ‘and’, 1000, 100000000)
  • 使用区域的平均灰度进行区域筛选
    select_gray (BeechBig, Blue, Beech, ‘mean’, ‘and’, 0, 59)
    dev_display (Red)
    dev_display (Beech)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
  • 联合区域
    union1 (Beech, BeechUnion)
  • 返回区域的补集
    complement (BeechUnion, NotBeech)
  • 求取两区域不相交部分
    difference (NotBeech, Path, NotBeechNotPath)
  • 缩小定义域
    reduce_domain (Red, NotBeechNotPath, NotBeechNotPathRed)
  • 二值化
    threshold (NotBeechNotPathRed, BrightRest, 150, 255)
  • 分割连通域
    connection (BrightRest, BrightRestConnection)
  • 通过面积筛选区域
    select_shape (BrightRestConnection, Meadow, ‘area’, ‘and’, 500, 1000000)
    dev_display (Red)
    dev_display (Meadow)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
  • 将两个对象合为一个对象
    union2 (Path, RedBrightClosing, BeechPath)
  • smooth_image - 使用各种滤镜平滑图像。
  • smooth_image(原图:平滑后的图像:滤波器,滤波参数:)
    smooth_image (Red, RedGauss, ‘gauss’, 4.0)
  • invert_image - 反转图像。
    invert_image (RedGauss, Invert)
  • watersheds - 从图像中提取流域和盆地。
  • watersheds (图片:盆地,流域::)
    watersheds (Invert, SpruceRed, Watersheds)
  • 通过面积与灰度进行区域筛选
    select_shape (SpruceRed, SpruceRedLarge, ‘area’, ‘and’, 100, 5000)
    select_gray (SpruceRedLarge, Red, SpruceRedInitial, ‘max’, ‘and’, 100, 200)
  • 生成一个空对象
    gen_empty_obj (LocalThresh)
  • 计算对象数量
    count_obj (SpruceRedInitial, NumSpruce)
    dev_update_var (‘off’)
    dev_update_pc (‘off’)
    for i := 1 to NumSpruce by 1
    • 在组员对象中选取指定对象
      select_obj (SpruceRedInitial, SingleSpruce, i)
    • 求取最大最小灰度值,当第三个参数设置为50时返回中值
      min_max_gray (SingleSpruce, Red, 50, Min, Max, Range)
    • 减少定义域
      reduce_domain (Red, SingleSpruce, SingleSpruceRed)
    • 二值化
      threshold (SingleSpruceRed, SingleSpruceBright, Min, 255)
    • 分割连通域
      connection (SingleSpruceBright, SingleSpruceBrightCon)
    • 选取最大面积的区域
      select_shape_std (SingleSpruceBrightCon, MaxAreaSpruce, ‘max_area’, 70)
    • 将多个区域合并到一个组员下,但不改变对象个数
      concat_obj (MaxAreaSpruce, LocalThresh, LocalThresh)

endfor

  • 开运算
    opening_circle (LocalThresh, FinalSpruce, 1.5)
    dev_set_line_width (2)
    dev_set_color (‘red’)
    dev_display (Red)
    dev_display (FinalSpruce)
    dev_set_color (‘green’)
    dev_display (Beech)
    dev_set_color (‘yellow’)
    dev_display (Meadow)

处理思路

这个例子是主要讲解了如何通过无人机拍摄的图像识别其中的对象。smooth_image 、watersheds 等算子被应用。

后记
大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop学习之路(十八)MapReduce框架Combiner分区

对combiner的理解 combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算,计算规则与reduce一致,所以combiner也可以看作特殊的Reducer。 执行combiner操…

cocos2dx游戏--欢欢英雄传说--添加攻击按钮

接下来添加攻击按钮用于执行攻击动作。同时修复了上一版移动时的bug。修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) {if (_seq)this->stopAction(_seq);auto curPos this->getPosition();if (curPos.x > dest.x)this->setFlippedX(t…

Yii2.0 rules常用验证规则

设置一个修改方法,但是save(),没有成功,数据修改失败,查了好久,一般情况就是不符合rules规则,而我没有设置rules规则,重新设置了一个不能为空,然后就修改成功…

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray) 示例程序源码(加注释) 读入图片 read_image (Image, ‘monkey’)二值化 threshold (Image, Region, 128, 255)分割连通域 conne…

Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Artificial Intelligence and Robotics Research人工智能与机器人研究, 2014, 3, 25-33Published Online May 2014 in Hans. http://www.hanspub.org/journal/airrhttp://dx.doi.org/10.12677/airr.2014.32005

Ceph分布式存储系统-性能测试与优化

测试环境 部署方案:整个Ceph Cluster使用4台ECS,均在同一VPC中,结构如图: 以下是 Ceph 的测试环境,说明如下: Ceph 采用 10.2.10 版本,安装于 CentOS 7.4 版本中;系统为初始安装&…

mysql考试总结

USE school; -- 班级表 CREATE TABLE class(cid TINYINT PRIMARY KEY AUTO_INCREMENT,caption VARCHAR(20) );INSERT INTO class(caption) VALUES("三年二班"),("一年三班"),("三年一班");SELECT * FROM class;-- 老师表 CREATE TABLE teacher(t…

反思

1.说明一下ArrayList和数组的区别,并且分别写出初始化的语句: ArrayList:可以放不同的类型,长度不固定 数组:放同一类型,长度固定 数组的初始化语句:int []anew int []{}; ArrayList初始化语句:…

HALCON示例程序high.hdev使用不同方法提取区域

HALCON示例程序high.hdev使用不同方法提取区域 示例程序源码(加注释) 关于显示类函数解释 dev_close_window () read_image (Mreut, ‘mreut_y’) get_image_size (Mreut, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowHan…

阅读好书依然是提升自己的高效方法:兼以作者的身份告诉大家如何选择书,以及高效学习的方法...

国内技术网站多如牛毛,质量高的网站也不少,博客园也算一个,各类文章数以百万计,我随便输入一个关键字,比如Spring Cloud,都能看到大量的技术文章和教学视频,我无意贬低技术文章和教学视频的作用…

TCP/IP 协议簇的逐层封装

在使用 TCP 协议的网络程序中,用户数据从产生到从网卡发出去一般要经过如下的逐层封装过程: 从下往上看: 1)链路层通过加固定长度的首部、尾部来封装 IP 数据报(Datagram) 产生以太网帧(Frame)。 其中首部存在对封装数据的…

【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸。 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜…

UIProgressView 圆角

里面外面都变成圆角 不用图片 直接改变layer 重点是里面外面都是圆角哦 for (UIImageView * imageview in self.progress.subviews) { imageview.layer.cornerRadius 5; imageview.clipsToBounds YES; } 转载于:https://www.cnblogs.com/huoran1120/p/5563991.html

HALCON示例程序holes.hdev孔洞提取

HALCON示例程序holes.hdev孔洞提取 示例程序源码(加注释) 关于显示类函数解释 read_image (Image, ‘progres’) get_image_size (Image, Width, Height) dev_close_window () dev_open_window (0, 0, Width, Height, ‘white’, WindowID) dev_set_co…

给实例动态增加方法VS给类动态增加方法

一、给实例绑定方法 object.method MethodType(method,object) >>>class Badbrains(): pass >>>def mocking(self): print(Brain\s Mocking) >>>b Badbrains() >>>from types import MethodType >>>b.mocking MethodType(moc…

一句DOS命令搞定文件合并

用Dos的copy命令实现: copy a.jsb.jsc.js abc.js /b 将 a.js b.js c.js 合并为一个 abc.js,最后的 /b 表示文件为二进位文件,copy 命令的其它参数可以在 cmd 里输入 copy /? 学习 举例:如果想要合并多个js文件到某个目录下&#…

DataTables warning: Requested unknown parameter '0' from the data source for row '0'

问题&#xff1a;DataTables warning: Requested unknown parameter 0 from the data source for row 0 代码&#xff1a; <script type"text/javascript">var data [{"Name":"UpdateBootProfile","Result":"PASS",&…

HALCON示例程序hull.hdev区域提取与凸度筛选

HALCON示例程序hull.hdev区域提取与凸度筛选 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 read_image (Hull, ‘hull’) get_image_size (Hull, Width, Height) dev_close_window () dev_open_window (0, 0, Width, Height, ‘black’, WindowID) dev_di…

我与Linux系统的交集

2019独角兽企业重金招聘Python工程师标准>>> 一、初识Linux 第一次知道Linux还是在我刚进大学的时候&#xff0c;从开始聊QQ、玩斗地主的时候起我就是用的Windows&#xff0c;从Windows2000一直到Windows7&#xff0c;当时我已经完全习惯了使用Windows&#xff0c;而…

squid白名单

http_access deny all #取消注释 http_access allow all --> http_access allow xxx_custom_ip#添加系统服务器IP白名单 acl xdaili_custom_ip src 60.191.4.xxx/32 acl xdaili_custom_ip src 139.196.210.xxx/32 acl xdaili_custom_ip src 139.196.172.xxx/32 acl xdail…