Zadanie z bitmapami

Zadanie z bitmapami
V2
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

Mam takie zadanie: Na rysunku przedstawiono statek pod wodą. Napisz program który realizuje operację progowania obrazu ze zeminnym progiem p z przedzialu <0,1> wartość p podaje użytkownik oraz zapisuje obraz wynikowy na dysku w formacie 24-bitowej bitmapy(taki sam format ma plik wejściowy). Operacja progowania polega na przypisuaniu wartości 0 tym pikselom które mają wartość mniejszą od zadanego progu:

            {obraz(x,y) dla obraz(x,y) >= p*255

obraz(x,y)={
{0, dla obraz(x,y) <p*255

W przypadku obrazów kolorowych(ja mam kolorowy) operację progowania realizuje się niezależnie dla każdej składowej RGB.
I problem ma że nie wiem od czego wgl zacząć, wszystko ma być w c++. Liczę na jakieś jasne podpowiedzi a nie tylko odsyłanie na inne strony.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Nie rozumiem czego oczekujesz, streszczenia kursu C++ oraz biblioteki graficznej w pigułce na pół strony czy gotowca?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Zobacz pozostały 1 komentarz
_13th_Dragon
A loader pliku BMP to jest biblioteka finansowa jak mniemam?
Azarien
Nieprawidłowy parser BMP można zrobić w kilkunastu linijkach. Trudno to nazwać już „biblioteką” ;-)
_13th_Dragon
Których autor tematu nie będzie w stanie napisać w najbliższe parę lat, zaś uwzględniając podejście - nigdy. Zaś prawidłowy loader to już można nazwać biblioteką, tym bardziej że potrzebny jest również saver.
Azarien
windows ma wbudowaną bibliotekę windowscodecs.dll która obsługuje BMP, PNG, JPG i inne. nie trzeba nic instalować, tylko wygóglać jak tego użyć.
_13th_Dragon
Zacytuję ciebie: - "... ma wbudowaną bibliotekę ... " ;P
V2
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

Bardziej by mi chodziło o napisaniu krok po kroku tak ogólnie wyglądu programu, czyli czy można wykorzystać takie gotowe jak widziałem już, jak w ogóle zrobić te informacje zrobić że ten próg mi obliczy, że wie kiedy 0 a kiedy pozostawić bez zmian.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Odpowiedzi na te pytania znajdziesz w każdym kursie na pierwszych kilku stronach.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
V2
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

Dobra coś ruszyłem do przodu ale jeszcze mam pytanie. Czy jak mam wykonać progowanie obrazu to każdy ten piksel ma już jakąś wartość daną ten próg? Właśnie nie wiem jak to zrobić by porównywało próg piksela z moim progiem

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
1

Pikseli nie mają progów, piksele mają intensywność koloru.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
KR
0/255 to nie są progi?
_13th_Dragon
Nie, to jest intensywność.
V2
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

No to prosiłbym o pomoc jak to właśnie zrobić te progowanie bo kompletnie nie mam pomysłu

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

tak jak masz w zadaniu: obraz(x,y) >= p*255


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
V2
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

Można trochę jaśniej tak naprawdę prosto wytłumaczyć bo nie rozumiem

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
1

I nie zrozumiesz dopóki nie przeczytasz jakichś podstaw, tego nie rozumiesz:

Kopiuj
if(pixels[y][x]<p*255) pixels[y][x]=0;

daj sobie spokój z programowaniem.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Może stwórz odpowiednią strukturę i wczytaj całość za jednym zamachem.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0
Virtual25 napisał(a):

W przypadku obrazów kolorowych(ja mam kolorowy) operację progowania realizuje się niezależnie dla każdej składowej RGB.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
V2
Nie rozumiem teraz. Złe funkcje te są czy co?
_13th_Dragon
składowe RGB: niebieski,zielony,czerwony
V2
no wiem jakie są składowe rgb. Czemu nie możesz odpowiedzieć jak pytam czy złe funkcje czy coś innego albo pytam o zapis plików to mnie cytujesz, gdybym wiedział jak zrobić i bym rozumiał to wszystko to bym nie pisał tutaj
_13th_Dragon
Zacznij od podstaw lub zamów gotowca za kasę, zrozum - dopóki nie znasz podstaw rozmawiamy w rożnych językach.
V2
Gdybym chciał gotowca to bym Od razu odpuścił, ale walczę z tym programem, z tego co przeczytałem o bitmapach co wszędzie piszę to tylko jest o gotowych strukturach i później i palecie kolorów i to wszystko, pełno jest WinApi, opengl i innych ja nie mogę tego wykorzystać, brakuje mi chyba tylko w programie zapisu danych obrazu nowych i później tej struktury do nowego bmp chyba
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:dzień
0
  1. ładujesz plik dowolnym sposobem,
  2. przetwarzasz bitmapę według podanego wzoru,
  3. zapisujesz przetworzoną bitmapę do pliku.

to z czym masz problem?

gotowiec 75 zł.

edytowany 1x, ostatnio: Azarien
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)