halcon linux qt,Halcon C++混合编程学习之Qt 实现检测焊接点

Halcon C++混合编程学习之Qt 实现检测焊接点

# include "HalconCpp.h"

# include "HDevThread.h"

# include

# include

using namespace HalconCpp;

// Main procedure

void action()

{

// Local iconic variables

HObject ho_Die, ho_Brightregion, ho_ROI, ho_DieROI;

HObject ho_RawSegmentation, ho_Wires, ho_BallRegion, ho_Balls;

HObject ho_FinalBalls;

// Local control variables

HTuple hv_WindowID,hv_WindowID2;

HTuple hv_Width,hv_Height;

ReadImage(&ho_Die, "/home/debug/Halcon_Test/Halcon_Qt_Test/DeteBondPoint/die_03.png");

GetImageSize(ho_Die,&hv_Width,&hv_Height);

SetWindowAttr("background_color","black");

OpenWindow(0,0,hv_Width,hv_Height,0,"","",&hv_WindowID);

HDevWindowStack::Push(hv_WindowID);

DispImage(ho_Die,hv_WindowID);

Threshold(ho_Die, &ho_Brightregion, 128, 255);

ShapeTrans(ho_Brightregion, &ho_ROI, "rectangle2");

ReduceDomain(ho_Die, ho_ROI, &ho_DieROI);

Threshold(ho_DieROI, &ho_RawSegmentation, 0, 50);

FillUpShape(ho_RawSegmentation, &ho_Wires, "area", 1, 100);

OpeningCircle(ho_Wires, &ho_BallRegion, 15.5);

Connection(ho_BallRegion, &ho_Balls);

SelectShape(ho_Balls, &ho_FinalBalls, "circularity", "and", 0.85, 1.0);

if (HDevWindowStack::IsOpen())

SetWindowAttr("background_color","black");

OpenWindow(0,0,hv_Width,hv_Height,0,"","",&hv_WindowID2);

HDevWindowStack::Push(hv_WindowID2);

DispObj(ho_FinalBalls, HDevWindowStack::GetActive());

WaitSeconds(100);

ClearWindow(hv_WindowID);

ClearWindow(hv_WindowID2);

}

int main(int argc, char *argv[])

{

// Default settings used in HDevelop (can be omitted)

int ret=0;

// SetSystem("width", 700);

// SetSystem("height", 600);

XInitThreads();

action();

return ret;

}

结果如下:

401ef0b1323178a0c1fb06272e7572b0.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值