zoukankan      html  css  js  c++  java
  • halcon图像合并(贴图到指定位置)

    在51halcon上看到一个需求,需要将一张小图去背景后贴在大图的指定位置,通过博客https://www.cnblogs.com/lgyup/p/8472840.html启发,

    PS:自己试验使用每个像素循环绘制方式发现效率太差改用博客使用的数组连续绘制的方式.

    *读图
    read_image (Image, 'C:/Users/yoga/Desktop/测试图像/月亮.png')
    read_image (ImagePart, 'C:/Users/yoga/Desktop/测试图像/飞机.png')
    dev_update_off ()
    count_seconds (Seconds)
    *rgb分离
    decompose3 (Image, ImageR, ImageG, ImageB)
    decompose3 (ImagePart, ImagePartR, ImagePartG, ImagePartB)
    
    *获取目标点
    threshold (ImageR, Region, 128, 255)
    connection (Region, ConnectedRegions)
    select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
    area_center (SelectedRegions, Area, Row, Column)
    
    *飞机去背景
    auto_threshold (ImagePartR, Regions1, 2)
    select_shape_std (Regions1, SelectedRegions1, 'max_area', 70)
    connection (SelectedRegions1, ConnectedRegions1)
    select_shape_std (ConnectedRegions1, SelectedRegions2, 'max_area', 70)
    difference (ImagePartR, SelectedRegions2, RegionDifference)
    connection (RegionDifference, ConnectedRegions2)
    
    select_shape_std (ConnectedRegions2, SelectedRegions3, 'max_area', 70)
    get_region_points (SelectedRegions3, PartRows, PartColumns)
    count:=|PartRows|
    startRs:=gen_tuple_const(count, Row)
    startCs:=gen_tuple_const(count, Column)
    
    *将所有像素坐标加上偏移量
    Rows:=startRs+PartRows
    Cols:=startCs+PartColumns
    
    *r绘制
    get_grayval (ImagePartR, PartRows, PartColumns, Grayval)
    copy_image (ImageR, DupImageR)
    set_grayval (DupImageR, Rows, Cols, Grayval)
    
    *g绘制
    get_grayval (ImagePartG, PartRows, PartColumns, Grayval1)
    copy_image (ImageG, DupImageG)
    set_grayval (DupImageG, Rows, Cols, Grayval1)
    *b绘制
    get_grayval (ImagePartB, PartRows, PartColumns, Grayval2)
    copy_image (ImageB, DupImageB)
    set_grayval (DupImageB, Rows, Cols, Grayval2)
    compose3 (DupImageR, DupImageG, DupImageB, MultiChannelImage)
    count_seconds (Seconds1)
    tt:=(Seconds1-Seconds)*1000

    最后效果如下

    下面是原图

    专注机器视觉,halcon c# c++联合开发
  • 相关阅读:
    C#秘密武器之表达式树
    C#秘密武器之特性
    [转]拷贝构造函数详解
    [转]STL 容器一些底层机制
    C++ Qt多线程 TcpSocket服务器实例
    QByteArray储存二进制数据(包括结构体,自定义QT对象)
    [转]浅谈 C++ 中的 new/delete 和 new[]/delete[]
    [转]QList内存释放
    Subscribe的第四个参数用法
    ROS多线程订阅消息
  • 原文地址:https://www.cnblogs.com/linyugang/p/9138679.html
Copyright © 2011-2022 走看看