一、前言

处理Image,halcon有它的独特的一套计算习惯。掌握Image处理是学习Halcon的基本功夫,而且初学者越早掌握越有利。本文介绍一个简单操作做练习,此操作实现方法多样,其中最符合halcon平台的才是需要掌握的。

二、 Image变量详解----认识Image

大多数用C的,用JAVA的,用Python的,都有共同的习惯------面向类的存储结构;而halcon的操作方法与以上语言完全不同;一般来说,halcon的对象是不可直接访问的,因而初学者需要抛弃面向对象的习惯,如Image.width(点标记),或iamge[row][col](数组)等的结构思想,在这里不适用;halcon的操作,几乎全部,需要算子(操作函数)参与。我们这里用一段示例代码,直观指出他们的差别,期望读者快速进入halcon的套路习惯中来。

示例:将图像 fabrik 的左上角120X100的矩形区域,拷贝移动到本图(200,200)点上;(先用最像“C”语言的Halcon语言实现)

read_image (Image, 'idem')len_block:=100
high_block := 120
tuple_gen_const( len_block*high_block, 0, rows )
tuple_gen_const( len_block*high_block, 0, cols )
tuple_gen_const( len_block*high_block, 0, gray )for i := 0 to high_block-1 by 1for j := 0 to len_block-1 by 1get_grayval(Image, i, j, Grayval1)rows[i*len_block+j] := icols[i*len_block+j] := jgray[i*len_block+j] := Grayval1 endfor
endforrow0:=200
col0:=200
for Index := 0 to |rows|-1 by 1rows[Index] := row0 + rows[Index]cols[Index] := col0 + cols[Index]
endforset_grayval(Image,  rows ,  cols , gray )
disp_image(Image, 3600)

注意几条关键的Halcon语句,这些都属于简单的访问语句:

  • tuple_gen_const
  • get_grayval
  • set_grayval

初学者可以熟悉一下以上代码,这里也提醒大家,这不是好的halcon代码,“纯正”的Halcon代码如下:

read_image(Image, 'idem')
gen_rectangle1 ( ROI_0, 0, 0, 150, 150 )
get_region_points(ROI_0, Rows, Columns)
get_grayval(Image, Rows, Columns, Grayval)
* 设置平移坐标(200,250)
Rows    := Rows + 200
Columns := Columns+250
set_grayval(Image, Rows, Columns, Grayval)
write_image(Image, 'bmp', 0, 'result')

以上代码虽然“纯正”的halcon代码,但不是最简单代码,最简代码如下:

read_image(Image, 'idem')
dev_open_window_fit_image(Image, 0, 0, -1, -1, WindowHandle)
dev_display(Image)
copy_rectangle(WindowHandle, WinidemdowHandle, 0, 0, 150, 150, 200, 250)

结果图:

