2014-10-07 4 views
0

저는 C# 프로그램을 작성 중이며 C#에서는 멍청한데, 프로그래밍에서는 괜찮습니다. C 및 C++을 알고 있습니다. 내 프로그램은 기본적으로 이미지를 스캔하고 해당 이미지의 원을 찾고 해당 센터의 좌표에 따라 이미지를 구별합니다. 이제 원색의 밝기를 찾도록하고 싶습니다. 나는 중심 픽셀의 밝기를 확인하는 것만으로도 충분하다고 생각했다. 그러나 나는 지금까지 그것을 할 수 없었다. GetBrightness() 색 구조체를 사용하여 시도하고 색조를 얻을하지만 어떤 픽셀을 내가 원하는 작동하도록 지정할 수 없습니다. 나는 나 자신을 분명히하고 더 자세한 내용을 묻기를 바란다. 나는 C#에서 멍청한 놈임을 다시 언급 할 것이다, 내가 아는 모든 C이며, 수식에 RGB 값에서 밝기를 계산하는 C++픽셀 또는 주변의 밝기를 감지합니다.

답변

0

이 대답을 살펴보십시오 : Formula to determine brightness of RGB color

C#에서이 보일 것이다 뭔가 같은 :

public double GetBrightness(Color color) 
{ 
    return (0.2126*color.R + 0.7152*color.G + 0.0722*color.B); 
} 

당신은 당신이 할 수있는, 원 같은 모든 색상의 밝기를 계산하기 위해 원하는 경우에이 방법을 사용하려면

public double GetAverageBrightness(IEnumerable<Color> colors) 
{ 
    int count = 0; 
    double sumBrightness = 0; 

    foreach (var color in colors) 
    { 
     count++; 
     sumBrightness += GetBrightness(color); 
    } 

    return sumBrightness/count;   
} 
+0

방법을 내가 지정한 픽셀? 픽셀의 좌표가 50,100이라고 가정 해 보겠습니다. – user3609643

+0

픽셀을 보유하는 데 사용하는 클래스는 무엇입니까? Bitmap 클래스를 사용하는 경우 [GetPixel] (http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel (v = vs.110) .aspx) – jt000

+0

배열에 X 좌표가 있고 다른 배열에 Y 좌표가 있으므로 쉽게 이동할 수 있습니다. 그들은 수업에 저장되지 않습니다. 내가 뭘해야하는지 말해줘. 철저한 세부 사항은 필요 없어. 내가 볼 수있어. – user3609643