Co zrobic, zeby ta petla zagniezdzona(wewnetrzna) najpierw sprawdzala wszystkie liczby w kolumnach?
Mam nadzieję, że dobrze rozumiem Twoje zadanie, jeśli tak to zacząłbym od warunku pikseli z tej samej jasności.
Kod poniżej jest przykładowy, pisałem go na szybko jako zarys całego rozwiązania:
Kopiuj
for(int i=0; i<200; i++)
{
int lastPixelBrightness = MeasureBrightness( pixelMatrix[i][0] );
for(int j=0; j<320; j++)
{
if( lastPixelBrightness == MeasureBrightness( pixelMatrix[i][j] ) )
samePixelLineLength++;
else
samePixelLineLength = 0;
lastPixelBrightness = MeasureBrightness( pixelMatrix[i][j] );
}
}
Krótko mówiąc: Zaczynasz od pierwszego elementu w danej kolumnie i pobierasz jasność pierwszego piksela metodą MeasureBrightness dalej lecisz w dół macierzy porównując i inkrementując długość linii jednakowych pikseli, czyli zmiennej samePixelLineLength.
Podaj długość najdłuższej linii pionowej (czyli ciągu kolejnych pikseli w tej samej kolumnie obrazka), złożonej z pikseli tej samej jasności.
Moge dostac jakas wskazowke?
Na koniec pomiaru linii jednakowych pikseli dla każdej kolumny zachowujesz tą długość (na przykład w tablicy wszystkich długości, może być vector).
Gdy zmierzysz najdłuższe takie linie w całej macierzy sprawdzasz, która długość jest maksymalna spośród zapamiętanych i jej indeks w tablicy, lub w vectorze jest jednocześnie numerem kolumny Twojej macierzy z pliku.
To tyle. Spróbuj zaimplementować co trzeba i wróć gdy będziesz miał jeszcze jakieś problemy/pytania.
edit: Poprawiłem przykładowy kawałek kodu - zapamiętywanie ostatniej jasności.