halcon初学者知识【16】如何将Image图象的区域拷贝出来?相关推荐

  1. 2021-01-10 Halcon初学者知识 【9】形状匹配【一】准备图像

    Halcon初学者知识 [9]形状匹配[一]准备图像 以下实验实现基于形状的模板匹配.如何制作图片? 在做图片实验的时候,常常需要按照目的制造不同的图像:在实现图像模板匹配识别过程中,首先通过halc ...

  2. 2020-12-17 Halcon初学者知识【4】区域和分割

    2020-12-17 Halcon初学者知识 [4]区域和分割 通过以下一个小项目,你能够学到:1)均值滤波  2)区域合并  3)区域访问  4)文件存储. read_image (Image, ' ...

  3. 2020-12-01 Halcon初学者知识[1] 初始界面

    Halcon初学者知识[1] 初始界面 本篇是为了初学者能够快速进入Halcon操作的入门指导. [1] 在打开Halcon后,有一个start窗口,在此窗口下有许许多多的示例项目.手册.指导等等,不 ...

  4. 2021-01-05 Halcon初学者知识【7】 最简单的测距问题-点与点测距

    Halcon初学者知识[7] 最简单的测距问题-点与点测距 点与点测距的思路,是建立在两个不同坐标点上的距离计算问题.由于在现实中,需要测定的是几何上的点距,比如,两个圆的圆心距离.一个线与另一条线的 ...

  5. Halcon初学者知识【5】画若干个圆

    2020-12-23 Halcon初学者知识[5]画若干个圆 初学者看到draw_circle这样的语句,可能会一头雾水:无法找到此语句的正确执行,我本人曾经以为是被淘汰的语句.此语句的语法是draw ...

  6. 2020-12-08 Halcon初学者知识:【3-1】Halcon的语法

    Halcon初学者知识:[3]Halcon的语法 以下列出Halcon的语句语法: 赋值等号:        :=                            例如:   A :=1000 ...

  7. 2020-12-07 Halcon初学者知识【2】打开图像和显示

    Halcon初学者知识[2]打开图像和显示 最基本的操作,就是读入图片,显示图片,从下面功能一步一步学会Halcon操作. 1)打开一个图像文件,放在自己制定的窗口. read_image(Image ...

  8. Halcon初学者知识:用set_paint直观显示图像的属性

    一.说明 背景知识:首先需要了解halcon的数据类型,见博文: Halcon基础知识:数据类型 就一个图形对象来说,其显示算子有: dev_display disp_obj disp_image d ...

  9. Halcon初学者知识【15】图像的定义域Domain

    什么是domain? 每张图像都有其定义域(domain).可以理解成二维函数的定义域.有几个约束点: 原始domain就是图像的高和宽,是(0,0)到(height-1,width-1)的矩形区域. ...

最新文章

  1. C语言运算符优先级-----从没像现在这样深刻体会
  2. 比特币现金正走在被广泛应用的路上
  3. ROS限速教程全集很实用
  4. 计算机电缆怎么做耐压试验,ZGF直流高压发生器进行电缆耐压试验的6个步骤
  5. Vue.js 整理笔记
  6. hdu 5254(暴力穷举)
  7. 小狗扫地机器人与石头_当戴森遇到石头机器人,从容应对 “猫狗拆家”
  8. tcpdump抓两个网卡的包_tcpdump 抓包统计 分享助,请问用tcpdump抓包后,如何查看每个包...
  9. 回望2017:一个前端从业者砥砺前行的一年
  10. Windows 10标题栏显示颜色
  11. 三星电子预计第四季度营业利润为9万亿韩元 低于分析师预期
  12. The 2021 ICPC Asia Regionals Online Contest (I)
  13. Java使用qq邮箱发送email
  14. C++中的仿函数(functors)和仿函数适配器(adapter function)
  15. 如何将html转化成mp4,怎么把mov转换成mp4格式?方法很简单,1分钟完成转换
  16. chm转换成txt的url顺序问题
  17. 春节晚报 | 2月1日 星期二 | 快手推出首届“新春招工会”;罗永浩称“不做VR和元宇宙”;戴姆勒正式更名为梅赛德斯-奔驰...
  18. 投影仪幕布增益_别再说幕布是花瓶 投影幕布的作用原来这么大
  19. JavaScrpit+Html实现“网页播放视频“效果(应用场景:腾讯PC端视频播放器、以及各视频网站页面开发设计)
  20. 机器学习分类模型评价指标之混淆矩阵

热门文章

  1. Python应用实战案例-Python实现K线图绘制
  2. 从C语言的角度重构数据结构系列(五)-C语言的程序结构和基本语法
  3. Spring + Struts + Hibernate联合开发(多对一关系)
  4. ggplot2设置坐标轴范围_Matplotlib入门-2-坐标轴axis/axes设置
  5. 2000万日订单背后:美团外卖客户端高可用建设体系
  6. 1到1亿的自然数,求所有数的拆分后的数字之和
  7. spring beans源码解读之 ioc容器之始祖--DefaultListableBeanFactory
  8. 强监管下 协议支付会是互金平台救命稻草?(协议支付是代扣协议的升级版)
  9. 机器学习-数据科学库(第一天)
  10. 信用评分卡模型的理论准备