완전히 흰색인 이미지를 찾는 방법은 무엇입니까?

완전히 흰색인 이미지를 찾는 방법은 무엇입니까?

사이트에서 제가 확인한 많은 이미지는 완전히 비어 있습니다. 즉, 500x500이고 모든 픽셀이 흰색입니다. 모든 이미지는 이미지 디렉터리의 하위 디렉터리에 있습니다. 어떤 것이 흰색인지 확인하는 방법은 무엇입니까? 이 이미지들의 이름을 알아낼까 생각 중이에요.

고쳐 쓰다:

  • bash 스크립트나 명령을 사용하고 싶습니다.
  • Imagemagick이 설치되었습니다.
  • 서버는 우분투 14.04 입니다
  • 모든 이미지에는 .jpg 확장자가 있습니다.

답변1

ImageMagick 패키지가 있거나 설치할 수 있는 경우 identify파일의 색상 히스토그램을 인쇄하는 유틸리티가 있습니다. 아래 awk 프로그램은 identify -verbose출력을 스캔하여 히스토그램에 나열된 색상과 색상 수를 가져옵니다. 하나의 색상만 나열되고 히스토그램의 유일한 색상이 흰색인 경우 "성공"을 반환하고 그렇지 않으면 "실패"를 반환합니다.

그런 다음 awk 주위에 쉘 스크립트를 래핑하고 식별하여 일치하는 파일에 플래그를 지정할 수 있습니다.

for f in images/*
do
  identify -verbose "$f" | awk -f iswhite.awk && echo "$f is an all-white image"
done

iswhite.awk:

/Histogram:/ {
  inhisto=1
}
inhisto && /[[:digit:]]+: \([ [:digit:]]{3},[ [:digit:]]{3},[ [:digit:]]{3}\) #/ {
  if ($0 !~ /#FFFFFF white/) { nonwhite=1 }
}
/Rendering intent/ {
  inhisto=0
}
/Colors: / {
  ncolors=$2
}
END {
  if (ncolors == 1 && nonwhite == 0) { exit 0 } else { exit 1 }
}

답변2

사용이미지 스푸핑 찾기:

# Look for and compare images that are 90% similar 
# in all subdirectories of the current directory.
findimagedupes -R -- .

-t옵션은 이미지의 유사성을 제어합니다.

# Same as before but for images that are 99% similar.
findimagedupes -t 99 -R -- .

디렉터리에 다음 파일이 있다고 가정합니다.

white.png foo.png. bar.png. baz.jpg green.png

...어디흰색.png모두가 알고 있듯이 그는 백인이다.녹색.png것으로 간주된다녹색, 다른 하나는 불확실합니다. findimagedupes유사한 파일은 모두 같은 줄(공백으로 구분)에 출력되므로 흰색 파일만 표시됩니다 .

findimagedupes -t 100 -R -- . | grep -w white.png

출력 (가정바.png흰색입니다):

white.png bar.png

또한보십시오:두 이미지가 그래픽적으로 동일한지 확인하는 명령줄 도구, 더 일반적으로:Linux용 스마트 중복 파일 찾기.

관련 정보