halcon初学者知识【16】如何将Image图象的区域拷贝出来?
一、前言
处理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图象的区域拷贝出来?相关推荐
- 2021-01-10 Halcon初学者知识 【9】形状匹配【一】准备图像
Halcon初学者知识 [9]形状匹配[一]准备图像 以下实验实现基于形状的模板匹配.如何制作图片? 在做图片实验的时候,常常需要按照目的制造不同的图像:在实现图像模板匹配识别过程中,首先通过halc ...
- 2020-12-17 Halcon初学者知识【4】区域和分割
2020-12-17 Halcon初学者知识 [4]区域和分割 通过以下一个小项目,你能够学到:1)均值滤波 2)区域合并 3)区域访问 4)文件存储. read_image (Image, ' ...
- 2020-12-01 Halcon初学者知识[1] 初始界面
Halcon初学者知识[1] 初始界面 本篇是为了初学者能够快速进入Halcon操作的入门指导. [1] 在打开Halcon后,有一个start窗口,在此窗口下有许许多多的示例项目.手册.指导等等,不 ...
- 2021-01-05 Halcon初学者知识【7】 最简单的测距问题-点与点测距
Halcon初学者知识[7] 最简单的测距问题-点与点测距 点与点测距的思路,是建立在两个不同坐标点上的距离计算问题.由于在现实中,需要测定的是几何上的点距,比如,两个圆的圆心距离.一个线与另一条线的 ...
- Halcon初学者知识【5】画若干个圆
2020-12-23 Halcon初学者知识[5]画若干个圆 初学者看到draw_circle这样的语句,可能会一头雾水:无法找到此语句的正确执行,我本人曾经以为是被淘汰的语句.此语句的语法是draw ...
- 2020-12-08 Halcon初学者知识:【3-1】Halcon的语法
Halcon初学者知识:[3]Halcon的语法 以下列出Halcon的语句语法: 赋值等号: := 例如: A :=1000 ...
- 2020-12-07 Halcon初学者知识【2】打开图像和显示
Halcon初学者知识[2]打开图像和显示 最基本的操作,就是读入图片,显示图片,从下面功能一步一步学会Halcon操作. 1)打开一个图像文件,放在自己制定的窗口. read_image(Image ...
- Halcon初学者知识:用set_paint直观显示图像的属性
一.说明 背景知识:首先需要了解halcon的数据类型,见博文: Halcon基础知识:数据类型 就一个图形对象来说,其显示算子有: dev_display disp_obj disp_image d ...
- Halcon初学者知识【15】图像的定义域Domain
什么是domain? 每张图像都有其定义域(domain).可以理解成二维函数的定义域.有几个约束点: 原始domain就是图像的高和宽,是(0,0)到(height-1,width-1)的矩形区域. ...
最新文章
- C语言运算符优先级-----从没像现在这样深刻体会
- 比特币现金正走在被广泛应用的路上
- ROS限速教程全集很实用
- 计算机电缆怎么做耐压试验,ZGF直流高压发生器进行电缆耐压试验的6个步骤
- Vue.js 整理笔记
- hdu 5254(暴力穷举)
- 小狗扫地机器人与石头_当戴森遇到石头机器人,从容应对 “猫狗拆家”
- tcpdump抓两个网卡的包_tcpdump 抓包统计 分享助,请问用tcpdump抓包后,如何查看每个包...
- 回望2017:一个前端从业者砥砺前行的一年
- Windows 10标题栏显示颜色
- 三星电子预计第四季度营业利润为9万亿韩元 低于分析师预期
- The 2021 ICPC Asia Regionals Online Contest (I)
- Java使用qq邮箱发送email
- C++中的仿函数(functors)和仿函数适配器(adapter function)
- 如何将html转化成mp4,怎么把mov转换成mp4格式?方法很简单,1分钟完成转换
- chm转换成txt的url顺序问题
- 春节晚报 | 2月1日 星期二 | 快手推出首届“新春招工会”;罗永浩称“不做VR和元宇宙”;戴姆勒正式更名为梅赛德斯-奔驰...
- 投影仪幕布增益_别再说幕布是花瓶 投影幕布的作用原来这么大
- JavaScrpit+Html实现“网页播放视频“效果(应用场景:腾讯PC端视频播放器、以及各视频网站页面开发设计)
- 机器学习分类模型评价指标之混淆矩阵
热门文章
- Python应用实战案例-Python实现K线图绘制
- 从C语言的角度重构数据结构系列(五)-C语言的程序结构和基本语法
- Spring + Struts + Hibernate联合开发(多对一关系)
- ggplot2设置坐标轴范围_Matplotlib入门-2-坐标轴axis/axes设置
- 2000万日订单背后:美团外卖客户端高可用建设体系
- 1到1亿的自然数,求所有数的拆分后的数字之和
- spring beans源码解读之 ioc容器之始祖--DefaultListableBeanFactory
- 强监管下 协议支付会是互金平台救命稻草?(协议支付是代扣协议的升级版)
- 机器学习-数据科学库(第一天)
- 信用评分卡模型的理论准备