Halcon初学者知识:用set_paint直观显示图像的属性
一、说明
背景知识:首先需要了解halcon的数据类型,见博文:
Halcon基础知识:数据类型
就一个图形对象来说,其显示算子有:
- dev_display
- disp_obj
- disp_image
- disp_region
- disp_xdl
显示中有许多不同点,
- 对象可能不同(image、region、xld)。
- 通道不同,单通道图像的呈现方法。
- 数据侧重点不同。
因此,有一种算子需要重视,如:
- set_paint: 设置设备呈现方法
- dev_set_paint函数方法
二、围绕set_paint的惯用
2.1 set_paint的格式如下
set_paint( : : WindowHandle, Mode : )
与其搭配的语句是: disp_obj, disp_image, and disp_color.
2.2 通过下列操作,能够将当前环境下的Mode提取出来
read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)open_file('my_param', 'output',FileHandle)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle) *写个空行结束
查看my_param文件,可以看到全部当前可以用的Mode:
- dither4_1
- dither4_2
- dither4_3
- threshold 如 ['threshold',Threshold]
- floyd_steinberg
- histogram
- row ['row',Line,Scale]
- column ['row',Line,Scale]
- component_histogram
- mean
- 3d_plot ['3d_plot',Mode,Step,qa,qb,qc,qd,Distance,CenterRow,CenterCol,CenterHeight]
- 3d_plot_lines
- 3d_plot_hidden_lines
- 3d_plot_point
- vector_field
- contour ['contour',15,1]
- lined
- default
三、set_paint函数参数传递方法
需要多个参数的模式,其参数可以通过以下方式传递:
- 仅传递模式名称:分别使用默认值或最近使用的值。
示例:set_paint(WindowHandle,'3d_plot')
- 传递所有值:可以设置所有输出特性。
示例:set_paint(WindowHandle,['3d_plot','shaded', 8,0.939,-0.052,0.296,-0.165,0.401,0.072,-0.047,-0.073])
- 仅传递前 n 个值:仅更改传递的值。
示例:set_paint(WindowHandle,['3d_plot','texture'])
- 某些值由星号 ('*') 替换:替换参数的值未更改。
示例:set_paint(WindowHandle,['3d_plot','*',8])
四、案例集合
3.1 默认
set_paint(WindowHandle,'default')
3.2 显示直方图
read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
3.3 将单通道图像用3d模式显示:
read_image(Image,'fabrik')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle )
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle1 )
disp_obj(Image,WindowHandle)
dev_set_paint('3D-plot')
disp_obj(Image,WindowHandle1)
3.4 以轮廓方式显示
read_image(Image,'fabrik')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle )
set_paint(WindowHandle,'contourline')
dev_display(Image)
read_image(Image,'fabrik')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle )
set_paint(WindowHandle,['contourline',60,1]) * 轮廓线内面积小于60忽略,线宽度1
dev_display(Image)
3.5 以局部方式显示
read_image(Image,'fabrik')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle )
get_system('width',Width)
get_system('height',Height)
set_part(WindowHandle,0,0,Height-1,Width-1)
disp_image(Image,WindowHandle) * 此处将整个屏幕显示出,图片成了局部,相当于镜头拉远draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle) *此处将先取图像的局部矩形显示出来,相当于镜头拉近
3.6 以矢量图方式显示
输出一个向量场。可以显示包含相对坐标的矢量场或包含绝对坐标的矢量场。这种行为是通过可选参数 Mode 控制的。 Mode 的可能值为“auto”(可视化取决于向量场的语义类型)、“absolute”或“relative”。默认值为“自动”。在'vector_field'模式下,在像素位置为每个向量绘制一个直径为CircleSize的圆。此外,使用当前向量绘制线段。绘制向量的步长,即绘制向量之间的距离,可以通过参数 Step 设置。可以使用参数 MinLength 抑制短向量。第四个参数值缩放矢量长度。需要注意的是,通过设置 'vector_field' 只改变内部参数 Mode、Step、MinLength、ScaleLength 和 CircleSize。当前显示模式没有改变。矢量场图像始终显示为矢量场,无论使用 set_paint 选择哪种模式。
read_image(Image,'fabrik')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle )
*set_paint(WindowHandle,['contourline',60,1])
set_paint(WindowHandle,['vector_field','auto',16,2,3,5])
dev_display(Image)
3.7 显示抖色,上述dither4_1不能显示,尚不知道原因,望大家自己研究。
从仿色图案(Dither Pattern)到半调(Halftone) - 知乎 (zhihu.com)
第四章 Dither的原理及其在ADC中的应用 - 百度文库 (baidu.com)
Halcon初学者知识:用set_paint直观显示图像的属性相关推荐
- 2020-12-01 Halcon初学者知识[1] 初始界面
Halcon初学者知识[1] 初始界面 本篇是为了初学者能够快速进入Halcon操作的入门指导. [1] 在打开Halcon后,有一个start窗口,在此窗口下有许许多多的示例项目.手册.指导等等,不 ...
- 2021-01-10 Halcon初学者知识 【9】形状匹配【一】准备图像
Halcon初学者知识 [9]形状匹配[一]准备图像 以下实验实现基于形状的模板匹配.如何制作图片? 在做图片实验的时候,常常需要按照目的制造不同的图像:在实现图像模板匹配识别过程中,首先通过halc ...
- 2021-01-05 Halcon初学者知识【7】 最简单的测距问题-点与点测距
Halcon初学者知识[7] 最简单的测距问题-点与点测距 点与点测距的思路,是建立在两个不同坐标点上的距离计算问题.由于在现实中,需要测定的是几何上的点距,比如,两个圆的圆心距离.一个线与另一条线的 ...
- Halcon初学者知识【5】画若干个圆
2020-12-23 Halcon初学者知识[5]画若干个圆 初学者看到draw_circle这样的语句,可能会一头雾水:无法找到此语句的正确执行,我本人曾经以为是被淘汰的语句.此语句的语法是draw ...
- 2020-12-17 Halcon初学者知识【4】区域和分割
2020-12-17 Halcon初学者知识 [4]区域和分割 通过以下一个小项目,你能够学到:1)均值滤波 2)区域合并 3)区域访问 4)文件存储. read_image (Image, ' ...
- 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初学者知识【16】如何将Image图象的区域拷贝出来?
一.前言 处理Image,halcon有它的独特的一套计算习惯.掌握Image处理是学习Halcon的基本功夫,而且初学者越早掌握越有利.本文介绍一个简单操作做练习,此操作实现方法多样,其中最符合ha ...
- 2021-01-07 Halcon初学者知识【8】 将图像部分内容截取并保存
Halcon的基本概念是[图像,区域,轮廓线],初学者务必要搞清三者区别和联系.以下介绍如何将一个图像的区域截取出来,保存成另外的图像. 有些朋友反映,看不懂我帖子的意思:因此追加以下内容,用来加强概 ...
最新文章
- 想象中的论文答辩和真实的论文答辩!哈哈哈哈哈哈……
- android打开视频噔_android: 播放视频
- ESP8266 WiFi探针 MAC
- ElasticSearch入门 :Windows下安装ElasticSearch
- 深度学总结:weight_initialization
- Python基础——PyCharm版本——第九章、MySQL操作(核心4)
- c# 轻量级ORM框架 实现(一)
- 针对vue ui启动项目抛error
- bzoj 3111: [Zjoi2013]蚂蚁寻路(DP)
- 如何创造一门编程语言?
- 测试对比度的软件,WCAG颜色对比度检测工具,网页及App文字背景配色检测软件...
- 在线文档 - 腾讯文档
- Windows10电脑进行拨号连接时,无法共享热点?如何解决?多次尝试后,终于解决了。
- 微信小程序对接串口摄像头
- Unity中访问GameCenter的实现
- MFC exe文件生成的图标更改方法
- 126邮箱注册测试用例
- 模拟电路60(三角波产生电路)
- [Java版]selenium关键字驱动框架设计实战(二)
- 配置windows服务器+服务器上安装mysql数据库+远程访问数据库
热门文章
- MySQL快速查询的12条建议,让你不止会用select *
- Flink从入门到精通100篇(二十二)-微博基于Flink的机器学习实战项目
- 浅谈Ubuntu上离线安装包的制作与安装问题
- 为什么通常牛顿法比梯度下降法能更快的收敛
- Softmax算法:逻辑回归的扩展
- android+app+wifi+控制+协议,玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(数量无限制)+ Android App控制...
- c语言数字的拆解_C语言解决变态推理题
- 【Python刷题】_1
- Spring Boot 2.0官方文档之 Actuator
- 网易NAPM Andorid SDK实现原理--转