iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Arm Platforms

Arm 的初體驗系列 第 29

相機拍圖編碼

如果要圖像不失細節(jpeg是有損壓縮)
最好是PNG格式(無損壓縮)
這邊介紹YUV

import time
import picamera

with picamera.PiCamera() as camera:
camera.resolution = (100,100)
camera.start_preview()
time.sleep(2)
camera.capture('image.data','yuv')

一般的YUV指的是YUV420的平面格式(相關資料請詳見Google)

RGB格式生成的檔案比YUV更大
大多數的情況下都是用RGB
要輸出RGB格式,只需要指定capture()為rbg
camera.capture('image.data','rgb')

另外有一種Bayer的
Bayer是相機內部的原始資料
與上面YUV/RGB不同的是
無論相機的輸出resolution 和size是多少
Bayer的數據總是全解析

Bayer一般是10bits來表示一個channel
與我們認知的8bits不同 ,多的2bit會移到第五個byte來存
像是下面這樣
AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDAABBCCDD
只是第五byte是低位,所以可以不嚴謹的省略

一般來說
如果相機的sensor是OV的
其排列是BGGR
而SONY的IMX 其排列是RGGB
https://ithelp.ithome.com.tw/upload/images/20211002/20119806w3vlk10GTV.jpg


上一篇
Raspberry pi 的影片拍攝- Python
下一篇
最後一天~後面該如何
系列文
Arm 的初體驗31

尚未有邦友留言

立即登入留言