[C++] Operacja splotu bitmapy
Ostatnio zmodyfikowano 2015-01-09 15:05
Kahero Temat założony przez niniejszego użytkownika |
[C++] Operacja splotu bitmapy » 2015-01-09 13:05:56 Hey ! Nie wiedziałem do jakiego działu przypisać ten temat więc wrzucam tutaj :) Mam problem z wykonaniem zadania na zajęcia z programowania. Jestem świeżym studentem i ale w związku z moją małą wiedzą na ten temat jest ciężko. Mam wykonać operacje splotu na 24-bitowej bitmapie i zapisać obraz wynikowy na dysku. Mam wykorzystać maskę o wartościach: 0 -1 0 -1 5 -1 0 -1 0 Wczytuje plik: unsigned char * odczytajDaneObrazu( ifstream &, unsigned int rozmiar, int kursor ) { ifs.seekg( kursor, ios::beg ); unsigned char * obraz = new unsigned char( rozmiar ); ifs.read( reinterpret_cast < char *>( obraz ), rozmiar ); return obraz; } Wiem, że po wczytaniu pliku muszę go podzielić na kolory. Obliczam liczbę zer biorąc pod uwagę rozmiar danych pliku wejściowego: rozmiar A = BfSize - BfoffBits Obliczam rozmiar w pikselach: rozmiar B (bez zer)= biWidth - biHeight Wyliczam ilość zer - (rozmiar A - rozmiar B)/biHeight co jest mniej więcej tutaj: void odczytajRGB( unsgidned char * obraz, int ** niebieski, int ** zielony, int ** czerwony, unsigned int rozmiar, int szerokosc, int wysokosc ) { int zerowe_bajty = rozmiar / wysokosc - 3 * szerokosc; int k = 0; for( int i = 0; i < wysokosc; i++ ) ( for( int j = 0; j < szerokosc; j++ ) { niebieski[ i ][ j ] = obraz[ k++ ]; zielony[ i ][ j ] = obraz[ k++ ]; czerwony[ i ][ j ] = obraz[ k++ ]; } k += zerowe_bajty; } w tym miejscu moja wiedza się urywa. Operacja splotu jest dla mnie na razie zagadką i mam nadzieje że ktoś mi wyjaśni i pomoże to wszystko skleić w jednolity program. Pozdrawiam ! |
|
darko202 |
» 2015-01-09 13:37:40 |
|
pekfos |
» 2015-01-09 15:05:00 Twój wymyślony zapis do oznaczania wklejonego kodu źródłowego jest do niczego niepodobny. Teraz poprawione, ale zapoznaj się lepiej z zasadami zakładania tematów. |
|
|
« 1 » |