chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談圖像調試之raw圖像問題分析

新機器視覺 ? 來源:ISP Tuning ? 2023-11-27 10:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、問題背景

在圖像調試過程,當發(fā)現(xiàn)一個問題時,很多時候都要通過 dump raw 圖像來分析,如果raw圖像上有,那就排除了是 ISP的處理導致。

下一步就是排查 sensor 或者鏡頭,這樣可以有效的幫我們定位問題所在。

但遇到過有些 raw, 用工具打不開或者出圖不對的情況,那可能是因為 raw 的存儲格式不同導致,本文主要對 raw 的格式做下介紹說明。

2、問題分析

a. 什么是 raw

raw 數(shù)據(jù)是 sensor 輸出的原始數(shù)據(jù),常用的一般有raw8, raw10, raw12等,分別表示一個像素點有 8bit、10bit、12bit 數(shù)據(jù)。

是 sensor 將光信號轉化為電信號時的電平高低的原始記錄,單純地沒有進行任何處理的圖像數(shù)據(jù),即表現(xiàn)的是 sensor 和鏡頭本征特性的數(shù)據(jù)。

raw 數(shù)據(jù)在輸出的時候是有一定順序的,主要有四種: GRBG、RGGB、BGGR、GBRG,如下圖為BGGR格式。

cc6faf98-8c0e-11ee-939d-92fbcf53809c.png

b. raw 分哪幾種格式,有什么區(qū)別 ?

raw 一般分為 plain raw 和 mipi raw,主要是存儲方式上的區(qū)別,如下圖所示是 Plain raw10 的示意圖。

cc80f852-8c0e-11ee-939d-92fbcf53809c.png

10bit的raw,單個像素也就是10bit,需要兩個字節(jié)(16bit)來存儲,那就會空出 6位用不到。

因為有空余,這里就涉及到一個高位/低位對齊的問題,也就是存儲數(shù)據(jù)時,右移6位低位對齊(如上圖1所示),左移6位高位對齊(如上圖2所示)。

這個主要看平臺廠商對數(shù)據(jù)處理有什么要求,我司用的是高位對齊的數(shù)據(jù),所以讀取時,要有相應的移位操作才行。

如下圖所示是 mipi raw10 的示意圖,以大端存儲方式為例,它是把4個像素放到5個字節(jié)(40bit)中,組成一個包去存儲。

cc8d3414-8c0e-11ee-939d-92fbcf53809c.png

前4字節(jié)依次存放 raw10 圖像的前 4個像素的后 8位,4個像素的前 2位依次存放在包的第 5個字節(jié)中。

所以從存儲方式來看,mipi raw 的存儲方式是要比 plain raw 更節(jié)省內存。

c. 怎么正確查看 raw ?

一般raw圖工具打開都會要求配置一下 raw 圖尺寸、位寬、bayer格式、MSB/LSB。

但一般工具支持 plain raw 打開的居多,還有些并不支持MSB和LSB的選擇,所以需要我們對 raw 做一下處理。

如下是mipi raw 轉 plain raw 、plain raw10 MSB 轉LSB 的相關 python 代碼。

分析代碼的處理過程,也會加深我們關于raw圖像的理解,如下代碼中使用的raw圖像,可以在公眾號后臺回復 "raw圖" 獲取。

# plain raw10 的讀取和 MSB轉LSB的處理


import numpy as np


def read_plained_file(file_path_name,height,width,shift_bits):
    frame = np.fromfile(file_path_name, dtype="uint16")
    frame=frame[0:height*width]
    frame.shape = [height, width]


    # MSB ----> LSB,  LSB存低位數(shù)據(jù),此時是高位對齊的,則右移代表向低位移了6位,數(shù)值是減小的狀態(tài)。
    frame=np.right_shift(frame, shift_bits)  
    return frame


if __name__ == "__main__":
    file_name = "ov13b10_shading_4208X3120_MSB.raw"
    image = read_plained_file(file_name, 3120, 4208, 6)
    image = image / 1023


    # 將讀取的 image 數(shù)據(jù)另存為 raw 數(shù)據(jù)
    output_file_name = "output_image.raw"


    # 將圖像數(shù)據(jù)映射到 16 位無符號整數(shù)范圍
    image_mapped = (image * 1023).astype('uint16')
    image_mapped.tofile(output_file_name)
    print(f"Image data has been saved to {output_file_name}")
# mipi raw10 轉 plain raw10


import numpy as np
import math


def read_mipi10_file(file_path_name,height,width):
    # 單行長度的補齊
    new_width = int(math.floor((width + 3) / 4) * 4) #對四字節(jié)補齊
    packet_num_L = int(new_width / 4)
    width_byte_num = packet_num_L * 5 #單行byte長度
    width_byte_num = int(math.floor((width_byte_num + 7) / 8) * 8)#單行做8個字節(jié)補齊
    image_bytes=width_byte_num*height
    frame = np.fromfile(file_path_name, count=image_bytes,dtype ="uint8")
    print("b shape",frame.shape)
    print('%#x'%frame[0])


    frame.shape = [height, width_byte_num] #按字節(jié)整理的圖像矩陣
    one_byte = frame[:,05]
    two_byte = frame[:,15]
    three_byte = frame[:,25]
    four_byte = frame[:,35]
    five_byte = frame[:,45]


    #數(shù)據(jù)轉換防止溢出
    one_byte = one_byte.astype('uint16')
    two_byte = two_byte.astype('uint16')
    three_byte = three_byte.astype('uint16')
    four_byte = four_byte.astype('uint16')
    five_byte = five_byte.astype('uint16')


    #用矩陣的方法進行像素的拼接
    one_byte = np.left_shift(one_byte, 2) + np.bitwise_and((five_byte), 3)
    two_byte = np.left_shift(two_byte, 2) + np.right_shift(np.bitwise_and((five_byte), 12), 2)
    three_byte = np.left_shift(three_byte, 2) + np.right_shift(np.bitwise_and((five_byte), 48), 4)
    four_byte = np.left_shift(four_byte, 2) + np.right_shift(np.bitwise_and((five_byte), 192), 6)


    #重組幀
    frame_pixels=np.zeros(shape=(height,new_width))
    frame_pixels[:, 0: new_width:4]=one_byte[:, 0: packet_num_L]
    frame_pixels[:, 1: new_width:4]=two_byte[:, 0: packet_num_L]
    frame_pixels[:, 2: new_width:4]=three_byte[:, 0: packet_num_L]
    frame_pixels[:, 3: new_width:4]=four_byte[:, 0: packet_num_L]


    #裁剪無用的數(shù)據(jù),這里表示的是0-2559列,包含完整的數(shù)據(jù)了。
    frame_out=frame_pixels[:,0:width]
    return frame_out


if __name__ == "__main__":
    file_name="imx335_2560x1440_GRBG_mipi.raw"
    image=read_mipi10_file(file_name,1440, 2560)
    image=image/1023


    # 將讀取的 image 數(shù)據(jù)另存為 raw 數(shù)據(jù)
    output2_file_name = "output2_image.raw"
    # 將圖像數(shù)據(jù)映射到 16 位無符號整數(shù)范圍
    image_mapped = (image * 1023).astype('uint16')
    image_mapped.tofile(output2_file_name)
    print(f"Image data has been saved to {output2_file_name}")

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ISP
    ISP
    +關注

    關注

    6

    文章

    498

    瀏覽量

    54932
  • 光信號
    +關注

    關注

    0

    文章

    462

    瀏覽量

    28412
  • 電信號
    +關注

    關注

    1

    文章

    845

    瀏覽量

    21845
  • RAW
    RAW
    +關注

    關注

    0

    文章

    21

    瀏覽量

    4208

