海康工业相机排雷笔记02-像素格式解析

工业相机使用过程记录

02-像素格式解析

通过将相机输出图像裸数据raw格式直接存图,并使用Notepad++中的HEX-Edit插件查看数据内容。


一、黑白/Mono
直接使用相机测试相机图像存图:
Alt
图像中各部分灰度分别为:0、36、73、109、146、182、219、255,以灰度73列为例


(1)Mono 8
在这里插入图片描述
该列图像数据为十六进制49,十进制为73,那么Mono 8就是每个像素点占8bit,依次排列。


(2)Mono 10
在这里插入图片描述
该列图像数据为十六进制2401,由于相机均为小端数据,实际数据应解析为0124,十进制为292=734,那么Mono 10格式为每个像素点占16bit,但是只有10bit为有效数据。


(3)Mono 10 Packed
在这里插入图片描述
Mono 10 Packed像素格式为了节省空间,将10bit数据存储在12bit的内存空间中,剩余2bit为0,那么每24bit数据中包含两个像素点的灰度信息,也就是说49 00 49中存在两个相同灰度像素点的信息,转换为二进制就是0100 1001 0000 00 00 0100 1001,中间8bit存储的是这两个像素点的低2位的信息,那么该像素点灰度应该为0100 1001 00,转换为十进制就是292=73
4,与Mono 10格式的结果相同。


(4)Mono 12
在这里插入图片描述
Mono 12与Mono 10类似,12bit数据占据16bit空间,92 04解析为4 92,十进制为1170,1170/16=73。


(5)Mono 12 Packed
在这里插入图片描述
参考Mono 10 Packed的结果,Mono 12 Packed就应该解析成49 22 49,像素灰度应为492,十进制为1170,与Mono 12格式结果相同。


二、彩色
仍然使用相机测试图像进行存图:
在这里插入图片描述
以粉色条纹(R:255 G:0 B:255)为例:


(1)Bayer
Bayer格式为大多数彩色工业相机的源数据格式,其他像素格式一般为Bayer格式插值得到。
Bayer格式的存储方式与Mono格式基本一致,差别仅仅在于Mono格式每个像素点存储的是该像素点的灰度信息,而Bayer格式每个像素点存储的是该像素点的某一个分量(RGB)的值。
我使用的是Bayer GR,那么他的像素排布就是第一行GRGRGRGRGR…,第二行BGBGBGBG…,以此类推。
Bayer GR 8选取两行数据的连接位置:
在这里插入图片描述
第一行GR排列,符合0、255、0、255的规律
第二行BG排列,也符合255、0、255、0的规律
那么Bayer 10/Bayer 10 Packed/Bayer 12/Bayer 12 Packed同理,此处不再赘述。


(2)RGB 8/BGR 8
RGB和BGR格式是最容易理解的像素格式,每个像素点占据连续的24bit空间,其中R、G、B三个分量分别占有8bit,排列方式也非常简单:
RGB 8格式就是R1 G1 B1 R2 G2 B2…
在这里插入图片描述
那么BGR 8格式就是把RB两分量调换位置,即B1 G1 R1 B2 G2 R2…


(3)YUV
相机提供了YUV格式中的两种:YUV 422 Packed(实际排列方式为UYVY)、YUV 422 (YUYV) Packed(实际排列方式为YUYV)
此处以YUYV方式为例
在这里插入图片描述
像素排列方式为Y1 U1 Y2 V2 Y3 U3 Y4 V4…
每个像素点拥有一个Y分量,每两个像素点共用一个V分量,也就是说Y分量为68,十进制就是104;U分量为DE,十进制为222;V分量为EB,十进制为235。
随便找了个转换公式:
R= Y + ((360 * (V - 128))>>8) =254
G= Y - (( ( 88 * (U - 128) + 184 * (V - 128)) )>>8) =0
B= Y +((455 * (U - 128))>>8) =255
基本符合粉色条纹的RGB分量
实测发现UYVY的方式与YUYV方式仅仅是排列顺序不同,不再赘述。


PS:
Packed在彩色图像中一般表示为各分量交织存储的打包格式比如RGBRGBRGB,Planar一般为分量分别存储的平面格式RRRGGGBBB。
Packed在黑白图像中一般Packed表示节省空间的打包方式,比如12bit数据存储在16bit空间中,剩余的4bit由下一个像素点的4bit填充。

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值