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
相关推荐
沃达德软件21 小时前
智慧警务图像融合大数据
大数据·图像处理·人工智能·目标检测·计算机视觉·目标跟踪
雪碧聊技术1 天前
深度学习、机器学习、人工智能三者的关系
人工智能·深度学习·机器学习
AI大模型学徒1 天前
大模型应用开发(四)_调用大模型分析图片
人工智能·深度学习·ai·大模型·deepseek
java1234_小锋1 天前
基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程 - 切割车牌矩阵获取车牌字符
python·深度学习·cnn·车牌识别
陈文锦丫1 天前
Boundary Difference Over Union Loss For Medical Image Segmentation
深度学习
青瓷程序设计1 天前
海洋生物识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
~~李木子~~1 天前
中文社交媒体情感分析实战:基于B站评论的机器学习与深度学习对比
深度学习·机器学习·媒体
ghie90901 天前
线性三角波连续调频毫米波雷达目标识别
人工智能·算法·计算机视觉
fj_changing1 天前
Ubuntu 22.04部署CosyVoice
人工智能·python·深度学习·ubuntu·ai