우분투 compare 명령어 실무 완벽 가이드: 이미지 차이 비교와 자동화

개요

리눅스 터미널 환경에서 두 이미지의 차이점을 시각적으로 비교하고 픽셀 오차를 수치화할 수 있는 compare 명령어 활용법을 알아봅니다. 기본적인 diff 이미지 생성부터 오차율 측정 메트릭, 자동화 스크립트 응용까지 실무 필수 예제를 중심으로 정리했습니다.

1. ImageMagick 설치 및 compare 명령어 기본 확인

compare 명령어 실습 진행을 위해 패키지 목록을 갱신하고 imagemagick 패키지를 설치합니다.

sudo apt-get update -qq && sudo apt-get install -y imagemagick

compare 명령어는 두 이미지 간의 시각적 및 수학적 차이를 비교하여 분석하고 결과 이미지를 생성하는 도구입니다.
compare -version 명령어를 실행하여 시스템에 정상적으로 설치된 도구의 버전 정보와 세부 빌드 환경을 확인합니다.
⚙️ [주요 옵션]

-metric : 두 이미지 사이의 차이를 측정할 오차 계산 알고리즘(AE, RMSE, PSNR 등)을 지정합니다.
-fuzz : 미세한 색상 차이를 동일한 색상으로 간주할 허용 오차 비율(예: 5%)을 설정합니다.
-highlight-color : 두 이미지에서 서로 차이가 나는 픽셀 영역을 표시할 강조 색상을 지정합니다.
-lowlight-color : 두 이미지에서 서로 일치하는 픽셀 영역을 표시할 비강조 색상을 지정합니다.
-compose : 차이점을 비교하고 시각화할 때 적용할 이미지 합성 방식을 설정합니다.

compare -version

2. 샘플 이미지 생성 및 시각적 차이점(Diff) 이미지 추출

비교의 기준이 될 이미지를 준비하기 위해 흰색 배경에 빨간색 사각형이 포함된 base.png 파일을 생성합니다.

convert -size 200x200 xc:white -fill red -draw “rectangle 40,40 160,160” base.png

비교 테스트를 위한 변경점을 만들기 위해 base.png 위에 파란색 사각형을 추가한 modified.png 파일을 생성합니다.

convert base.png -fill blue -draw “rectangle 70,70 130,130” modified.png

compare 명령어를 실행하여 base.png와 modified.png 두 이미지를 비교하고 달라진 영역이 강조 표시된 diff.png 이미지를 생성합니다.
기본 비교 방식을 통해 일치하는 영역은 반투명하게 처리되고 차이가 발생하는 픽셀은 붉은색으로 시각화됩니다.

compare base.png modified.png diff.png

실습을 통해 정상적으로 생성된 이미지 파일들의 목록과 파일 크기를 확인하기 위해 ls -lh base.png modified.png diff.png 명령어를 실행합니다.

ls -lh base.png modified.png diff.png

3. -metric 옵션으로 픽셀 오차 및 변경 수치 측정

별도의 차이 결과 이미지 파일을 생성하지 않고 두 이미지 간에 달라진 총 픽셀 개수를 측정하기 위해 compare -metric AE base.png modified.png null: 2>&1 명령어를 실행합니다.
AE(Absolute Error) 메트릭은 색상이 일치하지 않는 픽셀 수를 직접 계산하며, 출력 파일 경로에 null:을 지정하여 디스크에 파일을 쓰지 않고 표준 오류 스트림으로 수치 결과만 빠르게 확인할 수 있습니다.

compare -metric AE base.png modified.png null: 2>&1

두 이미지의 시각적 및 색상 오차를 통계적 평균 제곱근 오차로 정밀하게 수치화하기 위해 compare -metric RMSE base.png modified.png null: 2>&1 명령어를 실행합니다.
RMSE(Root Mean Squared Error) 메트릭은 전체 픽셀 대비 색상 차이의 정도를 표준화된 수치로 산출하여 테스트 자동화 및 이미지 품질 검증 스크립트에서 임계값 판정에 유용하게 활용됩니다.

compare -metric RMSE base.png modified.png null: 2>&1

4. 노이즈 허용 오차(-fuzz) 및 강조 색상 커스텀

미세한 색상 차이나 압축 노이즈를 동일한 색상으로 간주하기 위해 5%의 오차 범위를 적용하여 compare -fuzz 5% base.png modified.png diff_fuzz.png 명령어를 실행합니다.
-fuzz 옵션을 활용하면 사람이 육안으로 구별하기 어려운 경미한 픽셀 차이를 무시하고 유의미한 변경 사항만 시각화된 diff_fuzz.png 이미지를 생성할 수 있습니다.

compare -fuzz 5% base.png modified.png diff_fuzz.png

비교 결과물의 시인성을 개선하기 위해 차이점과 일치 영역의 표시 색상을 변경하는 compare -highlight-color magenta -lowlight-color gray base.png modified.png diff_custom.png 명령어를 실행합니다.
-highlight-color로 차이 영역을 자홍색(magenta)으로 강조하고 -lowlight-color로 동일한 배경을 회색(gray)으로 표현하여 변경점을 훨씬 명확하게 구분할 수 있는 diff_custom.png 이미지를 생성합니다.

compare -highlight-color magenta -lowlight-color gray base.png modified.png diff_custom.png

옵션 설정을 통해 생성된 비교 결과 파일들의 저장 상태와 파일 크기를 확인하기 위해 ls -lh diff_fuzz.png diff_custom.png 명령어를 실행합니다.

ls -lh diff_fuzz.png diff_custom.png

지금까지 우분투 환경에서 compare 명령어를 활용해 이미지 간의 차이를 시각적으로 비교하고 업무에 자동화하는 방법을 간단하게 살펴보았습니다.
오늘 정리해 드린 실무 옵션들을 다양하게 응용하여 프로젝트의 이미지 검증 작업을 한층 더 효율적으로 구축해 보시기 바랍니다.