Ich habe ein paar Verbesserungen zu Ihrer vorgeschlagenen Technik.
Zum einen können Sie Ihren Prozess vereinfachen und die Notwendigkeit entfernen zu installieren und auf ImageMagick indem djpeg
emittieren eine PPM
Datei angewiesen sein, weil OpenCV sie trotzdem ohne Bibliotheken lesen kann. So würde Ihr Befehl werden:
djpeg > result.ppm < some12bitBadBoy.jpg
Zweitens, wenn Sie das tun, Sie bekommen tatsächlich eine 12/16 Bit PPM
Datei, so dass Sie mehr Farbauflösung in den Prozess behalten!
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
...
...
Für alle anderen ein schwer erreichbares 12-Bit JPEG zu finden versuchen, Ich fand schließlich ein here.
Ein weiterer Vorschlag, Ihren Workflow zu vereinfachen, könnte seine inotify
(man page) zu verwenden Dateisystem Ereignisse auf dem Bildspeicherbereich zu überwachen. So könnten Sie effektiv benachrichtigt werden, wenn neue JPEGs zur Analyse ankommen, dann könnten Sie automatisch prüfen, ob 12-Bit und eine entsprechende PPM
Datei mit dem obigen Verfahren generieren und das 12-Bit-JPEG auf einen anderen Haltebereich auf der Festplatte verschieben muss darauf zurückkommen.
Wenn Sie Macs verwenden, ist das Äquivalent fswatch
, das mit homebrew installiert werden kann.
Vielleicht imagick: konvertieren orig.jpg -depth 8 output.jpg – tcpack4
Setzen Sie 'CV_LOAD_IMAGE_ANYDEPTH' beim Laden von Bildern? – emcconville
convert sagt "convert.im6: Nicht unterstützte JPEG Daten Genauigkeit 12' cam0_000000_0.jpg '@ error/jpeg.c/JPEGErrorHandler/316. " Dies ist mit der Q16 (16-Bit) Version von Bildmagie. – Philip