原文標題:關于 raw 圖像的理解

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FPGA視頻圖像抓取案例分析

    MYD-CZU3EG-ISP 提供4K分辨率的攝像頭功能,同時輸出4K分辨率的圖像顯示到圖像輸出接口,下面帶一起來體驗FPGA的圖像抓取和圖像顯示的操作和應用。
    發(fā)表于 11-05 12:37 ?2371次閱讀

    調試THS8200時圖像能正常輸出,但是圖像很模糊不清怎么樣解決?

    我們在調試THS8200時圖像能正常輸出,但是圖像很模糊不清,跟原來圖像相比差太遠了,您們能提供一些調試參數(shù)給我們嗎?或者怎么樣解決?
    發(fā)表于 01-17 07:18

    淺談大數(shù)據(jù)視頻圖像處理系統(tǒng)技術

    淺談大數(shù)據(jù)視頻圖像處理系統(tǒng)技術近年來,隨著計算機、網(wǎng)絡以及圖像處理、傳輸技術的飛速發(fā)展,視頻監(jiān)控系統(tǒng)正向著高清化、智能化和網(wǎng)絡化方向發(fā)展。視頻監(jiān)控系統(tǒng)的高清化、智能化和網(wǎng)絡化為視頻監(jiān)控圖像
    發(fā)表于 09-24 15:22

    怎樣獲取bayer raw圖像的AWB的參數(shù)?使用什么工具。跪求解...

    參數(shù),燒寫,工具用度信的,拍照用三星demo板,分析用imatest,基本思路是搞清楚了,但是要分析測試RAW圖像的R/Gr,B/Gr的參數(shù)沒有工具啊,三星也沒有,哪位大神給我一點指導
    發(fā)表于 09-26 00:13

    例說FPGA連載101:雙攝像頭圖像采集板級調試

    例說FPGA連載101:雙攝像頭圖像采集板級調試① 連接好硬件,SF-VIP1核心板 + SF-VGA子板 + VGA顯示器 + 兩個SF-MT9D111子板,并且給VIP核心板上電
    發(fā)表于 05-16 21:17

    如何獲取raw10格式的圖像數(shù)據(jù)

    我正在使用CX3 DEV板來安裝OV5640傳感器?,F(xiàn)在,使用這個例子,我可以得到YUV格式的圖像數(shù)據(jù),但是我想得到RAW10格式的圖像數(shù)據(jù)。如何修改代碼? 以上來自于百度翻譯 以下為原文I am
    發(fā)表于 10-15 15:59

    圖像頻率域分析傅里葉變換

    文章目錄傅里葉變換基礎傅里葉級數(shù)傅里葉積分傅里葉變換一維連續(xù)傅里葉變換一維離散傅里葉變換二維離散傅里葉變換正變換反變換卷積卷積定理數(shù)字圖像DFT空間域和頻域圖像頻域濾波基本步驟圖像頻率特性分析
    發(fā)表于 05-22 07:41

    伺服調試—結合圖像分析

    ! 我們都還年輕 ,我們還有無限可能 。 YES!伺服調試—結合圖像分析(以松下伺服為例)1. 調試前準備工作:1. 1 推定出來慣量比:1.1.1 如何推定慣量比:1. 2 檢查驅
    發(fā)表于 06-28 10:09

    智能車競賽淺談——圖像

    前言本文主要記錄一點有關智能車攝像頭相關的內容,供入門智能車的同學一個參考,主要參考opencv、圖像處理的部分知識來分析描述。認識圖像基本含義首先,咱來了解一下圖像的基本含義,
    發(fā)表于 09-24 15:05

    基于圖像分析的黃豆質量評估系統(tǒng)

    基于圖像分析的黃豆質量評估系統(tǒng)/基于圖像分析的黃豆質量評估系統(tǒng)
    發(fā)表于 12-14 17:58 ?0次下載

    PyTorch教程7.2圖像卷積

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程7.2圖像卷積.pdf》資料免費下載
    發(fā)表于 06-05 10:13 ?0次下載
    PyTorch教程7.2<b class='flag-5'>之</b><b class='flag-5'>圖像</b>卷積

    PyTorch教程14.1圖像增強

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程14.1圖像增強.pdf》資料免費下載
    發(fā)表于 06-05 14:24 ?0次下載
    PyTorch教程14.1<b class='flag-5'>之</b><b class='flag-5'>圖像</b>增強

    對于極暗場景RAW圖像去噪,你是否還在被標定折磨?

    SID[1] 首先提出一套完整的 benchmark 以及 dataset 進行RAW圖像低光增強或去噪。為什么要從RAW圖像出發(fā)進行去噪和低光增強呢?因為其具有更高的上限,具體可以參
    的頭像 發(fā)表于 08-11 15:47 ?2902次閱讀
    對于極暗場景<b class='flag-5'>RAW</b><b class='flag-5'>圖像</b>去噪,你是否還在被標定折磨?

    機器視覺圖像增強和圖像處理

    對原始獲取圖像進行一系列的運算處理,稱為圖像處理。圖像處理是機器視覺技術的方法基礎,包括圖像增強、邊緣提取、圖像分割、形態(tài)學處理、
    發(fā)表于 10-23 10:43 ?3647次閱讀
    機器視覺<b class='flag-5'>之</b><b class='flag-5'>圖像</b>增強和<b class='flag-5'>圖像</b>處理

    機器視覺圖像增強和圖像處理

    一、圖像處理技術概述1.定義對原始獲取圖像進行一系列的運算處理,稱為圖像處理。圖像處理是機器視覺技術的方法基礎,包括圖像增強、邊緣提取、
    的頭像 發(fā)表于 10-26 08:07 ?1695次閱讀
    機器視覺<b class='flag-5'>之</b><b class='flag-5'>圖像</b>增強和<b class='flag-5'>圖像</b>處理