The portable pixmap format PPM
PPM RAWBITS is three bytes per pixel
Nigdy nie zajmowałem się plikami ppm, ale myślę, że
1.
powinieneś zacząć od rozczytania formatu zapisu takiego pliku.
np.
https://pl.wikipedia.org/wiki/Portable_anymap#Opis_formatuzastanawiło mnie :
* Linie nie powinny być dłuższe niż 70 znaków
jak więc są zapisywane dłuższe linie ?
to może rozstrzygnąć czy wczytywanie pliku do tablicy np.
int zdjecie1[ 500 ][ 500 ][ 3 ];
jak leci kolejnych znaków jest poprawne (do sprawdzenia)
http://netpbm.sourceforge.net/doc/ppm.htmlposzukaj powinny być dokładne opisy pozwalające na zrozumienie formatu PPM
https://github.com/pbsds/hatena-server/wiki/PPM-formatzbadaj budowę takiego pliku na przykładzie
2.
jeśli założymy że mamy już obraz zapisany w int tab[ i ][ j ][ k ]
*
"fragment jest w drugim" - szukasz jednakowego ciągu w linii szerokości, ale potem sprawdzasz zgodność w wysokości i głębokości (aż znajdziesz identyczny prostopadłościan)
*
int zdjecie1[ 500 ][ 500 ][ 3 ];
int zdjecie2[ 500 ][ 500 ][ 3 ]; ( dziwne bo jeden obraz powinien być mniejszy)
oczywiście możemy sprawdzić czy wszystkie bity obu obrazów są jednakowe
ale nie o to chodzi w zadaniu "fragment jest w drugim"
*
operacja if( zdjecie1[ 500 ][ 500 ][ 3 ] == zdjecie2[ 500 ][ 500 ][ 3 ] )
nie jest operacją która się powiedzie
chyba chodziło Ci o zdjecie1[ i1 ][ j1 ][ k ] == zdjecie1[ i2 ][ j2 ][ k ]
podsumowując
- ustal jak wygląda format PPM i jak go poprawnie wczytać
- popraw zaprezentowany algorytm (logika postępowania)
- dodaj do niego komentarz - choćby dla siebie
- trzymaj się tych komentarzy
* robię to
* sprawdzam czy faktycznie
sprawdzenie - cały program nie działa (to co zaprezentowałeś) jest niepoważne
Powodzenia :)