• halcon算子翻译——gen_image1_rect


    名称

      gen_image1_rect - 使用指向像素的指针(使用存储管理)创建具有矩形域(ROI)的图像。

    用法

      gen_image1_rect( : Image : PixelPointer, Width, Height, VerticalPitch, HorizontalBitPitch, BitsPerPixel, DoCopy, ClearProc : )

    描述

      算子gen_image1_rect创建大小为(VerticalPitch /(HorizontalBitPitch / 8))*Height的图像。 PixelPointer指向的像素是逐行存储的。 请注意,如何传递一个指针值取决于所使用的算子和编程环境。 确保传递存储图像数据的实际内存地址,而不是指针变量的地址。 必须注意不要在64位体系结构上截断64位指针。

      VerticalPitch决定内存中第n行像素m与第n + 1行像素m之间的距离(以字节为单位)。 “输入图像”的所有行具有相同的垂直间距。 输出图像的宽度为VerticalPitch /(HorizontalBitPitch / 8),高度为Height。 输出图像的Image的域是一个尺寸为Width * Height的矩形。 参数HorizontalBitPitch是两个相邻像素之间的水平距离(以位为单位)。 BitsPerPixel是每像素使用的位数。

      如果DoCopy设置为“true”,则由PixelPointer指向的图像数据将被复制,新图像的内存将由HALCON重新分配。 否则图像数据不会被复制,并且PixelPointer指向的内存空间在删除对象Image时必须被释放。 这是由调用者提供的程序ClearProc完成的。 此函数必须具有以下形式:

      void ClearProc(void* ptr);

      并在删除图像时使用__cdecl调用约定进行调用。 如果内存不应该释放(在图像采集卡或静态存储器的情况下),则可以传递“无中继”或NULL指针的函数。 类似于参数PixelPointer,指针必须根据使用的算子用法和编程环境传递给函数。 如果DoCopy为“true”,那么ClearProc就无关紧要了。 算子gen_image1_rect与get_image_pointer1_rect对称。

    并行

    ●  多线程类型:可重入(与非独占算子并行运行)。
    ●  多线程范围:全局(可以从任何线程调用)。
    ●  不并行化处理。

    参数

    Image (output_object)   image → object (byte / uint2 / int4)
      创建的Halcon图像。


    PixelPointer (input_control)    pointer → (integer)
      指向第一个像素的指针。


    Width (input_control)    extent.x → (integer)
      图像的宽度。
      Default value: 512
      Suggested values: 128, 256, 512, 1024
      Typical range of values: 1 ≤ Width ≤ 512 (lin)
      Minimum increment: 1
      Recommended increment: 10
      Restriction: Width >= 1


    Height (input_control)    extent.y → (integer)
      图像的高度。
      Default value: 512
      Suggested values: 128, 256, 512, 1024
      Typical range of values: 1 ≤ Height ≤ 512 (lin)
      Minimum increment: 1
      Recommended increment: 10
      Restriction: Height >= 1


    VerticalPitch (input_control)    integer → (integer)
      “输入图像”第n行中的像素m与行n + 1中的像素m之间的距离(以字节为单位)。
      Restriction: VerticalPitch >= (Width * (HorizontalBitPitch / 8))


    HorizontalBitPitch (input_control)    integer → (integer)
      两个相邻像素之间的距离
      Default value: 8
      List of values: 8, 16, 32


    BitsPerPixel (input_control)    integer → (integer)
      每像素使用的位数。
      Default value: 8
      List of values: 8, 9, 10, 11, 12, 13, 14, 15, 16, 32
      Restriction: BitsPerPixel <= HorizontalBitPitch


    DoCopy (input_control)    string → (string)
      是否复制图像。
      Default value: 'false'
      Suggested values: 'true', 'false'


    ClearProc (input_control)    pointer → (integer)
      指向删除对象时释放图像内存的函数。
      Default value: 0

    Example (C)

    void NewImage(Hobject *new)
    {
      unsigned char       *image;
      int                 r,c;
    
      image = malloc(640*480);
      for (r=0; r<480; r++)
        for (c=0; c<640; c++)
          image[r*640+c] = c % 255;
      gen_image1_rect(new,(Hlong)image,400,480,640,8,8,'false',(long)free);
    }

    结果

    如果参数值正确,则算子gen_image1_rect将返回值2(H_MSG_TRUE)。 否则会引发异常。

    Possible Successors

    get_image_pointer1_rect

    Alternatives

    gen_image1, gen_image1_extern, gen_image_const

    See also

    get_image_pointer1_rect

    模块

    Foundation

  • 相关阅读:
    WebClient和HttpClient, 以及webapi上传图片
    asp.net mvc 中的部分视图
    所有池连接均在使用,并且达到了最大池大小。
    Entity Framework with nolock. 允许脏读
    [代码片段]javascript检查图片大小和格式
    八幅漫画理解使用JSON Web Token设计单点登录系统
    JSON Web Token
    firemonkey 得到屏幕信息
    IdTCPServer, idTCPClient
    FireMonkey消息机制
  • 原文地址:https://www.cnblogs.com/xhiong/p/gen_image1_rect.html
Copyright © 2020-2023  润新知