두 이미지간에 무엇이 바뀌 었는지 정확히 어떻게 알 수 있습니까?


28

예를 들어, JPEG 압축에 관한 최근 대화를 위해 두 JPEG (압축 수준 100이있는 압축 장치와 압축 수준이 95 인 압축 장치)간에 변경된 내용을 픽셀 단위로 비교하려고했습니다.

지루한 맞춤형 소프트웨어 프로그래밍없이 변경된 내용을 시각적으로 잘 보여주는 방법은 무엇입니까?


2
아마 사진에 대한 가능한 해결책은 아니지만 GitHub의 (프로그래머의 사이트) 이미지를 비교하는 흥미로운 방법을이 같은 응답으로이 제출되지 않음 : github.com/cameronmcefee/Image-Diff-View-Modes/commit/...가 클릭을 시도 "2-up", "Swipe", "양파 스킨"및 "차이".
Henrik N

답변:


35

Photoshop + 레이어 FTW. (예, Gimp 또는 동일한 기능을 가진 다른 편집 소프트웨어를 사용할 수도 있습니다.)

기본 이미지부터 시작하십시오. 위의 경우 jpeg 품질 100 이미지를 사용했습니다.

  1. 그 위에 새 레이어를 만들
  2. 두 번째 이미지를 해당 레이어에 붙여 넣기
  3. 레이어 스타일을 "차이"로 설정하십시오 (아래 첫 번째 이미지의 왼쪽 분홍색 화살표 참조)
  4. (레이어> 새 조정 레이어> 임계 값) 위에 효과 레이어를 만듭니다.
  5. 효과를 임계 값으로 설정합니다 (아래 첫 번째 이미지의 오른쪽 분홍색 화살표 참조)
  6. 임계 값을 1로 설정

결과 이미지에서 두 이미지간에 어떤 방식 으로든 다른 픽셀은 흰색이됩니다. 임계 값을 변경하여 사물이 "약간 다른"상태가되도록 조정할 수 있습니다.

Lightroom과 jpeg 92와 100의 차이가 많은 예를 보여줍니다. LR의 jpeg 92와 100을 Photoshop 레이어와 비교

95와 100 사이에 전혀 차이가없는 예. LR의 jpeg 95와 100을 Photoshop 레이어와 비교

그것은 단지 "변경되거나 변경되지 않은"바이너리를 보여주는 것이 아니라, 컬러 채널에 의해 얼마나 변화했는지에 대해 더 자세히 알고 싶다면 어떻게해야할까요?

  1. 임계 값 조정 레이어를 커브 조정 레이어로 바꿉니다.
  2. 커브를 편집하다
  3. 클리핑 표시 켜기
  4. 오른쪽 하단 모서리 아래에있는 흰색 입력 손잡이를 잡고 왼쪽으로 드래그하십시오.
  5. 클리핑이 보이지 않을 때까지 천천히 오른쪽으로 돌아갑니다 (미리보기 이미지가 모두 검은 색임)
  6. 클리핑을 다시 끄고 커브 변경을 저장

결과 픽셀이 밝을수록 색상이 더 다릅니다. 그러나 단점은 많은 회색 진흙으로 끝나는 것입니다 ... 그래서 때로는 차이점을 파악하기 위해 임계 값을 지정하는 것이 더 쉽습니다. 그래서 둘 다 빌드하고 어느 것이 보이는지 토글합니다.

차이점에 대한보다 설명적인 관점


새로운 질문이지만, 4 단계, "그 위에 효과 레이어를 만드는 방법"을 수행하는 방법은 무엇입니까? 어디서나 찾을 수 없습니다. 또한 7 년이 지난 후에도 이름을 바꾼 최신 버전을 사용하고 있습니까?
whitneyland

14

Photoshop을 사용하는 경우 다음과 같이하십시오.

두 개의 jpeg를 동일한 psd 파일에 두 개의 별도 레이어에 넣습니다. 치수가 동일하기 때문에 정확하게 겹치게됩니다. (위에 올라간 것은 중요하지 않습니다).

레이어 혼합 모드를 "차이"로 설정하십시오. 대부분 검은 색 결과가 나타납니다. 두 원본 레이어 간의 품질 차이에 따라 노이즈가 다소 나타날 수 있습니다.

여기에 이미지 설명을 입력하십시오


차이만으로도 큰 검은 공허가 남아있을 때 실제로 큰 도움이되지 않습니다. :)
cabbey

@cabbey는 100 %에서 95 %를 비교할 때 검은 색으로 표시 될 것입니다. 그러나 그것이 당신의 질문이 아닌 것입니까? 소유자 답변에서 비교중인 원본의 값을 변경하여 더 이상 원래 압축 설정을 갖지 않습니다.
Jin

차이가 너무 작기 때문에 거의 모든 비교에서 거의 검정색으로 표시됩니다. 차이 후 임계 값 / 곡선 레이어는 압축 설정에 아무런 영향을 미치지 않으며, 차이가 준비된 검은 수프의 하한을 시각화하는 데 도움이됩니다. (나는 당신이 의미하는 바를 100 % 확신하지 못하므로 다른 방향으로 향할 수 있습니다 ....)
cabbey

