光源

机器视觉中不同类型光源的不同打光方式的效果探究

有经验的机器视觉工程师都会认可这样一句话:机器视觉项目的成败在于能否得到一张打光优秀的图片。如果采集到的图片本身“质量”很差,那么接来下的图像处理工作就会困难重重。

由于项目的需求以及光源厂商的努力,目前机器视觉光源的类型可以说十分丰富,例如条光、背光、平行背光、同轴光、点光、隧道光、碗光、环形光、球形光、条形聚光等。根据光的波长和颜色,又可以分为X光、蓝光、红光、白光、红外光等。

网上关于光源选型方面的资料多如牛毛,我不想再重复,我想说点其他的。

在光源大家族中,有一种光最为灵活多变,它就是环形光。环形光有低角度环形光、高角度环形光等不同类型,例如0°环形光、30°环形光、45°环形光、60°环形光、90°环形光等。

不同的资料对于这个环光的“角度”定义不同,有的指“光源照射方向与水平面的夹角”,有的指“光源照射方向与镜头光轴(一般是竖直方向)的夹角”。本文采用后一种定义方式来描述。

为什么说环形光的花样多呢?因为它的口径可以不同、它的“角度”可以不同、它的光的颜色可以不同、它的安装高度也可以不同(其他光源安装高度不同差异一般不会有这么大)。

下面我以拍摄镜头模组为例,采用不同“角度”的环形光,沿着镜头光轴方向在不同高度分别采集图像,大家可以观察图像的特点与变化。

OpenGL光源位置

一、OpenGL光源简介

OpenGL提供了多种形式的光源,如点光源、平行光源和聚光灯光源等。所有光源都使用 glLight*接口来设置光源属性,其中包括 glLight{if} 和 glLight{if}v 两类。

1、示例光源

GLfloat ambient[] = {0.3f, 0.3f, 0.3f, 1.0f};  // 环境强度
GLfloat diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f};  // 散射强度
GLfloat specular[] = {1.0f, 1.0f, 1.0f, 1.0f}; // 镜面强度

// 点光源, GL_POSITION属性的最后一个参数为1
GLfloat position[] = {-3.0f, -3.4f, -8.8f, 1.0f};
glLightfv(GL_LIGHT0, GL_POSITION, position);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
同步内容
--电子创新网--
粤ICP备12070055号