<aside> 😀 位图转G代码轮廓加工轨迹程序I2G(img2gcode)

</aside>

背景

最近实验室要用机器人写字画图,但流程都是利用已有的软件去生成g代码,心中不仅冒出个想法,其实可以利用opencv的二值处理和轮廓提取来直接获得轨迹坐标,然后生成g代码。于是用python写了程序。

附件下载:

I2G.zip

流程

1.使用import按钮导入图片

Untitled

2.调节bl,bh设定转化成2值图像的值,gb调节降噪系数,使用view预览

Untitled

3.觉得效果合适后根据h和w调节缩放系数s,然后设置抬刀高度,最后按gen生成nc文件

Untitled

4.生成的nc文件可用cimcoedit等程序仿真查看

Untitled

很简单的小程序,比起之前的流程,傻瓜式操作,其实好像微雕大师已经有这个功能,但是自己写了一下,觉得还是有点收获的。至少opencv用起来了。

部分源码:

图像加载 (im_b_clicked)

当用户点击加载图像按钮时,会触发im_b_clicked函数。此函数使用FileWindow类的实例来弹出文件选择对话框,让用户选择一个图像文件:

def im_b_clicked():
    global pic, fpath
    fw = FileWindow('Open')
    flnm = fw.slot_btn_choosefile()
    if flnm:
        fpath = flnm[0]
        pic = cv.imread(fpath, 0)  # 使用OpenCV读取图像
        # 更新界面上的图像尺寸信息
        ui.h_le.setText(str(pic.shape[0]))
        ui.w_le.setText(str(pic.shape[1]))
        # 显示图像
        img = QtGui.QPixmap(fpath).scaled(ui.img_v.width(), ui.img_v.height())
        ui.img_v.setPixmap(img)
        ui.view_b.setEnabled(True)  # 启用查看按钮
    else:
        pass

这个函数中,cv.imread用于读取图像,QPixmap用于将图像显示在GUI上。

图像查看 (view_b_clicked)