本文最后更新于:2024年1月14日 晚上
Halcon 中 HImage 为图像的数据结构,本文记录 HALCON 中生成图像的几种方式。
创建图像相关算子
序号 | 算子名称 | 算子含义 |
---|---|---|
1 | copy_image |
复制一个图像并为其分配新的内存。 |
2 | gen_image1 |
从指向像素的指针创建图像。 |
3 | gen_image1_extern |
使用存储管理从像素上的指针创建图像。 |
4 | gen_image1_rect |
从像素上的指针创建一个带有矩形域的图像(带存储管理)。 |
5 | gen_image3 |
创建一个从三个指针到像素(红色/绿色/蓝色)的图像。 |
6 | gen_image3_extern |
使用存储管理从像素上的三个指针创建一个三通道图像。 |
7 | gen_image_const |
创建一个具有常量灰度值的图像。 |
8 | gen_image_gray_ramp |
创建一个灰色值斜坡。 |
9 | gen_image_interleaved |
从指向交错像素的指针创建一个三通道图像。 |
10 | gen_image_proto |
创建具有指定常数灰度值的图像。 |
11 | gen_image_surface_first_order |
用一阶多项式创建一个倾斜的灰色曲面。 |
12 | gen_image_surface_second_order |
用二阶多项式创建一个曲面。 |
13 | region_to_bin |
将区域转换为二进制字节映像。 |
14 | region_to_label |
将区域转换为标签图像。 |
15 | region_to_mean |
用它们的平均灰度值绘制区域。 |
read_image
- 读取图像,作为测试图像
语法:
1 |
|
示例:
1 |
|
copy_image
- 复制一个图像并为其分配新的内存
语法:
1 |
|
示例:
1 |
|
gen_image_const
- 创建指定大小的灰度为 0 的单通道图像
语法:
1 |
|
示例:
1 |
|
gen_image_gray_ramp
- 根据下式创建一个渐变单通道图像
$$
ImageGrayRamp(r,c)=Alpha \times (r-row)+Beta \times (c-col) + 平均值
$$
语法:
1 |
|
- 图像的大小由宽度和高度决定,灰度值的类型为 byte,有效区域外的灰色值会被剪切
- 就是整张图大小为
Width, Height
,围绕Row, Column
为中心,此点均值为Mean
,纵向变化率为Alpha
,横向变化率Beta
,就这么样整个渐变图出来 - 如果数值大于 255 或小于 0 会被置为 255 或 0
- 输出为
byte
格式
示例:
1 |
|
gen_image_surface_first_order
- 该函数和
gen_image_gray_ramp
功能几乎一致,只是可以指定图像类型
语法:
1 |
|
示例:
1 |
|
gen_image_surface_second_order
-
比
gen_image_surface_first_order
算子可以实现更加复杂的图像生成效果 -
公式:
$$
\begin{aligned} \text { ImageSurface }(r, c) & =\text { Alpha }(r-\text { Row })^{2} \ & +\operatorname{Beta}(c-\text { Column })^{2} \ & +\operatorname{Gamma}(r-\text { Row }) *(c-\text { Column }) \ & +\operatorname{Delta}(r-\text { Row }) \ & +\operatorname{Epsilon}(c-\text { Column }) \ & +\text { Zeta }\end{aligned}
$$
语法:
1 |
|
示例:
1 |
|
gen_image_proto
- 生成一张和输入图像一样长宽的指定灰度值的单通道图像
语法:
1 |
|
示例:
1 |
|
不论输入图像通道数为多少,输出图像均为单通道。
gen_image_interleaved
- 通过一个指向交错像素的图像指针来创建一个三通道图像
- 这个函数比较复杂也比较奇怪,要求输入图像的指针指向交错的图像,例如将 RGB 三通道图像按照 RGB像素的顺序压缩写入单通道图像中,然后再用这个函数解构出来,感觉用处不大
语法:
1 |
|
示例:
1 |
|
- 直观上理解为左边的单通道图(RGB压缩到一行,所以宽三倍)提取组成右边的图
gen_image1
- 根据图像数据指针生成单通道
语法:
1 |
|
示例:
1 |
|
gen_image1_extern
- 根据图像数据指针生成单通道,并带有内存管理
语法:
1 |
|
示例:
1 |
|
gen_image3
- 根据图像数据指针生成三通道图像
语法:
1 |
|
示例:
1 |
|
gen_image3_extern
- 根据图像数据指针生成三通道图像,并带有内存管理
语法:
1 |
|
示例:
1 |
|
gen_image1_rect
- 从像素上的指针创建一个带有矩形域的图像(带存储管理)。
- 函数很危险,不建议使用
语法:
1 |
|
示例:
1 |
|
region_to_bin
- 将区域转换为二进制字节映像。
语法:
1 |
|
示例:
1 |
|
region_to_label
- 将区域转换为标签图像。
语法:
1 |
|
示例:
1 |
|
region_to_mean
- 用平均灰度值绘制区域。
语法:
1 |
|
示例:
1 |
|
参考资料
文章链接:
https://www.zywvvd.com/notes/coding/halcon/halcon-image-op/halcon-image-op/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付