一、说明

背景知识:首先需要了解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直观显示图像的属性相关推荐

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

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

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

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

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

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

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

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

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

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

  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初学者知识【16】如何将Image图象的区域拷贝出来?

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

  9. 2021-01-07 Halcon初学者知识【8】 将图像部分内容截取并保存

    Halcon的基本概念是[图像,区域,轮廓线],初学者务必要搞清三者区别和联系.以下介绍如何将一个图像的区域截取出来,保存成另外的图像. 有些朋友反映,看不懂我帖子的意思:因此追加以下内容,用来加强概 ...

最新文章

  1. 想象中的论文答辩和真实的论文答辩!哈哈哈哈哈哈……
  2. android打开视频噔_android: 播放视频
  3. ESP8266 WiFi探针 MAC
  4. ElasticSearch入门 :Windows下安装ElasticSearch
  5. 深度学总结:weight_initialization
  6. Python基础——PyCharm版本——第九章、MySQL操作(核心4)
  7. c# 轻量级ORM框架 实现(一)
  8. 针对vue ui启动项目抛error
  9. bzoj 3111: [Zjoi2013]蚂蚁寻路(DP)
  10. 如何创造一门编程语言?
  11. 测试对比度的软件,WCAG颜色对比度检测工具,网页及App文字背景配色检测软件...
  12. 在线文档 - 腾讯文档
  13. Windows10电脑进行拨号连接时,无法共享热点?如何解决?多次尝试后,终于解决了。
  14. 微信小程序对接串口摄像头
  15. Unity中访问GameCenter的实现
  16. MFC exe文件生成的图标更改方法
  17. 126邮箱注册测试用例
  18. 模拟电路60(三角波产生电路)
  19. [Java版]selenium关键字驱动框架设计实战(二)
  20. 配置windows服务器+服务器上安装mysql数据库+远程访问数据库

热门文章

  1. MySQL快速查询的12条建议,让你不止会用select *
  2. Flink从入门到精通100篇(二十二)-微博基于Flink的机器学习实战项目
  3. 浅谈Ubuntu上离线安装包的制作与安装问题
  4. 为什么通常牛顿法比梯度下降法能更快的收敛
  5. Softmax算法:逻辑回归的扩展
  6. android+app+wifi+控制+协议,玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(数量无限制)+ Android App控制...
  7. c语言数字的拆解_C语言解决变态推理题
  8. 【Python刷题】_1
  9. Spring Boot 2.0官方文档之 Actuator
  10. 网易NAPM Andorid SDK实现原理--转