如何用C++调用halcon函数?

 我来答
惠企百科
2022-12-14 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部
  1. 下面是一个用C++调用halcon函数的实例,说明://后面的部分为程序的说明,在程序运行中是不起作用的。

  2. a)  gen_image1_extern函数中的变量width,height必须为HTuple类型,Pointer指针为unsignedchar类型,输入时转换为long型。

    b)  width,height必须与Pointer指向的图像数据的长宽一致。

    c)  Pointer指针在gen_image1_extern函数调用之前分配了内存,之后不要马上释放,否则会出错。应该在确保不再使用Image变量之后再释放。halcon内部会自动释放Image,感觉没有释放Pointer(还需要进一步验证)。

    d)  显示图像时,可能存在着图像的上下翻转,可以按照1中的方法,将图像数据翻转后再调用gen_image1_extern,或者使用halcon中的函数mirror_image()进行翻转。

  3. BITMAPINFO*RotateBmpInfo;

    BYTE*bitBuffer;

    bitBuffer=NULL;

    bitBuffer=newBYTE[sizeof(BITMAPINFO)];

    RotateBmpInfo=(BITMAPINFO*)bitBuffer;

    RotateBmpInfo->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);

    RotateBmpInfo->bmiHeader.biHeight     =Height;

    RotateBmpInfo->bmiHeader.biWidth     =Width;

    RotateBmpInfo->bmiHeader.biPlanes     =1;

    RotateBmpInfo->bmiHeader.biBitCount=24;

    RotateBmpInfo->bmiHeader.biCompression  =BI_RGB;

    RotateBmpInfo->bmiHeader.biSizeImage      =Height*bytewidth;

    RotateBmpInfo->bmiHeader.biXPelsPerMeter=0;

    RotateBmpInfo->bmiHeader.biYPelsPerMeter=0;

    RotateBmpInfo->bmiHeader.biClrUsed         =0;

    RotateBmpInfo->bmiHeader.biClrImportant  =0;

    CWnd*m_pWnd;

    m_pWnd=AfxGetApp()->GetMainWnd();

    CDC*pDC=m_pWnd->GetDC();

    ::StretchDIBits(

    pDC->GetSafeHdc(),

    Width+10,

    Height+10,

  4. 从VC++到Halcon

    unsignedchar*Pointer;
    intwidth,height;
    Pointer=newunsignedchar[width*height];
    inti,j;
    for(i=0;i<height;i++)
    {
    for(j=0;j<width;j++)
    {
    Pointer[i*width+j]=j%255;
    }
    }
    HobjectImage;
    gen_image1_extern(&Image,"byte",(HTuple)width,(HTuple)height,(long)Pointer,NULL);


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式