Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako generujete šum obrazu?

Generovanie šumu obrazu závisí od typu hluku, ktorý chcete simulovať, a od úrovne realizmu, ktorý potrebujete. Tu je niekoľko bežných metód:

1. Generovanie náhodných čísel: Toto je najzákladnejší prístup. Generujete náhodné čísla v zadanom rozsahu a potom tieto čísla zmapujete na hodnoty pixelov.

* Rovnomerný hluk: Toto je najjednoduchší typ. Generujete náhodné čísla rovnomerne rozdelené medzi minimálnu a maximálnu hodnotu (napr. 0 a 255 pre 8-bitové obrázky šedej). To má za následok škvrnitý vzhľad. Knižnice ako Numpy v Pythone to uľahčujú:

`` `Python

import numpy ako np

import matplolib.pyplot ako plt

Šírka, výška =256, 256

hluk =np.random.Randint (0, 256, veľkosť =(výška, šírka), dtype =np.uint8)

plt.imshow (hluk, cmap ='šedá')

plt.show ()

`` `

* Gaussov hluk (normálny hluk): Je to realistickejšie, pretože simuluje typ šumu, ktorý sa často vyskytuje v obrazových senzoroch. Je založená na gaussovskom (normálnom) distribúcii. Priemer určuje priemerný jas a štandardná odchýlka riadi intenzitu hluku. Numpy poskytuje `np.random.normal`:

`` `Python

import numpy ako np

import matplolib.pyplot ako plt

Šírka, výška =256, 256

priemer =0

STDDEV =30 # Upravte hladinu hluku

hluk =np.random.Normal (priemer, stddev, size =(výška, šírka)). astype (np.uint8)

hluk =np.clip (hluk, 0, 255) #ensure Hodnoty sú v rozmedzí 0-255.

plt.imshow (hluk, cmap ='šedá')

plt.show ()

`` `

* soľ-a-pepper hluk: Tento typ predstavuje náhodné čierne a biele pixely. Môžete to dosiahnuť náhodným výberom pixelov a nastavením ich hodnôt na 0 (čierne) alebo 255 (biele).

`` `Python

import numpy ako np

import matplolib.pyplot ako plt

Šírka, výška =256, 256

SALT_PEPPER_RATIO =0,1 # percento postihnutých pixelov

hluk =np.random.Choice ([0, 255], size =(výška, šírka), p =[1-salt_pepper_ratio, salt_pepper_ratio])

plt.imshow (hluk, cmap ='šedá')

plt.show ()

`` `

2. Pomocou knižníc spracovania obrázkov: Knižnice ako OpenCV (CV2 v Pythone) a Scikit-Image poskytujú funkcie, ktoré môžu obrázky pridať priamo k obrázkom, často ponúkajú väčšiu kontrolu a efektívnosť.

3. Perlin hluk (pre procedurálne textúry): Toto je typ gradientového hluku, ktorý sa často používa na vytváranie prirodzenejších textúr a menej granulovaného hluku. Implementácia od nuly je zložitejšie, ale knižnice to dokážu ľahko zvládnuť.

4. Simulácia špecifických zdrojov hluku: Pre veľmi realistické simulácie možno budete musieť modelovať špecifické zdroje hluku, ako je tepelný hluk, šum strely alebo kvantizačný šum. To si často vyžaduje pochopenie fyzických procesov za tvorbou hluku.

Pridanie šumu do existujúceho obrázka:

Po vygenerovaní šumu ho pridáte do svojho pôvodného obrázka podľa prvkov alebo iných operácií. Nezabudnite upraviť mierku svojho šumu, aby ste predišli orezaniu (hodnoty presahujúce platný rozsah, napríklad 0-255 pre 8-bitové obrázky).

Výber metódy závisí od vašej konkrétnej aplikácie. Pre jednoduché simulácie postačuje generovanie náhodných čísel. V prípade pokročilejších scenárov alebo realistického šumu sa odporúča použitie knižníc spracovania obrazu alebo sofistikovanejších techník vytvárania hluku. Po pridaní šumu nezabudnite spracovať potenciálne hodnoty pixelov mimo rozsahu.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené