2009-05-31 4 views
1

썸네일 엔진의 경우 이미지에서 x 무작위 축소판 (자르기, 크기 조정 없음)을 사용하여 대비를 분석하고 가장 높은 대비를 가진 알고리즘을 선택하는 알고리즘을 개발하고 싶습니다. 저는 PHP와 Imagick으로 작업하고 있지만 이미지의 대비를 계산하는 방법에 대한 일반적인 팁을 얻게되어 기쁩니다.PHP에서 대비가 더 높은 이미지를 선택하려면 어떻게해야합니까?

많은 것들이 대비를 계산하는 것보다 쉽습니다 (예 : 색상 계산, 광도 계산 등).

그림 자료 분석에 대한 귀하의 경험은 어떻습니까?

답변

2

내가 그런 식으로 (의사) 할 것 : 당신이 이미지의 대비를 정의하는 방법 이미지를 찾고에서

L[256] = {0,0,0...} 

loop over each pixel: 
    luminance = avg(R,G,B) 
    increment L[luminance] by 1 

for i = 0 to 255: 
    if L[i] < C: L[i] = 0  // C = threshold of your chose 

find index of first and last non-zero value of L[] 
contrast = last - first 
+0

정확하게 생각하면 가장 어두운 픽셀과 가장 밝은 픽셀의 차이가 있습니다. 대부분의 경우별로 대표자가 아닙니다. – markus

+0

http://en.wikipedia.org/wiki/Contrast_ (vision) – mateusza

+0

위키 문서에서 이해할 수있는 표준 편차가 될 수 있습니다. 링크 덕분에 의사 코드를 조정하여 표준 편차 또는 다른 분산 메트릭을 계산할 수 있습니다. – markus

1

을 "가장 높은 콘트라스트,"당신은 매우 조심해야합니다. 가장 간단한 방법으로, 대비는 이미지의 가장 낮은 강도와 ​​가장 높은 강도의 차이입니다. 그것은 당신의 경우에 매우 유용하지 않을 것입니다.

히스토그램 접근법을 사용하여 주어진 이미지의 대비를 묘사 한 다음 히스토그램의 속성을 비교하여 정의 할 때 가장 높은 명암비의 이미지를 결정하는 것이 좋습니다. 다양한 잘 알려진 컨테이너를 사용하여 코드에서 막대 그래프를 나타내거나 특정 요구를 충족하는 클래스를 구성 할 수 있습니다. (차트의 형태로 히스토그램을 만들 필요가 있음을 의미하는 것은 아니며, 강도 값의 통계적 표현 만 사용합니다.) 각 히스토그램의 분산을 직접 대비의 척도로 사용할 수도 있고, 표준 편차를 사용할 수도 있습니다. if 작업하기가 더 쉽습니다.

키의 의미는 이미지의 대비를 정의하는 데 있습니다. 일반적으로 가능한 모든 값 또는 거의 모든 값에 대한 값을 가진 고 대비 이미지를 정의합니다. 또한 고 대비 이미지의이 정의에서 이미지의 밝기 값은 가능한 값의 범위에 걸쳐 균일 한 방식으로 분포하는 경향이 있다고 덧붙입니다.

이 방법을 사용하면 낮은 콘트라스트 이미지는 상대적으로 적은 개별 강도 값을 갖는 경향이 있으며 균일하게 분포되지 않고 밀접하게 그룹화되는 경향이 있습니다. (일반적으로 범위의 중심으로 그룹화되는 경향이 있습니다.)

관련 문제