私はあなたの提案したテクニックをいくつか改良しました。
まず、あなたはあなたのプロセスを簡素化し、djpeg
を行うことによってインストールしてImageMagickのに依存することの必要性を取り除くことができOpenCVのは、任意のライブラリなしで、とにかくそれらを読むことができるので、PPM
ファイルを発します。だからあなたのコマンドはなる:あなたがいることをすれば
djpeg > result.ppm < some12bitBadBoy.jpg
第二に、あなたが実際に12月16日ビットPPM
ファイルを取得し、あなたがプロセスに多くの色解像度を保持します!とらえどころのない12ビットのJPEGを見つけようとして他の誰のために
identify -verbose result.ppm
Image: a.ppm
Format: PPM (Portable pixmap format (color))
Mime type: image/x-portable-pixmap
Class: DirectClass
Geometry: 227x149+0+0
Units: Undefined
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 12-bit <---
Channel depth:
Red: 12-bit <---
Green: 12-bit <---
Blue: 12-bit <---
Channel statistics:
Pixels: 33823
Red:
min: 514 (0.125519)
max: 4095 (1)
mean: 2350.62 (0.574022)
standard deviation: 1102.04 (0.269119)
kurtosis: -1.39076
skewness: 0.13609
entropy: 0.971255
Green:
min: 305 (0.0744811)
max: 4095 (1)
mean: 1453.69 (0.354991)
standard deviation: 852.147 (0.208095)
kurtosis: 2.42348
skewness: 1.77043
entropy: 0.918006
Blue:
min: 213 (0.0520147)
max: 4095 (1)
mean: 1309.16 (0.319698)
standard deviation: 890.453 (0.217449)
kurtosis: 2.74961
skewness: 1.92239
...
...
、私は最終的には1 hereを見つけ。
更なる提案は、あなたのワークフローを簡素化するために、あなたの画像記憶領域上のファイルシステムイベントを監視するinotify
(man page)を使用するのが良いかもしれません。したがって、新しいJPEGが解析のために到着すると効果的に通知を受けることができます.12ビットであれば自動的にチェックし、対応するPPM
ファイルを生成し、12ビットJPEGをディスク上の他の保持領域に移動しますそれを参照する必要があります。
Macをご使用の場合、fswatch
はhomebrewでインストールできます。
imagick:convert orig.jpg -depth 8 output.jpg – tcpack4
画像を読み込むときに 'CV_LOAD_IMAGE_ANYDEPTH'を設定していますか? – emcconville
convertは "convert.im6:サポートされていないJPEGデータの精度12' cam0_000000_0.jpg '@ error/jpeg.c/JPEGErrorHandler/316 "と表示しています。これは、画像magickのQ16(16ビット)版です。 – Philip