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
相关推荐
梦云澜1 小时前
论文阅读(十六):利用线性链条件随机场模型检测阵列比较基因组杂交数据的拷贝数变异
深度学习
好评笔记1 小时前
多模态论文笔记——VDT
论文阅读·深度学习·机器学习·大模型·aigc·transformer·面试八股
好评笔记1 小时前
多模态论文笔记——ViViT
论文阅读·深度学习·机器学习·计算机视觉·面试·aigc·transformer
梦云澜1 小时前
论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
论文阅读·人工智能·深度学习·学习
Fxrain3 小时前
[Computer Vision]实验二:图像特征点提取
人工智能·计算机视觉
人类群星闪耀时3 小时前
用深度学习优化供应链管理:让算法成为商业决策的引擎
人工智能·深度学习·算法
有Li4 小时前
基于先验领域知识的归纳式多实例多标签学习用于牙周病分类| 文献速递 -医学影像人工智能进展
人工智能·深度学习·文献
琳琳简单点7 小时前
对神经网络基础的理解
人工智能·python·深度学习·神经网络
Chatopera 研发团队8 小时前
Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战
人工智能·pytorch·深度学习
IT古董9 小时前
【深度学习】常见模型-自编码器(Autoencoder, AE)
人工智能·深度学习