Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Na svaku od komponenti boja slike peppers_color.bmp u RGB sistemu dodati AWGN varijanse 400.
- Šum ukloniti aritmetičkim usrednjivačem veličine 3 x 3 sa svake od RGB komponenti.
- Isti filtar upotrebiti pojedinačno na svaku od HSV komponenti i prikazati rezultat.
- '''
- import plotly.express as px
- from skimage import io
- img = io.imread('peppers_color.png')
- fig = px.imshow(img)
- fig.show()
- import numpy as np
- rng = np.random.default_rng()
- img_noisy = img + rng.standard_normal(size=img.shape)*np.sqrt(400) + 0
- img_noisy[img_noisy > 255] = 255
- img_noisy[img_noisy < 0] = 0
- fig = px.imshow(img_noisy)
- fig.show()
- from scipy import ndimage
- # 3x3 aritmeticki usrednjivac
- kernel = np.ones((3,3))/9
- img_f = img_noisy.copy()
- img_f[:,:,0] = ndimage.convolve(img_f[:,:,0], kernel, mode = 'reflect')
- img_f[:,:,1] = ndimage.convolve(img_f[:,:,1], kernel, mode = 'reflect')
- img_f[:,:,2] = ndimage.convolve(img_f[:,:,2], kernel, mode = 'reflect')
- fig = px.imshow(img_f)
- fig.show()
- psnr = 10*np.log10(255**2/((img - img_noisy)**2).mean())
- print("PSNR pre filtriranja je {}".format(psnr))
- psnr = 10*np.log10(255**2/((img - img_f)**2).mean())
- print("PSNR za box filtar dimenzije {} je {}".format(kernel.shape, psnr))
- '''
- Isti filtar upotrebiti pojedinačno na svaku od HSV komponenti i prikazati rezultat.
- '''
- from skimage import color
- img_hsv = color.rgb2hsv(img_noisy)
- '''
- Filtriranje H komponente u HSV sistemu dovodi do promene boja na slici što je nepoželjan efekat.
- '''
- img_f1 = img_hsv.copy()
- img_f1[:,:,0] = ndimage.convolve(img_f1[:,:,0], kernel, mode = 'reflect')
- img_f1 = color.hsv2rgb(img_f1)
- fig = px.imshow(img_f1)
- fig.show()
- '''
- Filtriranje S komponente dovodi samo do promene zasićenja bez uticaja na šum.
- '''
- img_f2 = img_hsv.copy()
- img_f2[:,:,1] = ndimage.convolve(img_f2[:,:,1], kernel, mode = 'reflect')
- img_f2 = color.hsv2rgb(img_f2)
- fig = px.imshow(img_f2)
- fig.show()
- '''
- Filtriranje V komponente dovodi do promene osvetljaja na slici, takođe bez značajnog uklanjanja šuma.
- '''
- img_f3 = img_hsv.copy()
- img_f3[:,:,2] = ndimage.convolve(img_f3[:,:,2], kernel, mode = 'reflect')
- img_f3 = color.hsv2rgb(img_f3)
- fig = px.imshow(img_f3)
- fig.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement