簡體   English   中英

使用命令行上的原始圖像設置將 Sony 原始“.ARW”圖像文件批量轉換為 .jpg

[英]Batch Convert Sony raw “.ARW” image files to .jpg with raw image settings on the command line

我希望將 1500 萬個 12.8 mb Sony.ARW 文件轉換為 .jpg

我已經想出了如何在命令行上使用 sips 來做到這一點,但我需要對原始圖像設置進行調整:對比度、高光、黑色、飽和度、自然飽和度,最重要的是去霧。 我將對每張照片應用相同的設置。

如果我可以對如何合並 Dehaze 進行調整,似乎 ImageMagick 應該可以工作,但我似乎無法讓 ImageMagick 工作。

我已經完成了比較 Lightroom Classic / Photoshop / Bridge / RAW Power / 和其他一些程序的基准測試。 Raw Power 是迄今為止最快的(在 M1 Mac Mini 16GB Ram 上),但 Raw Power 不允許我一次處理多個文件夾。

我用 photoshop 做了很多腳本/動作——但在這種情況下,photoshop 是迄今為止最慢的選擇。 我相信這是因為它會打開每張照片。

那是 200TB 的輸入圖像,甚至沒有為 output 圖像留出任何存儲空間。 假設您每秒可以處理 1 張圖像,這也是 24 小時/天處理的 173 天——我對此表示懷疑。

您可能想與 Fred Weinhaus @fmw42 談談他的Retinex腳本(在該頁面上搜索“hazy” ),它在去除霧霾方面做得相當出色。 你的項目聽起來很商業化。

在此處輸入圖像描述

© Fred Weinhaus - Fred 的 ImageMagick 腳本

如果/當你得到一個你想要的腳本時,我建議使用GNU Parallel來獲得不錯的性能。 I would also think you may want to consider porting, or having ported, Fred's algorithm to C++ or Python to run with OpenCV rather than ImageMagick .

因此,假設您有一個 24 核 MacPro 和一個名為ProcessOnebash腳本,它以索尼ARW圖像的名稱作為參數,您可以運行:

find . -iname \*.arw -print0 | parallel --progress -0 ProcessOne {}

這將在當前目錄中遞歸查找所有 Sony ARW文件並將它們傳遞到GNU Parallel ,然后這將使所有 24 核保持忙碌,直到全部完成。 您可以指定更少或更多的並行作業,例如, parallel -j 8...

注意 1 :您還可以列出網絡中其他服務器的名稱,它也會將負載分散到它們之間。 GNU Parallel能夠將圖像與作業一起傳輸到遠程服務器,但我不得不質疑這樣做是否有意義 - 您可能希望將圖像的一個子集放在每個服務器上它自己的本地磁盤 I/O 並自己獨立運行服務器,而不是從全球單點分布。

注意 2 :您將希望您的磁盤配置良好,以處理多個並行 I/O 流。

注意 3 :如果您確實編寫了處理圖像的腳本,請將其編寫為接受多個文件名作為參數,然后您可以運行parallel -X ,它將傳遞您的sysctl參數kern.argmax允許的盡可能多的文件名。 這樣,您就不需要每個圖像使用整個bash或 OpenCV C/C++ 進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM