相机快速选型:
注意: Bayer 模式只针对彩色相机,黑白相机不需要进行 Bayer 转换。
以凯视佳 UC130C 工业相机为例,UC130C使用的图像传感器的感光阵列如下:
图中每一个方格代表一个像元,每一个像元只接收 R,G,B 其中的一种。经过 Bayer 转换后,
会为每一个像元重建出一个 24 位或 32 位的 RGB 彩色像素,所有像元经 Bayer 重建出一幅彩
色图像。用户可以通过调用 KSJ_BayerSetMode 设置 Bayer 模式。目前支持的 Bayer 模式包括:
KSJ_BGGR_BGR24
像元的排列为
B G B G …
G R G R …
B G B G …
…
转换后为 24 位位图格式。为了使显示图像不发生垂直翻转,我们将像元排列的第 1 行转换
到 RGB 位图内存中的最后一行(这是由于 Windows GDI 函数显示图像第一行实际是内存中
图 像 的 最 后 一 行 ) , 所 以 当 您 设 置 了
KSJ_BGGR_BGR24,KSJ_GRBG_BGR24,KSJ_RGGB_BGR24,KSJ_GBRG_BGR24,
KSJ_BGGR_BGR32,KSJ_GRBG_BGR32,KSJ_RGGB_BGR32,KSJ_GBRG_BGR32 时 , 您 调 用 的
KSJ_CaptureRgbData 或 KSJ_CaptureRgbDataEx 后,得到的 RGB 位图数据,起始地址存放的是
感光阵列下面的像元转换的结果。如果您想让内存中的 RGB 位图数据的起始地址存放的是
感 光 阵 列 上 面 的 像 元 转 换 的 数 值 , 那 么 可 以 根 据 像 元 的 排 列 情 况 调 用
KSJ_BGGR_BGR24_FLIP,KSJ_GRBG_BGR24_FLIP,KSJ_RGGB_BGR24_FLIP,KSJ_GBRG_BGR24_FLIP,
KSJ_BGGR_BGR32_FLIP,KSJ_GRBG_BGR32_FLIP,KSJ_RGGB_BGR32_FLIP,KSJ_GBRG_BGR32_FLIP。
对于 UC130C 型号相机,他的排列是 RGGB 格式,对于 UC320C 型号相机,它的排列格式是
GRBG 格式,设置 Bayer 模式时,务必要与感光阵列的格式对应,否则色彩和白平衡算法都
会不正确。对于 24 为的彩色位图,每个像素以 B,G,R 格式组成,每个 8bit,对于 32 位彩色
位图,每个像素以 B,G,R,0 格式组成,每个 8bit。
KSJ_GRBG_BGR24
KSJ_GRBG_BGR32
KSJ_GRBG_BGR24_FLIP
KSJ_GRBG_BGR32_FLIP
像元的排列为
G R G R …
B G B G …
G R G R …
…
转换后为 24 位或 32 位位图格式(根据 BGR24 还是 BGR32 确定)。
像元排列的第 1 行转换到 RGB 位图内存地址的最后一行或第一行(根据是否有 FLIP 确定)。
KSJ_RGGB_BGR24
KSJ_RGGB_BGR32
KSJ_RGGB_BGR24_FLIP
KSJ_RGGB_BGR32_FLIP
像元的排列为
R G R …
G B G …
R G R …
…
转换后为 24 位或 32 位位图格式(根据 BGR24 还是 BGR32 确定)。
像元排列的第 1 行转换到 RGB 位图内存地址的最后一行或第一行(根据是否有 FLIP 确定 )。
KSJ_GBRG_BGR24
KSJ_GBRG_BGR32
KSJ_GBRG_BGR24_FLIP
KSJ_GBRG_BGR32_FLIP
像元的排列为
G B G B …
R G R G …
G B G B …
…
转换后为 24 位或 32 位位图格式(根据 BGR24 还是 BGR32 确定)。
像元排列的第 1 行转换到 RGB 位图内存地址的最后一行或第一行(根据是否有 FLIP 确定 )。
注意:白平衡区域位置也会随之进行调整,调整的结果是以显示图像的左上角为原点,使用
户设置的白平衡区域相对于图像左上角不变。
自动曝光区域同上。
注意:当用户调用了 KSJ_SetParam 并指定 KSJ_FLIP 为 1 时,他所代表的是控制前端阵列从
最后一行输出,也就是我们读取到的原始数据将垂直翻转,这样相应的 Bayer 模式也需根据
实际情况设置,比如原来为 RGGB 模式,翻转后为 GBRG 模式。
说明:以上关于模式的设置,不论翻转还是不翻转,对整个预览,采集的性能没有影响。所
以用户不要自己编写翻转算法,应找通过使用 KSJ_SetParam 的 KSJ_FLIP 和 KSJ_BayerSetMode
找到合适的组合进行翻转。