사이트에서 제가 확인한 많은 이미지는 완전히 비어 있습니다. 즉, 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용 스마트 중복 파일 찾기.