@cabbey 두 이미지 사이의 차이를 비트 단위로 순수하게 조작하려면 "차이"블렌딩 모드만으로도 가능합니다. 임계 값 / 곡선을 조정할 때 결과는 육안으로 더 분명하지만 변경된 내용을 정확하게 나타내는 것은 아닙니다. 그렇게하면 더 이상 100 %와 95 %를 비교하지 않습니다.
Jin

물론입니다. 압축 수준은 디스크에서 내부 버퍼로 이미지를로드 한 두 번째 Photoshop에 영향을 미치지 않습니다. 메모리에 압축되지 않은 픽셀 배열입니다. 이미지에 사각형 얼룩이 있거나 아티팩트로 인해 해당 픽셀이있는 경우 압축 수준의 관련이 없습니다.
cabbey

13

모든 이미지 처리 패키지는 이것을 쉽게 만들어야합니다. 이 시스템에 접근 할 수 있다면 Mathematica에서 어떻게하는지 보여 드리겠습니다. Mathematica는 프로그래밍 언어이지만 이러한 종류의 조작은 정말 쉽습니다. 예를 들어 대학 사이트 라이센스 등을 통해 액세스 할 수있는 경우 사용해보십시오.

먼저 이미지를 가져옵니다.

img = Import["http://farm1.staticflickr.com/62/171463865_36ee36f70e.jpg"]

JPEG 압축을 사용하여 다시 압축

img2 = ImportString@ExportString[img, "JPEG", "CompressionLevel" -> 0.35]

Mathematica 그래픽

이제 픽셀 값의 차이를 가져 와서 음수 값이 유지되도록 먼저 부동 소수점 숫자로 변환하십시오.

diff = ImageSubtract[Image[img, "Real"], Image[img2, "Real"]]

Mathematica 그래픽

차이 이미지에는 그다지 눈에 띄지 않으며 (차이가 작음) 음수 값이 검은 색으로 잘립니다. 전체 동적 범위를 채우도록 모든 값의 크기를 조정합니다 (최소값은 0, 최대 값은 1).

ImageAdjust[diff]

Mathematica 그래픽

ImageDifference두 이미지의 절대 차이를 제공하고 음수를 생성하지 않습니다. 이미지 처리 패키지, 특히 GUI 패키지 (Photoshop, GIMP)에서 찾을 수있는 작업입니다.

ImageDifference[img, img2]

Mathematica 그래픽

또한 단일 RGB 채널 (예 : 빨간색)을 가져 와서 '대향'색상을 사용하여 양과 음의 차이를 시각화 할 수 있습니다.

ArrayPlot[0.5 + ImageData[First@ColorSeparate[diff, "Red"]], 
 ColorFunction -> "RedGreenSplit", ColorFunctionScaling -> False]

Mathematica 그래픽

차이가 5 배로 증폭 된 것과 같은 것이 있습니다. JPEG 아티팩트는 이제 더 잘 인식됩니다.

ArrayPlot[0.5 + 5 ImageData[First@ColorSeparate[diff, "Red"]], 
 ColorFunction -> "RedGreenSplit", ColorFunctionScaling -> False]

Mathematica 그래픽

프로그래밍 언어를 사용하는 이점은이를 쉽게 자동화 할 수 있으며 0.1과 1.0 사이의 "압축 수준"의 차이가 어떻게 변하는 지 확인할 수 있다는 것입니다.

Grid@Partition[Table[
   ArrayPlot[
    0.5 + ImageData[
      First@ColorSeparate[
        ImageSubtract[Image[img, "Real"], 
         Image[ImportString@
           ExportString[img, "JPEG", "CompressionLevel" -> c], 
          "Real"]], "Red"]], ColorFunction -> "RedGreenSplit", 
    ColorFunctionScaling -> False],
   {c, 0.1, 1, 0.1}
   ], 5]

Mathematica 그래픽


항상 스크립트 / 자동 옵션을 보는 것이 좋습니다! :)
jrista

5

Imagemagick 명령 줄 도구를 사용할 수 있습니다.

composite imagesrc1.jpg imagesrc2.jpg -compose difference diffs.jpg

각 RGB 채널에 대한 차이의 절대 값을 제공합니다.



0
  1. 김프 또는 Photoshop에서 이미지 중 하나를 엽니 다.
  2. 첫 번째 이미지 위에 두 번째 이미지를 새 레이어로 추가하십시오.
  3. 상단 레이어의 블렌드 모드를 "차이"로 설정

결과 이미지에서 검정 부분은 원본 이미지가 동일한 위치를 나타내고 밝은 부분은 차이를 나타냅니다.


차이만으로도 큰 검은 공허가 남아있을 때 실제로 큰 도움이되지 않습니다. :)
cabbey

결과 이미지의 레벨을 항상 조정할 수 있습니다. 이 기술을 사용할 때마다 변경 사항을 볼 수있을만큼 그림이 달라졌습니다.
Dan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.