Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import math
- import collections
- obraz = plt.imread("kierowca.jpg")
- obraz = obraz[:,:,2]
- #uniqe_elements lista z unikalnymi pikselami
- #counts elements lista zliczajaca ilosc wystepowania pixelow
- unique_elements, counts_elements = np.unique(obraz, return_counts=True)
- #iloscP - ilosc przedzialow na jak ma byc podzielony nasz histogram
- iloscP = 20
- #zakres - (zaokrąglony w gore)iloraz maksymanlej wartosci piksela i ilosc Przedialow
- zakres = math.ceil(255/iloscP)
- #lista z zerami, ktora bedzie zbierac ilosc wystepowan pixelow z przedzialow
- Y = np.zeros(iloscP)
- #lista od z wielokrtosciami wielkosc przedzialu 1 20 40 60 ...
- X = [x * zakres for x in range(1,iloscP + 1)]
- # for z x ktory iteruje po kazdej przedziale zakresu
- for x in range(0,zakres):
- #for ktory iteruje rowolegle po 2 listach
- for y ,z in zip( unique_elements,counts_elements):
- #np. pixel = 18, x == 0, 20 > 18
- if x == 0 and (X[x+1] > y):
- #do listy Y zapiujemy ilosc powtorzen pixel 18
- Y[x] = Y[x] + z
- #np pixel = 25 , 40 > 25 , 25 <= 20
- elif (X[x+1] > y) and (X[x] <= y):
- #do listy Y zapiujemy ilosc powtorzen pixel 25
- Y[x] = Y[x] + z
- print(Y)
- plt.bar(X,Y,width = zakres,edgecolor='red',align = "edge")
- plt.xticks(X,fontsize = 8)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement