机器视觉(machine vision)或者计算机视觉(computer vision)是用机器人代替人眼进行测量和判断,是模式识别研究的一个重要方面。计算机视觉通常分为低层视觉与高层视觉两类,低层视觉主要执行预处理功能,如边缘检测、移动目标检测、纹理分析,以及立体造型、曲面色彩等,主要目的是使得看见的对象更突出。
机器视觉系统是指通过图像摄取装置将被摄取的目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和宽度、颜色等佶息,转换成数字信号,图像系统对这些信号进行各种运算,抽取目标的特征,进而根据判别的结果来控制现场的设备动作。机器视觉的主要研目标是使计算机具有通过二维图像认知三维坏境信息的能力,能够感知与处理三维环境中物体的形状、位置、姿态、运动等几何信息。
我使用的是python语言+openCV来实现边缘获取的功能。
使用imread()函数读取图片,使用的测试图片如下:
使用imshow()函数显示图片,waitKey()函数含义为按下任意键继续:
运行后得到窗口名为img的窗口图片:
使用threshold()函数将图片二值化,二值化即指图片仅有黑白二色:
运行结果如下:
接着使用Canny()函数提取图片边缘:
运行结果如下:
最后将图片反相,即黑白色互换以明确图片边缘:
这里我选择自己编写了一个反相函数,通过逐个像素点反相来实现整个图片反相。
运行结果如下:
到这里整个图片边缘提取就完成了,过程很简单,大家也可以试一试。