Halcon随机贴图生成缺陷图片脚本

halcon随机贴图生成缺陷图片,用于深度学习训练:

cs 复制代码
read_image (Image, 'C:/Users/61082/Desktop/bentiiamge/omron/S06-1211/ok/ok_images/D246B_CPFNNUBA8LT0SX_AAA_S2412001793_C1216_1733895885320066.jpg')
get_image_size (Image, Width, Height)
gen_rectangle1 (Rectangle, 22, 17, 89, 47)
reduce_domain (Image, Rectangle, ImageReduced)
crop_domain (ImageReduced, ImagePart)
for i:=0 to 100 by 1
    Rand:=rand(3)
    paster_Row:=int(Rand[0]*Height)
    paster_Col:=int(Rand[1]*Width)
    Angle:=int(Rand[2]*360)
    
    minImageWidth:=sqrt(Width*Width+Height*Height)
    minImageHeight:=sqrt(Width*Width+Height*Height)
    vector_angle_to_rigid ( Height/2,Width/2, 0, minImageHeight/2, minImageHeight/2, rad(Angle), HomMat2D)
    *获取图像的通道数
    count_channels (ImagePart, Channels)
    *如果是单通道图像
    if (Channels==1)
        *生成一个画布
        gen_image_const (Image1, 'byte', minImageWidth, minImageHeight)
        *将image放到画布上
        overpaint_gray (Image1, ImagePart)
        *图片旋转
        affine_trans_image (Image1, ImageAffineTrans, HomMat2D, 'constant', 'false')
        get_image_size (ImageAffineTrans, Width1, Height1)
        dev_clear_window ()
        dev_display (ImageAffineTrans)
        *如果是三通道彩色图像
    endif 
    if (Channels==3)
        *分解三通道图像
        decompose3 (ImagePart, Image11, Image2, Image3)
        *生成三个画布
        gen_image_const (Image4, 'byte', minImageWidth, minImageHeight)
        gen_image_const (Image5, 'byte', minImageWidth, minImageHeight)
        gen_image_const (Image6, 'byte', minImageWidth, minImageHeight)
        *依次将三个单通道图像overpaint到画布上
        overpaint_gray (Image4, Image11)
        overpaint_gray (Image5, Image2)
        overpaint_gray (Image6, Image3)
        *仿射变换单通道图像
        affine_trans_image (Image4, ImageAffineTrans1, HomMat2D, 'constant', 'false')
        affine_trans_image (Image5, ImageAffineTrans2, HomMat2D, 'constant', 'false')
        affine_trans_image (Image6, ImageAffineTrans3, HomMat2D, 'constant', 'false')
        *三个单通道图像合成彩色图像
        compose3 (ImageAffineTrans1, ImageAffineTrans2, ImageAffineTrans3, rotateImage)
        dev_clear_window ()
        dev_display (rotateImage)
    endif
    
    dev_update_off ()
    
    *rgb分离
    decompose3 (Image, ImageR, ImageG, ImageB)
    decompose3 (rotateImage, ImagePartR, ImagePartG, ImagePartB)
    
    *小图去背景
    threshold (ImagePartR, Regions1, 210, 255)
    connection (Regions1, ConnectedRegions2)
    select_shape_std (ConnectedRegions2, SelectedRegions3, 'max_area', 70)
    fill_up (SelectedRegions3, SelectedRegions3)
    smallest_rectangle1 (SelectedRegions3, Row1, Column1, Row2, Column2)
    get_region_points (SelectedRegions3, oriPartRows, oriPartColumns)
    count:=|oriPartRows|
    subRs:=gen_tuple_const(count, Row1)
    subCs:=gen_tuple_const(count, Column1)
    PartRows:=oriPartRows-subRs
    PartColumns:=oriPartColumns-subCs
    if ((paster_Row+(Row2-Row1)>=Height) or (paster_Col+(Column2-Column1)>=Width))
        continue
    endif
    startRs:=gen_tuple_const(count, paster_Row)
    startCs:=gen_tuple_const(count, paster_Col)
    *将所有像素坐标加上偏移量
    Rows:=startRs+PartRows
    Cols:=startCs+PartColumns
    
    *r绘制
    get_grayval (ImagePartR, oriPartRows, oriPartColumns, Grayval)
    copy_image (ImageR, DupImageR)
    set_grayval (DupImageR, Rows, Cols, Grayval)
    
    
    *g绘制
    get_grayval (ImagePartG, oriPartRows, oriPartColumns, Grayval1)
    copy_image (ImageG, DupImageG)
    set_grayval (DupImageG, Rows, Cols, Grayval1)
    
    *b绘制
    get_grayval (ImagePartB, oriPartRows, oriPartColumns, Grayval2)
    copy_image (ImageB, DupImageB)
    set_grayval (DupImageB, Rows, Cols, Grayval2)
    compose3 (DupImageR, DupImageG, DupImageB, MultiChannelImage)
    
    dev_clear_window()
    dev_display(MultiChannelImage)
    
    wait_seconds(1)
endfor
相关推荐
剑穗挂着新流苏3121 小时前
115_PyTorch 实战:从零搭建 CIFAR-10 完整训练与测试流水线
人工智能·pytorch·深度学习·神经网络
Veggie261 小时前
【Java深度学习】PyTorch On Java 系列课程 第八章 17 :模型评估【AI Infra 3.0】[PyTorch Java 硕士研一课程]
java·人工智能·深度学习
gregmankiw3 小时前
Nemotron架构(Mamba3+Transformer+Moe)
android·深度学习·transformer
乐分启航3 小时前
SliMamba:十余K参数量刷新SOTA!高光谱分类的“降维打击“来了
java·人工智能·深度学习·算法·机器学习·分类·数据挖掘
何仙鸟5 小时前
Garmagenet环境安装
人工智能·深度学习
Theodore_10226 小时前
深度学习(11):偏差与方差诊断、学习曲线
人工智能·笔记·深度学习·神经网络·机器学习·计算机视觉
Hello world.Joey6 小时前
Transformer解读
人工智能·深度学习·神经网络·自然语言处理·nlp·aigc·transformer
LLM精进之路7 小时前
频域+特征融合:深度学习的黄金组合,顶会顶刊的快速通道
人工智能·计算机视觉·目标跟踪
itwangyang5207 小时前
AIDD-人工智能药物发现与设计-利用深度学习从头设计药物,实现逆转疾病相关转录表型
人工智能·深度学习
Theodore_10227 小时前
深度学习(12)正则化线性回归中的偏差与方差调试
人工智能·深度学习·算法·机器学习·线性回归