2013-02-11 3 views
1

저는 이미지 검색 엔진을 작성 중이므로 사용자가 색상별로 검색 할 수 있습니다. 이 작업의 일부로 이미지가 회색 음영인지 (검정색, 흰색 또는 회색 음영인지) 또는 색상이 포함되어 있는지 확인해야합니다.PHP 이미지에 색상이 포함되어 있는지 감지하는 방법은 무엇입니까?

이미지에 검정색, 흰색 및 회색 음영이 아닌 픽셀이 포함되어 있는지 어떻게 알 수 있습니까?

+0

[다른 SO 질문의 해결책] (http://stackoverflow.com/questions/1746530/get-image-color) –

답변

3

imagecolorat()을 사용하여 모든 픽셀을 처리해야합니다 (예 # 2 참조).

그레이 스케일 색상은 빨간색, 녹색 및 파란색에 대해 동일한 값을 갖습니다. 값이 다른 픽셀을 발견하면 색상이 포함 된 이미지 (적어도 기술적으로는 RGB(100,102,103)과 같은 색으로 사람의 눈에는 회색으로 보입니다).

+0

그래서 모든 픽셀을 반복하고 그 함수로 각각 체크 하시겠습니까? – Ash

+0

@Ash - yup. ---- –

+2

Pekka의 방법을 사용하여 하나의 컬러 픽셀을 발견하자마자 멈출 수 있다고 생각합니다. 그것은 첫 번째 픽셀이 될 수 있으므로 프로세스 속도를 높여줍니다! 또는 이미지의 크기를 조정하거나 확인할 영역을 선택할 수도 있습니다. – Bonzo

1

서버에 설치된 래스터 이미지 모음에 따라 Pekka가 제공하는 것보다 더 간단하고 정확한 대답을 위해 이러한 도구를 사용할 수 있습니다. 이것이 더 빠르다는 것은 공개 논쟁입니다 (아래 참고를보십시오).

분석

는 HSL로 이미지를 변환 한 후 출력 자세한 정보 는 ("확인"통계)에 ImageMagick이 샘플 (링크)에서

아래, 추천입니다 자세한 정보는 질문에 대한 답을 제공합니다. 따라서 정확하고 단순하며 "가까운"회색 이미지를 추측 할 필요가 없습니다. 또한 워크 플로우 및 요구 사항에 따라 사용할 수있는 다른 데이터도 제공합니다.

자료 : http://www.imagemagick.org/discourse-server/viewtopic.php?t=19580

가 I로 인해 화상을 변환 할 픽셀을 통해 실질적으로 루프 여하튼,이 페카의 솔루션보다 더 빠른 있는지 의심한다.

그래서 Pekka의 속도에 대한 답변. 정밀도에 대한이 대답.

관련 문제