介紹
影像感測器的未經處理的數位輸出稱為RAW影像資料。在本文檔中,我們有時會將來自商用相機或顯影系統的 RAW 檔案稱為「相機 RAW」 ,以區別於Bayer RAW檔案。 Bayer RAW 檔案是包含未去馬賽克(Bayer)資料的標準單色影像檔案。
Imatest模組可以直接分析原始文件,也可以在去馬賽克後進行分析。
| 拜耳彩色濾光片陣列 (CFA)大多數數位影像感測器中的像素都覆蓋著拜耳彩色濾光片陣列,這使得每個像素對單一原色(紅、綠、藍)敏感。顏色的順序為 RGRGRG...、GBGBGB...等,交替排列。綠色像素的數量是紅色或藍色像素的兩倍,因為人眼對綠色最敏感。右側顯示了四種可能的像素排列方式(紅色位置),像素位置從左上角的第 1 行第 1 列 ( R1C1 ) 開始。目前沒有通用的顏色( R 、 G或B )到像素位置 ( RmCn )映射標準。可以透過使用Rawview 工具檢查包含可識別顏色的拜耳原始圖像檔案來確定像素排列方式,Rawview工具可以從「實用工具」功能表開啟。 |
|
| 除了眾所周知的拜耳 CFA 感測器外,Imatest 還支援RCCC (紅-清-清-清)感測器,這種感測器廣泛應用於汽車產業(紅色在汽車產業中具有特殊意義)。與拜耳感測器類似, RCCC感測器的紅色通道可以位於四個位置中的任何一個(右側顯示了其中兩個)。 Rawview 可以協助確定紅色通道的位置。 RCCC 影像並非以傳統方式進行去馬賽克處理,而是轉換為單色影像。單色設定和通用讀取原始影像視窗(如下所示)包含從整個影像中移除紅色通道或僅選擇紅色通道的選項。這些方法在 Analog Devices 的「紅/清感測器介面... 」一文中有詳細描述。 |
| ||||||||||||||||||||||||||||||||||||
| RCCB (紅-清-清-藍)感測器可以像拜耳CFA影像一樣進行去馬賽克處理。在影像處理的早期階段,它們可以採用相同的方法進行分析。在應用強色彩矩陣(以去除清光通道中的紅色和藍色分量)之前,其顏色不會類似於常規的RGB彩色影像。 | |||||||||||||||||||||||||||||||||||||
| RGBIR |
| ||||||||||||||||||||||||||||||||||||
為了在大多數應用程式中使用,RAW 檔案必須經過去馬賽克處理(儘管許多Imatest模組可以直接分析 RAW 檔案)。去馬賽克(有時拼寫為demosaicking )是一種插值方法,用於填充每個像素缺少的顏色。它是RAW 轉換程式的主要功能(這些程式可能內建在相機中,也可能安裝在單獨的電腦上)。在去馬賽克過程中,缺失顏色的細節是透過相鄰顏色的細節來推斷的。演算法可能非常複雜。微軟的 Henrique S. Malvar、Li-wei He 和 Ross Cutler 合著的《 用於拜耳陣列彩色影像去馬賽克的高品質線性插值》一文就是一個很好的例子(這也是Matlab 的梯度校正線性插值去馬賽克例程的基礎)。
除了去馬賽克之外,將原始影像轉換為標準可互換影像格式可能還包括
- 應用伽瑪曲線,通常還會添加一條色調響應曲線(該曲線通常有一個“肩部”,即一個圓潤的區域),
- 白平衡和色彩(矩陣)調整,
- 銳化,通常是在對比度高的特徵附近進行,
- 軟體降噪,通常用於缺乏對比鮮明特徵的情況。
所有這些步驟都可能影響Imatest 的測量結果。為了最大限度地減少這些影響(在不進行銳利化、降噪和色調響應曲線處理的情況下轉換原始檔案), Imatest採用了以下技術:
- 對於相機製造商專有的商業RAW檔案(例如佳能的CR2格式和Nikon的NEF格式),其中包含可能被壓縮( m像素壓縮成n位元)的專有元數據, Imatest使用LibRaw。 LibRaw是一款免費程序,可將商業RAW圖像轉換為有用的文件格式,且處理量極少。 LibRaw可以選擇性地應用簡單的伽瑪曲線(不包含額外的色調響應曲線)和白平衡(基於相機設定),但它不會進行銳化或降噪處理。
- 對於廠商開發系統的輸出(通常是純二進位數據,每個像素 1 或 2 個位元組),Imatest 使用下文所述的通用讀取原始資料 ( Generalized Read Raw )。通用讀取原始資料可以選擇性地應用簡單的伽馬曲線和白平衡(基於粗略的「灰階世界」演算法)。輸出影像可以在「色彩/色調互動式」或「色彩/色調自動」模式下進行色彩校正(使用矩陣),並在「影像處理」模式下進行銳利化或降噪。必須指定與檔案格式(最重要的是行數、列數和位元深度)相對應的副檔名。
Imatest 中的原始文件
Imatest可以透過兩種方式使用 RAW 檔。
- 它可以對原始文件進行去馬賽克處理,產生標準的 3 色 RGB 影像文件,格式包括 TIFF、PPM、PNG 和 JPEG,預設格式為 TIFF。使用 LibRaw 或通用讀取原始影像的優點在於它們不會進行銳利化和降噪處理,並且使用直線伽馬曲線。 LibRaw 提供多種伽馬值選項,包括 1/2.2(適用於典型顯示器)、sRGB(接近伽馬值 2.2,但在暗部區域具有線性過渡)和 1.0(真正的線性)。如果可以使用原始文件,則可以對不同製造商的相機和鏡頭進行一致且公平的比較。在 Colorcheck 和 Stepchart 中使用 LibRaw 時應謹慎,因為它預設會執行自動曝光(自動白電平調整)。應取消選取“自動白電平”按鈕以獲得正確的色階。根據dcraw 常見問題解答,“無論影像有多暗,dcraw 的自動曝光功能都會將其拉伸,使其中 1% 的像素顯示為白色。“-W”選項可以避免這種情況。”
- 它可以將相機原始檔案轉換為以標準單色影像檔案格式(TIFF、PNG 或 PGM)儲存的拜耳原始(未去馬賽克)檔案。大多數Imatest Master模組都可以分析拜耳原始檔。拜耳原始檔案對於測量橫向色差非常有用,因為去馬賽克過程會嚴重扭曲橫向色差。它還允許分別分析兩個原始綠色通道(Gr 和 Gb)。注意: LibRaw 可能會進行一些色調處理,即使文件中指出它不會,也就是說,Stepchart 和其他模組測量的伽馬值可能與預期值 1 相差甚遠。 (這可能是由於原始文件本身存在未校正的偏移量造成的。)
要在 Imatest 中使用原始文件,可以這樣做:
- 點擊 Imatest 模組(SFR、Stepchart 等),然後像開啟其他圖片檔案一樣開啟檔案。如果檔案副檔名表明它是 LibRaw 支援的相機原始影像檔案(CR2、NEF 等,甚至包括 Phase One RAW TIF 檔案),則會開啟如下所示的對話框,用於設定Libraw (以前稱為 dcraw)參數。如果檔案副檔名已輸入至「通用讀取原始影像」設定中,則檔案將根據「讀取原始影像」設定進行讀取和解碼。
- 點擊「實用工具」選單中的LibRaw 複選框,即可將 LibRaw 作為獨立應用程式運作:輸出檔案將會被儲存,但 Imatest 模組將不會運作。下方 LibRaw 部分顯示的對話方塊是 LibRaw 的圖形使用者介面 (GUI) 前端,可讓您選擇 LibRaw 的多個選項。
使用 LibRaw 處理商業 RAW 文件
注意: Imatest 2021.1版本新增了對LibRaw的支援。 dcraw已於2021.2 版本棄用。它提供最新的相機支援。 dcraw在 2021.2 版本之前是一個可選功能,但它不支援 2019 年之後發布的 RAW 檔案格式。在 LibRaw 出現之前,要轉換 dcraw 不支援的 RAW 映像,需要先使用免費的AdAdobe DNG 轉換器將其轉換為 DNG 格式。 |
確保Imatest所使用的影像檔案忠實還原原始檔案(即具有直線伽馬曲線、未銳利化、未降噪)的最佳方法是將原始檔案讀入Imatest ,並使用LibRaw (或在 2021.1 版本之前使用Dave Coffin 的 dcraw)將其轉換為標準格式(TIFF、PPM 等)。如果您選擇任何標準原始格式(CR2、CR3、NEF 等)或偵測到原始資料(例如 Phase One TIF 檔案),則會跳出對話方塊。這是 LibRaw 的一個前端,可讓您在多個原始轉換選項之間進行選擇。預設位於右側的粉紅色框中。

已不再需要的「程式」下拉式選單已被移除。
LibRaw可以 (A) 對相機 RAW 檔案進行去馬賽克處理,僅進行最小程度的處理——不進行銳化、不進行降噪,僅應用簡單的伽馬曲線;或者 (B) 將其轉換為包含 Bayer RAW(未去馬賽克)資料的標準 8 位元或 16 位元單色檔案格式(TIFF 或 PGM),這些資料模組可供分析。此轉換提供以下選項:
| 去馬賽克 | 普通原始轉換(去馬賽克) |
| Raw 8 位元(Bayer raw;無去馬賽克) | |
| Raw 16 位元(Bayer raw;無去馬賽克) |
如果選擇上述第二或第三個選項(原始 8 位元或原始 16 位元),則大部分去馬賽克區域(如上所示)將變為灰色,LibRaw 的輸出為一個單色 TIFF 或 PGM 文件,其中包含來自影像感測器的未去馬賽克(拜耳原始)資料。
注意:截至 2009 年 7 月,未去馬賽克(拜耳 RAW)檔案的像素等級和伽瑪值似乎不太可靠,這顯然是因為 RAW 影像中的偏移量未被消除。如果取消選取“自動白電平”,則等級會過暗,且伽瑪值不正確(針對佳能 CR2 RAW 檔)。使用正常的 RAW 轉換(去馬賽克)後,曝光和伽瑪值則較為可靠。
Imatest 2021.1 版本新增了對 LibRaw 的支持,並支援多種相機。 LibRaw 選項在 2021.1 版本中仍然可用,但在 2021.2 版本中已被棄用。
如果選擇了「普通原始轉換(去馬賽克)」 ,則「去馬賽克」框中包含多個選項,其中大部分選項在dcraw 手冊頁中有更詳細的說明( LibRaw網站上沒有找到相應的頁面)。以下輸出色彩空間可用於去馬賽克輸出。
| 原始資料(並非真正的原始像素)。 未經色彩空間轉換或白平衡調整的去馬賽克影像。 需要使用相機的色彩設定檔來正確解讀顏色。 Gamma = 0.45。 |
| sRGB、Adobe RGB (1998)、廣色域 RGB、ProPhoto RGB 和 XYZ。 |
輸出檔中嵌入了四種標準色彩空間的設定檔標籤。有多種去馬賽克品質等級(使用不同的演算法)可供選擇(值得探索)。詳情請參閱dcraw 手冊頁。預設啟用自動白電平。在進行色調測量時,可以將其關閉。
LibRaw 預設將 RAW 文件轉換為 TIFF 文件,並提供不太常見的 PPM 格式作為選項。如果選取刪除轉換後的 (TIFF) 檔案複選框,則可以將影像儲存為兩種壓縮格式之一:PNG(無損壓縮;耗時較長)或 JPEG(有損壓縮;最高品質;僅限 24 位元)。
LibRaw網站上列出了支援的相機清單。
相機內JPEG檔與LibRaw轉換檔之間的差異 這兩種文件類型通常外觀不同,因為
原始檔案的 EXIF 元資料包含色調響應曲線、銳利化和降噪等資訊。 LibRaw 會忽略這些訊息,但某些能夠讀取原始檔案的程式(例如 Irfanview 或 Photoshop)可能會使用這些資訊。 |
單色/拜耳RAW(或RCCC)檔案選擇
當支援拜耳RAW分析的Imatest Master模組開啟單色檔案時,會出現如下所示的對話方塊。 (如果選取了「不顯示此視窗...」選項,則不會出現此對話方塊。可以在「設定」的「單色讀取對話方塊」下恢復顯示。)
左側的四個按鈕會立即執行操作(視窗關閉,處理繼續):、 、去以及 。
對於不包含 Bayer RAW 或 RCCC 資料的普通單色影像文件,應選擇。
對於拜耳RAW和RCCC文件,色彩解釋取決於像素顏色映射的選擇(佳能相機為R1C1紅色;松下相機為R1C2紅色,等等)。可以透過對一張顏色清晰的影像運行Rawview工具來找到拜耳RAW影像的正確設定。對於通常偏暗的16位元影像,位移操作可能很有用。
處理的影像包含四個通道(紅色、綠色(紅色行)、藍色和綠色(藍色行)-簡寫為 R、G(r)、B、G(b)),不進行去馬賽克處理。要顯示(在某些情況下也用於分析)的主要通道在「要分析的主要通道」下拉式選單中選擇。此設定可在各個模組中進行覆蓋(並非至關重要)。
可以對影像進行去馬賽克處理(適用於拜耳感測器),也可以將其處理為 RCCC 格式。必須在「去按鈕右側的下拉式選單中選擇去馬賽克或 RCCC 處理演算法。選項如下圖所示。
Demosaic下拉式選單包含以下選項。
| 建議使用 Matlab(梯度相關線性內插) | 適用於拜耳感應器。輸出為彩色影像。使用 Matlab 的中等高品質去馬賽克演算法,該演算法源自 Malvar、He 和 Cutler 的論文《用於拜耳圖案彩色影像去馬賽克的高品質線性插值》 。 |
| 雙線性內插(簡單、低品質、 清晰度較低;不建議) | 適用於拜耳感應器。輸出為彩色影像。通常不建議選擇此方案。 |
| RCCC感測器:紅色通道去除(簡單;全解析度) | 輸出為清晰像素的全解析度單色影像。紅色通道透過插值去除,插值採用Analog Devices 白皮書圖 4 中的 4 像素平均核。 |
| RCCC感測器:僅紅色通道 (簡單;半(線性)解析度) | 輸出結果為僅包含紅色通道的單色影像,其線性解析度為輸入影像的一半。 |
| RCCC感測器:紅色行移除 (改變寬高比) | 輸出結果為清晰像素的單色影像,行數是原始影像的一半。 |
| RCCC感測器:紅色列移除 (改變寬高比) | 輸出結果為清晰像素的單色影像,列數是原始影像的一半。 |
| RCCC感測器:紅色去除並進行校正;更銳利 | 採用Analog Devices公司「紅/透明感測器介面… 」一文中所述的處理方法。輸出為單色影像。 |
兩種去馬賽克選項均支援白平衡調節,但不支援 RCCC 模式。
識別拜耳原液模式
拜耳原始圖像通常是單色文件(但如果使用螢幕截圖——快捷鍵 Alt-PrtSc——獲取,則可能是彩色的)。它們有時會在開發/原型系統中意外出現。如果您能辨識它們,就能避免很多麻煩。它們的特徵是類似右圖所示的方形圖案。


