문맥

문맥

문맥

아이폰 사진둘 다: 세로 및 가로에는 ImageMagick 7.0.10-62 Q16 x86_64 2021-02-07 + Catalina MacOs를 통해 EXIF ​​데이터로 타임스탬프가 지정됩니다. ImageMagick은 다음을 통해 설치됩니다.brew install ImageMagick

풍경 이미지는 중력 지도를 따릅니다.

-gravity옵션은 이미지에 주석을 추가하는 데 사용되는 참조 프레임을 지정합니다. 주석이 달린풍경- 환영 사진은 컨벤션을 따릅니다.

여기에 이미지 설명을 입력하세요.여기에 이미지 설명을 입력하세요.

문제: 인물 이미지 주석이 회전됨

주석이 달린초상화- 방향 사진으로 인해 참조 프레임 회전이 발생합니다.

여기에 이미지 설명을 입력하세요.여기에 이미지 설명을 입력하세요.

관련 코드:

rm time*.jpeg
tic=$(date)
for img in IMG*jpeg; do convert "$img" -gravity Center -resize 35% -pointsize 65 \
   -fill red  -annotate +30+30  %[exif:DateTimeOriginal] "time_""$img";
   echo "watermarked $img successfully" 
done
toc=$(date)
echo $tic 
echo $toc

질문

인물 이미지가 감지되면 텍스트를 회전시키는 알고리즘을 적용할 수 있지만 더 쉬운 방법이 있거나 위의 코드가 어떤 면에서 잘못되어 참조 프레임이 +90만큼 회전하게 되는 것 같습니다. 풍경 사진에는 이 문제가 발생하지 않습니다.

  1. 인물 사진에서는 중력 기준계가 90도 회전하지만 풍경 사진에서는 회전하지 않는 이유는 무엇입니까? (기능인가 결함인가?)
  2. gravity일관된/단일 참조 프레임을 채택하는 방법은 무엇입니까 ?
    • 바람직하게는 비회전 기준 프레임

답변1

인물 이미지는 OrientationExif 태그를 통해 회전됩니다. 따라서 이미지를 회전하면 추가된 타임스탬프가 정확합니다.

인물 이미지(Exif를 통해 회전):

$ identify -verbose IMG_6361.jpeg | grep Orientation
  Orientation: RightTop
    exif:Orientation: 6
$ exiftool IMG_6361.jpeg | grep 'Orient\|Width\|Height'
Orientation                     : Rotate 90 CW
Exif Image Width                : 4032
Exif Image Height               : 3024
Image Width                     : 4032
Image Height                    : 3024

가로 이미지(회전되지 않음):

$ identify -verbose IMG_1690.jpeg | grep Orientation
  Orientation: TopLeft
    exif:Orientation: 1
$ exiftool IMG_1690.jpeg | grep 'Orient\|Width\|Height'
Orientation                     : Horizontal (normal)
Exif Image Width                : 4032
Exif Image Height               : 3024
Image Width                     : 4032
Image Height                    : 3024

방향을 "왼쪽 위"로 변경하려면 ImageMagick의-자동 방향다음과 같은 옵션

$ convert -auto-orient IMG_6361.jpeg IMG_6361_auto_orient.jpeg
$ exiftool IMG_6361_auto_orient.jpeg | grep 'Orient\|Width\|Height'
Orientation                     : Horizontal (normal)
Exif Image Width                : 4032
Exif Image Height               : 3024
Image Width                     : 3024
Image Height                    : 4032

명령에 -auto-orient다음을 포함합니다.

for img in IMG*jpeg; do convert "$img" -auto-orient -gravity Center -resize 35% -pointsize 65 \
   -fill red  -annotate +30+30  %[exif:DateTimeOriginal] "time_""$img";
   echo "watermarked $img successfully" 
done

결과:

여기에 이미지 설명을 입력하세요.

관련 정보