mipi payload 转 frame

这几天在调试camera,sensor 出图怀疑有问题,请硬件同事用示波器抓去一些sensor端输出的数据–Payload,由于示波器抓的mipi数据保存成csv表格,pyaload数据是字符串形式16进制数据,遂写了python脚本将其转换成2进制frame bin文件,分析图像数据,话不多说,上代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys, getopt
import string

'''
Usage: phyon3 mipiPayload2frame.py -i <inputfile> -o <outputfile>
'''

def mipiPayload2frame(inputfile, outputfile):
    str_f = open(inputfile, 'r')
    c = str_f.readline()
    str_f.close()
    c.strip('\n')
    c=c.replace(' ', '')
    bytes_num = int(len(c)/2)
    #print("bytes num: ", bytes_num)
    #print(c)
    tmp_list = []
    i = 0
    for i in range(0, bytes_num):
        chs = c[2*i : 2*i + 2]
        num = int(chs, 16)
        tmp_list.append(num)
    out_bytes = bytes(tmp_list) # convert list to bytes array
    out_file = open(outputfile, "wb") # create outputfile
    out_file.write(out_bytes)
    out_file.close()

def main(argv):
    inputfile = ''
    outputfile = ''
    try:
        opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
    except getopt.GetoptError:
        print('Usage: '+ sys.argv[0] + ' -i <inputfile> -o <outputfile>')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print('Usage: '+ sys.argv[0] + ' -i <inputfile> -o <outputfile>')
            sys.exit()
        elif opt in ("-i", "--ifile"):
            inputfile = arg
        elif opt in ("-o", "--ofile"):
            outputfile = arg
    print('inputfile    : ', inputfile)
    print('outputfile   : ', outputfile)
    mipiPayload2frame(inputfile, outputfile)

if __name__ == "__main__":
   main(sys.argv[1:])

Ref:
https://blog.csdn.net/zhixiang8869/article/details/80492464
https://www.runoob.com/python/python-command-line-arguments.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章