Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from scipy import misc as mc
  4.  
  5.  
  6. def funkcja_Coccurrance(img, n, kierunek):
  7.    
  8.     copy = img
  9.     l=np.linspace(0,255,n+1)
  10.    
  11.     for i in range(0,n):
  12.         copy[(img>=l[i]) & (img<l[i+1])] = i;
  13.     Concc = np.zeros((n,n))
  14.  
  15.  
  16.  
  17.     if kierunek == 0: #prawo
  18.         Tab1 = copy[:, 0:n - 1]
  19.         Tab2 = copy[:, 1:n]
  20.     elif kierunek == 1: #dol
  21.         Tab1 = copy[0:n - 1, :]
  22.         Tab2 = copy[1:n, :]
  23.     elif kierunek == 2: #lewo
  24.         Tab1 = copy[:, 1:n]
  25.         Tab2 = copy[:, 0:n - 1]
  26.     elif kierunek == 3: #gora
  27.         Tab1 = copy[1:n, :]
  28.         Tab2 = copy[0:n - 1, :]
  29.    
  30.  
  31.     for i in range (1,n):
  32.         for j in range(1,n):
  33.             Concc[i, j] = np.sum(np.sum((Tab1 == i) & (Tab2 == j)))
  34.  
  35.  
  36.     return Concc
  37.    
  38. #
  39.  
  40. def fO(c):
  41.    
  42.    
  43.     przek = np.sum(np.diag(c)) #suma przekatnej z funkcja_Coccurrance
  44.     suma = np.sum(np.sum(c)) #suma macierzy -> sa tez wartosci poza przekatna "poswiata"
  45.     suma = suma - przek #zsumowanie tylko wartosci z wylaczeniem przekatnej
  46.  
  47.     #wieksza suma poza przekatna = wieksza ostrosc?
  48.    
  49.     return suma
  50. #
  51.  
  52. obraz1 = mc.imread('pic1.png')
  53. img1 = obraz1[:, :, 1]
  54. obraz2 = mc.imread('pic2.png') #bardziej "ostry"
  55. img2 = obraz2[:,:,1]
  56. c = funkcja_Coccurrance(img1, 15, 1) #0prawo, 1dol, 2lewo, 3gora
  57. c2 = funkcja_Coccurrance(img2, 15, 1)
  58. #print c
  59. c = c/np.sum(c)
  60. c = c*255 #wyswietlenie wynikow z polecenia
  61. #print c2
  62. c2 = c2/np.sum(c2)
  63. c2 = c2*255
  64.  
  65. ostrosc = fO(c)
  66. ostrosc2 = fO(c2)
  67. print ostrosc
  68. print ostrosc2
  69. plt.subplot(1,2,1)
  70. plt.imshow(c, cmap=plt.cm.gray, vmin=0, vmax=np.max(c))
  71.  
  72. plt.subplot(1,2,2)
  73. plt.imshow(c2, cmap=plt.cm.gray, vmin=0, vmax=np.max(c2))
  74. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement