제안 된 기술을 몇 가지 개선했습니다. OpenCV의 어떤 라이브러리없이 어쨌든 읽을 수 있기 때문에
첫째, 당신은 PPM
파일을 방출 프로세스를 단순화하고 djpeg
을 만들어 ImageMagick를에 설치하고 의존 할 필요성을 제거 할 수 있습니다. 그래서 당신의 명령이 될 것입니다 : 당신이 그렇게하면 당신이 과정에 더 컬러 해상도를 유지할 수 있도록
둘째
djpeg > result.ppm < some12bitBadBoy.jpg
, 실제로하는 16분의 12 비트 PPM
파일을 가져! 사람들을위한
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
...
...
다른 도비 12 비트 JPEG를 찾기 위해 노력하고, 나는 결국 한 here을 발견 .
또 다른 제안은, 워크 플로우를 단순화하기 위해, 이미지 저장 영역에 파일 시스템 이벤트를 모니터링 할 수 inotify
(man page)를 사용하는 수 있습니다. 따라서 새로운 JPEG가 분석을 위해 도착할 때마다 효과적으로 알릴 수 있습니다. 그러면 위의 절차를 사용하여 12 비트인지 자동으로 확인하고 PPM
파일을 생성하고 12 비트 JPEG를 디스크의 다른 고정 영역으로 옮깁니다. 그것을 다시 참조해야합니다.
Mac을 사용하는 경우 fswatch
이며 자작 나무과 함께 설치할 수 있습니다.
아마 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