拜耳原始特徵模式
如果選擇了拜耳原始顏色,則會根據像素顏色映射和按下的按鈕(、等)選擇四個影像平面之一。 (影像平面與顏色之間沒有通用的映射標準。)下圖顯示了按下按鈕時可以分析的四個平面。請注意,每個平面中影像的高度和寬度(以像素為單位)是整個影像高度和寬度的一半,像素間距是感測器像素間距的兩倍。
↓
|
↓
|
↓
|
↓
|
(目前沒有將顏色映射到影像平面的通用標準。)
拜耳頻率單元
在SFR或任何Rescharts MTF 模組(斜邊等)中分析 Bayer 原始(未去馬賽克)影像的 MTF 時,「更多設定」視窗提供了一個名為「Bayer 頻率單位」的設置,位於「MTF 圖單位」附近。此設定有兩個選項:「每個總像素的週期數」和「每個通道像素的週期數」:
-
循環次數/總像素數-產生的空間頻率將根據完整尺寸影像中的像素數進行縮放。此選項可提供空間頻率的自然縮放,其結果與去馬賽克影像的結果相當。這是預設值。
-
每通道像素循環數-產生的空間頻率會根據子取樣單通道影像的大小進行縮放,該影像的高度和寬度是完整影像的一半(像素數是完整影像的四分之一)。因此,使用此選項時,奈奎斯特頻率將減半。此選項僅適用於與影像大小相關的「MTF 圖單位」(空間頻率單位)(例如影像高度和裁剪高度)。對於所有其他空間頻率單位,「拜耳頻率單位」設定將被停用,並預設為「每總像素循環數」選項。
閱讀這篇知識庫文章以了解更多資訊: 拜耳原始影像的SFR結果
直接讀取 DNG(Adobe 數位底片)
|
建議用於讀取原始檔案以測量影像感測器雜訊或眩光(光暈)。 我們也推薦使用 DNG 格式,因為 LibRaw 不支援這種較新的商業 RAW 格式。 |
Imatest可以直接讀取DNG(Adobe 數位底片)檔案。
儘管DNG格式在檔案去馬賽克後優勢不大,但它在測量方面卻具有顯著優勢。
- 影像感測器動態範圍,需要線性未去馬賽克(拜耳)原始文件數據,像素級別範圍從 0(純黑)到位格式的最大值(通常 16 位元深度為 65535)。
- 眩光會造成測量誤差,任何像素級的偏移(基線)都可能導致測量結果不準確。
- LibRaw 不支援商業 RAW 檔案格式。
問題在於不同相機的黑色電平偏移(最小像素值)和白色電平(飽和度)各不相同,而且由於製造商使用不同的 EXIF 標籤(甚至根本不記錄)來記錄這些值,因此很難確定這些值。這些值通常在影像去馬賽克時應用於 LibRaw 處理,但在影像未去馬賽克時(且未保存在 EXIF 資料中)通常會被忽略,也就是說,LibRaw 在存在偏移時不夠穩健。為了獲得有效的感測器動態範圍計算結果,需要應用這些偏移值。對於已轉換為 DNG 格式的原始文件,此過程會自動完成。 DNG 是一種特殊的 TIFF 文件,它使用標準標籤進行線性化和黑白電平校正。有關概述,請參閱「在 MATLAB 中處理原始影像」 。
任何商業RAW檔案(CR2、RW2、NEF等)都可以使用Adobe的免費DNG轉換器轉換為DNG格式。點擊此處下載並按照說明操作。 Adobe Digital Negative Converter在圖形使用者介面(GUI)視窗中運作。要將其用於未去馬賽克的文件,請打開它並單擊“更改首選項”打開“首選項”窗口,然後在“兼容性”下拉窗口中選擇“自定義...”打開“自定義DNG兼容性”窗口。 「線性(去馬賽克)」應取消選中, 「未壓縮」應選中,如右圖所示。
DNG轉換器的操作簡單易懂。請注意,資料夾中的所有文件都將轉換,因此如果您只想轉換部分文件,則需要將它們移至單獨的資料夾中。
若要使用此功能,必須在「設定」中選擇右側所示的選項「3. 直接讀取 DNG 文件,然後線性化併校正黑電平偏移」 。選擇此設定後, Imatest讀取的 DNG 檔案在純黑狀態下像素等級為 0,最大像素等級為 2位元深度- 1(位元深度為 16 時為 65535),因此非常適合用於測量感測器動態範圍。
Rawview 實用程式
Rawview實用程式可讓您透過嘗試每種顏色排列方式(紅色位於 R1C1、R1C2、R2C1 或 R2C2 中)並選擇看起來最好的顏色排列方式來確定 Bayer raw 檔案的顏色排列方式。
Rawview 無法直接處理二進位 raw 檔案或製造商提供的 raw 檔案。
這些檔案應該轉換為標準圖像檔案格式(PNG、JPEG 等)。
通常不使用去馬賽克處理,而是使用 Read Raw 或 LibRaw。
如有需要,圖像可以儲存為 RGB 檔案。可以從「實用工具」功能表開啟它。首次開啟Rawview時,會顯示類似如下所示的說明。 (這些說明可能會更新。)
歡迎使用 Rawview:預覽拜耳 Raw 檔案。 |
讀取圖片檔案後, Rawview視窗如下所示:
Rawview 視窗(未縮放)
縮放功能始終處於啟動狀態:可以放大影像以更好地查看關鍵細節。 」按鈕會在「R m C n中的紅色」選擇變更時啟用。它會設定Imatest模組中開啟 Bayer 原始檔案的預設設置,這會影響某些顯示器。
請注意, Rawview不會進行白平衡調整,因此您看到的色彩平衡代表的是感測器中的色彩平衡,這可能很有趣。它很少是中性的。
| 若要確定哪個位置 (RmCn) 包含紅色通道,請點選左下角下拉選單中每個僅包含 RmCn 的設定(例如:僅 R1C1(用於 RCCC))(上方顯示的是R1C2 中的紅色)。包含紅色通道的位置看起來會與其他位置不同——更暗。此位置可用於單色(拜耳原始)和通用讀取原始設定視窗。 |
有兩種方法可以將影像儲存為 RGB 檔案:會將影像儲存為低解析度 RGB 文件,僅使用 R、(其中一個)G 和 B 通道,而不進行適當的去馬賽克處理。垂直和水平解析度均為原始檔案的一半(總像素數為原始檔案的 1/4)。則使用 Matlab 的標準梯度校正線性插值去馬賽克演算法,將影像儲存為全解析度 RGB 檔案。
Rawview 下拉式選單包含顯示選項和儲存指令。
文件
- 讀取拜耳原始檔案讀取拜耳原始檔案(必須為標準影像檔案格式:TIFF 等)
- 儲存畫面:儲存螢幕內容。如果勾選「顯示螢幕」複選框,則可以選擇顯示螢幕內容。首次使用此方法顯示螢幕之前,需要先設定檢視器。 Irfanview 是一款優秀的免費檢視器。
- 將影像另存為 RGB 檔案。該 RGB 檔案像素尺寸(解析度)是原始檔案的一半。此過程不涉及去馬賽克演算法。 R 通道、選定的 G 通道(G(R) 或 G(B))以及 B 通道的內容與未去馬賽克的通道相同。
設定
- 調整 16 位元影像如果需要增強顯示效果,可以提亮 16 位元影像(線性或接近線性,即伽瑪值接近 1.0)。
- 更明亮的 16 位元影像進一步提高 16 位元影像的亮度,以獲得額外的顯示效果。
幫助
- 線上幫助頁面將在您的預設瀏覽器中開啟。
Generalized Read Raw
Read Raw lets you read and decode binary raw files created in engineering development systems, which are not supported by LibRaw. It has a great many options. For example, you can demosaic a file or leave it undemosaiced in order to measure MTF of any of the four channels (R, GR, B, GB) of undemosaiced (Bayer raw) files. Options are listed below.
Generalized Read Raw is primarily for binary files taken directly from manufacturer's development systems. For the proprietary RAW formats from commercial cameras, which contain metadata and packed data, LibRaw should be used.
To read Generalized Raw files you must specify a file extension (up to 16 can be registered) and associate read settings with that extension. This can be done in the following steps.
Click the button in the Utility menu. The following dialog box opens. Entries should be based on manufacturer's data sheets where possible, but some trial-and-error is often required. If you know the image width and height (in pixels) setup is usually very fast. If you make an incorrect choice, a plot will be displayed (below) to help determine the correct width and height values.
- File extension— Select one of the 16 extensions in the dropdown menu on the upper-left to edit. To recognize a new extension, enter the extension (3 or more alphanumeric characters) in the box to the right of the dropdown menu, and hit Enter. If possible, it should be one of the extensions not recognized by LibRaw. The settings for this extension will be saved when you click OK or Convert/Test (which tests extension settings by reading and displaying a file).
As of October 2009, the following extensions (in rawphoto.c, linked from www.dechifro.org/dcraw/) are recognized by LibRaw/dcraw: 3fr, arw, bay, bmq, cine, cr2, crw, cs1, dc2, dcr, dng, erf, fff, hdr, ia, jpg, k25, kc2, kdc, mdc, mef, mos, mrw, nef, nrw, orf, pef, pxn, qtk, raf, raw, rdc, rw2, sr2, srf, sti, tif, and x3f.
- Input pixel size— How pixels are stored in the file. Choices are uint8, uint16, and uint32 (unsigned 8, 16, and 32-bit formats, for 1, 2, or 4 bytes per pixel). Packed formats (for example where 2 12-bit pixels stored in 3 bytes) are handled in the Unpack dropdown menu.
- Output pixel size— How pixels are stored in Imatest. Choices are uint8, uint16, or uint32 (for HDR files).
- Bit shift— The number of bits to shift so the lightest pixels aren't too dark or saturated: Auto or 0, ±2, ±4, ±6, or ±8 are the choices for uint8 or uint16 output. Uses the very fast Matlab bitshift function. Often needed to get correct levels for analysis. Negative numbers darken the image. Auto is recommended unless absolute levels are required.
| Warning: be cautious in applying bit shift, and especially Auto bit shift, to measurements that require absolute levels, particularly with 16-bit output files where the original sensor has 10-14 bits of data (resulting in padded files). Such measurements include hot/dead pixels (in Uniformity and Blemish Detect), which will be shifted along with the image, Color Correction Matrix (in Color/Tone Interactive), etc. |
Auto bit shift works by finding the maximum pixel value m in the image excluding the two outer rows and columns (closest to the edge of the image), comparing the maximum to the maximum level for the output pixel size (255 for uint8, 65535 for unit16, etc.) then shifting the pixel levels so the maximum pixel value is between half the maximum and the maximum for the output pixel size. For example, if the maximum pixel level m for a uint16 image is 9120, the bits will be shifted by 2 pixels (equivalent to multiplication by 4) to make the maximum 36480.
- Pixel offset— An integer number to subtract from the pixel levels. Used when there is a black level offset or "pedestal". Test carefully, especially if Bit shift is applied (it is applied before Bit shift). Note that the pedestal subtraction is applied after the decompanding (addressed in the Decompanding section). If pedestal subtraction is desired prior to decompanding then it must be set in the JSON decompanding file instead.
Auto offset will be deprecated in 2021.1. Auto offset finds the minimum pixel level (which is a function of pedestal, image content, and veiling glare) and subtracts it from the image. This ruins veiling glare measurements. We strongly discourage selecting Auto offset. An appropriate manual pixel offset is far more consistent.
- Byte ordering—I EEE Little or Big-Endian. Affects results when Input pixel size is uint16. See wikipedia.org/wiki/Endian.
- Width— Image width in pixels. Can usually be obtained from manufacturer's data sheets. If you enter an incorrect number for width and height (if Width x Height × bytes per pixel ≠ file size in bytes), an additional plot is displayed (see below) to help you estimate the width.
- Height— Image height in pixels.
- Transpose— Switches rows and columns. Usually checked.
- Rotate/Mirror— Allows the image to be rotated by multiples of 90 degrees and/or mirrored.
- Pixels to skip— The number of pixels to skip at the start and end of the file.
- White balance— None or Simple White Balance (gray world; darken or lighten). Simple WB sets the gain on the four channels so their mean is identical (the lowest of the four means if "darken" is selected; the lightest if "lighten" is selected). It's not a sophisticated algorithm— it only works for mostly gray test charts (some color is tolerated as long as the average is close to neutral gray). WB allows you to interpret the image as a standard monochrome file (rather than a Bayer RAW channel with only 1/4 the pixels) that can be analyzed for MTF with any of the sharpness modules (SFR, SFRplus, Log F-Contrast, Star Chart). An undeomsaiced slanted edge without and with WB is shown below. In this case, white balance was not far off to begin with. For full color correction, we recommend calculating a Color Correction Matrix (CCM) using the decoded image.
![]() | ![]() |
|---|---|
| SFR edges: without and with White Balance | |
- White level— No change or Auto: 99% of saturation. The Auto: 99% setting sets the highest pixel to 99% of the saturation level (252 for 8-bit files; 64880 for 16-bit files). This usually lightens the images, especially if Bit shift is not set to the optimum value.
- Unpack— Settings for unpacking specialized packed files (MIPI, Android). Updated on user request.
- Gamma— Apply gamma encoding to the image. Gamma = 1 is standard: it maintains the gamma (around 1) of the raw image. 0.4545 (1/2.2) (or 0.5) is close to standard color spaces.
- Decompanding— Provides the user with the option to apply decompanding on a raw image using the drop-down menu. To apply decompanding, the user must input their sensor’s companding data using a JSON file. Shown below is an example of a 16-bit to 12-bit companding for the AR0331 sensor. Clicking on the ? button to the right of the drop-down menu opens a window with brief instructions.
|
Imatest decompanding is based on manufacturer's specifications. See, for example: https://www.onsemi.com/pub/Collateral/AR0331-D.PDF, Figure 19 and Table 9, pages 20-21. Decompanding is performed in piecewise-linear segments (different algorithms can be added). You will need a decompanding file based on entries in the Companding table (Table 9 in the above link) or "knee points" provided by the customer. Input is in JSON format, which has rigid syntax. See below for an example, using the input/output code ranges taken from the Table 9 in the above link. Fields with peach backgrounds are optional and treated as comments. You are free to add additional comment lines. They will be ignored, as long as they are not considered user data. Decompanding file based on the companding table in the above link {
"dcData": {
"decompanding_data_source": "https://www.onsemi.com/pub/Collateral/AR0331-D.PDF",
"decompanding_data_details": "Fig. 19 and Table 9, pp. 20-21",
"user_comment": "",
"decompand_type": "piecewise linear",
"input_code_range_low": [0, 1024, 4096, 32768],
"input_code_range_high": [1023, 4095, 32767, 65535],
"output_code_range_low": [0, 1024, 2560, 3456],
"output_code_range_high": [1023, 2559, 3455, 3967],
"pedestal": 0
}
}
Customers often send us "knee points" for decompanding. We have found that these are simpler to use and less error-prone than the input/output code ranges (see above). A decompanding file based on "knee points is shown in the example below. Note that a bit shift (-4 bits; equivalent to dividing by 16) has been applied before decompanding. Decompanding file based on the customer-supplied "knee points" {
"dcData": {
"decompanding_data_source": "Customer-supplied data",
"decompanding_data_details": "Input is uncompanded; output is companded",
"user_comment": "",
"decompand_type": "piecewise linear",
"bitshift_first": -4,
"kneePoints_input": [0, 2048, 65536, 1048576],
"kneePoints_companded": [0, 2048, 3040, 4001],
"pedestal": 16
}
}
INI decompanding fileWe have added an alternate INI input format, which is quite robust and easy to get right. To read with the INI format, the decompanding file extension must be INI. Here is an example of the INI formatted for the same data as the above box.
We recommend the resource folder for storing this file (though any convenient folder will work). To locate it on your computer, open Settings, press Manage settings, and click Open Resources folder at the bottom. Note: The ReadRaw Output Pixel Size should be set for the decompanded image size. E.g., if you are decompanding a 16 bit image into a 20 bit image, select 32 bit as the Output Pixel Size. If the Output Pixel Size is less than the decompanded size, then imatest will bitshift the data down to the Output Pixel Size. |
The JSON format data above are based on entries in Table 9 of the AR0331 link. The JSON format data above are based on entries in Table 9 of the AR0331. The “input_code_range_…” refers to the image sensor data and the “output_code_range_…” refers to the companding data in the JSON file. For more information, refer to tables 9 and 10 in the AR0331 documentation. The Decompand plot button produces a plot of the decompanding file, useful to check on the JSON settings, which have a rather inflexible format. Either Decompanding or Companding can be selected (Decompanding is shown below). There is a small image in the center of the plot showing the approximate shapes of the two curves— important for avoiding errors caused by confusing input and output data.
Decompanding plot preview, showing contents of the JSON file- 去馬賽克-可選擇「無」(單色輸出)、去馬賽克程式(用於拜耳影像;彩色輸出)或 RCCC 處理(單色輸出)。選項與「單色」視窗(上圖;此處重複)類似。
| 無(拜耳原始輸出) | 單色輸出:與輸入相同。 |
| Matlab(梯度校正線性插值) | 色彩輸出:高品質去馬賽克,使用Matlab 的去馬賽克函數。推薦用於拜耳陣列原始檔案。 |
| 雙線性內插(簡單、低品質;清晰度不高) | 色彩輸出:品質差;清晰度低。 (應客戶特殊要求。)不推薦。 |
| RCCC感測器:紅色通道移除 (簡單;全解析度) | 透過內插法去除紅色通道的單色輸出。請參閱Analog Devices 的「紅色/透明感測器介面... 」文件。您可以選擇“無”,稍後在“單色/拜耳原始影像”視窗中執行 RCCC 處理。如果紅色頻道的位置未知,請選擇“無”,然後使用Rawview尋找其位置。 |
| RCCC感測器:僅紅色通道(簡單;半(線性)解析度) | 單色輸出:僅紅色頻道。輸出的線性解析度是輸入的一半(像素數為 1/4)。 |
| RCCC感測器:紅色行移除 (改變寬高比) | 輸出結果為清晰像素的單色影像,行數是原始影像的一半。 |
| RCCC感測器:紅色列移除 (改變寬高比) | 輸出結果為清晰像素的單色影像,列數是原始影像的一半。 |
- 拜耳排列(紅色通道的位置)。
- 輸出文件:儲存文件。檔案格式可選:無(不儲存;唯讀)、 PNG 、 JPEG、TIFF 或 HDR(Radiance) 。未去馬賽克的文件可以使用Rawview開啟。
- 轉換/測試功能會儲存設置,然後讀取並顯示原始影像檔案或一批檔案(範例請見右圖)。如果讀取的檔案實際大小不等於像素寬度 x 高度,則影像將以相同的寬度顯示,但高度會進行調整,並顯示兩張診斷影像(如下所示;用於估算正確的寬度)。圖表下方的文字會顯示指定的寬度、高度和寬度 x 高度,以及傳回的實際像素數(如果選擇了正確的值,則該值將等於寬度 x 高度)。可用的輸出格式包括 PNG、JPEG、TIFF 和 HDR。
- 儲存設置,但不關閉“讀取原始影像”視窗。此功能可用於透過將映像直接讀取到Imatest模組來測試「讀取原始映像」功能。
- 確定儲存設定並關閉“讀取原始資料”設定視窗。
- 點擊右上角的「幫助」按鈕即可開啟此網頁。
「操作順序」視窗會顯示正常的操作順序(如下圖)。這有助於解答常見問題。請注意,所有操作都是可選的:只有在指定的情況下才會執行。令人驚訝的是,在去馬賽克之前,拜耳影像需要執行如此多的操作。
|
估算影像寬度和高度
如果從檔案中讀取的像素數(不包括檔案開頭或結尾跳過的像素)不等於指定的影像寬度 x 高度,則診斷圖會顯示估計的檔案週期(最大週期通常等於影像的像素寬度)以及幾個影像尺寸的猜測值。下圖是透過故意輸入錯誤的寬度值得到的。
週期性是透過計算一維影像資料的傅立葉變換,求出絕對值(即去除相位),然後進行傅立葉逆變換得到的。最大峰值(大於 0)的位置即為最可能的週期性。在本例中,週期性為 4096,顯示在右上角。由於此估計可能不適用於所有圖像,因此也顯示了其他可能的寬度(週期性)。
如果像素寬度和高度的估計值是整數(沒有小數部分),則這些估計值是有用的。在本例中,第一個估計值(4096 * 3072,基於將總像素數除以最可能的週期)被證明是正確的,並且4:3寬高比也出現了相同的尺寸。其他寬高比顯然是錯誤的。此圖中的資訊可用於改善「讀取原始影像」設定視窗中的「寬度」和「高度」設定。
創建合成RAW影像
有時需要原始影像來分析訊號處理演算法的效能,但可能無法獲得真實的原始影像(來自相機)。在這種情況下, Rescharts 、 Color/Tone Interactive 、 Uniformity-Interactive和Image Processing中使用的影像可以儲存為偽原始影像。
如果需要高品質圖像,我們建議運行“測試圖表”模組並保存圖表圖像。 「測試圖表」會產生兩種類型的圖片檔案:點陣圖圖表(可直接載入到上述任何模組)和SVG(可縮放向量圖形)檔案(可在Inkscape (一款優秀的免費開源軟體)中開啟和編輯,並匯出為點陣圖 (PNG) 檔案)。兩種類型的影像都可以編輯,例如將黑白影像改為黑紅或藍(拜耳去馬賽克處理效果較差的情況)。我們經常建議使用「影像處理」模組,該模組可以讀取任何影像文件,先對影像進行降級處理(添加雜訊、模糊等),然後再增強影像(使用色調映射、雙邊濾鏡、USM銳利化等)。
若要儲存「偽原始」文件,請按一下任何模組上的「檔案」下拉式選單,然後按一下「儲存偽原始/重新鑲嵌影像」 。這將開啟“儲存(重新)鑲嵌影像”對話框。
此視窗提供多種處理和保存選項。
- 拼接或通道選擇決定了基本操作。選項有:
無(正常顏色文件輸出)
鑲嵌(拜耳格式) (預設-標準拜耳鑲嵌。)
RCCC(紅-清-清-清):R 亮
RCCC(紅-白-白-白-白):R = C/3
單色(Y = 亮度)
單色(平均值:權重相等)
紅色的
綠色的
藍色的
- 紅色通道位置這適用於拜耳馬賽克影像和 RCCC 影像。
1. R1C1 (RGGB) 中的紅色
2. R1C2 (GRBG) 中的紅色
3. R2C1 中的紅色 (GBRG)
4. R2C2 中的紅色 (BGGR)
- 旋轉/鏡像
1. 保持方向(預設)
2-4. 逆時針旋轉 90 度、180 度、270 度
5. 鏡像(不旋轉)
6-8. 鏡像,逆時針旋轉 90°、180°、270°
- 伽瑪調整(乘數) (預設為 1)用於大致恢復由伽瑪編碼影像產生的偽原始影像的線性色調響應。對於典型的色彩空間文件,如果編碼伽瑪值接近 0.5,則伽瑪值為 2 比較合適。更好的方法是:使用從灰階圖表測得的編碼伽瑪值的倒數。
- 「儲存檔案格式」用於選擇儲存檔案的格式。可選擇四種標準圖片檔案格式:PNG(預設)、JPG、TIF 和 BMP。 PNG 通常是一個不錯的選擇,因為它採用無損壓縮,而且比 TIF 或 BMP 檔案小。 JPG 可以產生較小的檔案(但通常不建議使用 JPEG,因為有損 JPEG 壓縮可能會影響通道間的隔離度)。可以使用Rawview查看標準圖片檔。
可選擇兩種二進位格式:8 位元和 16 位元。這些格式可以使用通用讀取原始資料進行解碼。 - 只有當選擇了上述二進位格式之一時,才會啟用副檔名(二進位) 。請為副檔名選擇一個名稱(通常為 RAW,但建議使用唯一的副檔名)。
- 增強綠色通道使保存的文件看起來更像典型的RAW文件,其中綠色通道通常比其他通道更有能量。選擇是
無強調:RGB 等權重(預設)
綠色(藍色/2,紅色/2)
綠色(藍色/3,紅色/3)
綠色(藍色/2,紅色/4)
綠色(藍色/4,紅色/2)
預覽功能會開啟預覽影像,通常顯示為馬賽克(拜耳原始)單色影像。儲存影像後,使用Rawview查看去馬賽克後的影像效果。
參考
Rob Sumner(加州大學聖克魯茲分校電機工程系)撰寫的《在 MATLAB 中處理 RAW 影像》一文,對 RAW 檔案及其處理方式進行了很好的介紹。







