Przetwarzanie obrazu w MathCad


(Mnich Dom1) #1

Witam. Mam mały problemik z przetwarzaniem obrazu w programie mathcad. Mam takie oto zdjęcie: 01lp9.jpg

  1. Ładuję Powyższą fotkę funkcją : A2:=READ_IMAGE("camera.bmp")

  2. Za pomocą parametru "a" w tym wyrażeniu zwiększam wartość pikseli:

a:=100

B1:=A2+a

  1. I w przypadku ustawienia parametru "a" na wartość 100 otrzymuję taki obrazek:

02bv7.jpg

  1. Ustawiając parametr "a" na wartość -150 otrzymuję identyczny obrazek (dlaczego?):

04zl4.jpg

  1. Ustawiając parametr "a" na 70 otrzymuję:

06gw3.jpg

  1. A ustawiając parametr "a" na -70 mam:

08hb6.jpg

Chciałbym się dowiedzieć jaki wpływ ma parametr "a" na obrazek pierwotny? Czy mógłby ktoś polecić jakąś literaturę odnoście przetwarzania obrazu w MathCad?


(Kmrb) #2

Po pierwsze istnieje kilka sposobów zapisu plików BMP.

Tutaj na pewno został użyty plik BMP w 256 bitowej skali szarości,(gdzie 1 piksel = 1 Bajt)

dlatego na tym rysunku będzie jeszcze najłatwiej wytłumaczyć działanie MathCad-a.

Cały ten rysunek jest traktowany jako zbiór liczb o wartościach od 0..255

i nie może przyjmować wartości większej, przy czym 0 odpowiada pikselowi

najciemniejszemu a 255 najjaśniejszemu.

Działanie "B1:=A2+a" sumuje daną wartość rysunku z "a" ale jeśli przekroczy 255 to zostaje tylko reszta.

Możesz sprawdzić to podstawiając za "a" wartość 256 - nie zmieni rysunku.

Działania te nie zwiększają ilości pikseli obrazka, nie zmienia się jego wielkość.

Całkowicie inaczej będzie wyglądać to działanie dla plików BMP 24 bitowych (RGB) gdzie jeden piksel

zapisany jest w 3 Bajtach to znaczy 255,255,255 odpowiada bieli 0,0,0 czerni a np. 10.176.200

będzie odpowiadać nasyceniu kolorów: 10 ®-czerwony; 176 (G)-zielony; 200 (B)-niebieski czyli RGB