Guest User

Untitled

a guest
Jun 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. %matplotlib inline
  2.  
  3.  
  4. img = Image.open("5.jpg", 'r')
  5. img = img.convert('L') # преобразование в изображение в оттенках серого
  6.  
  7. # imshow(np.asarray(img))
  8.  
  9. im_array = np.asarray(img)
  10. # img.save("5_resize.jpg")
  11.  
  12. pix = img.load() # выгрузка значений пикселов
  13. height, width = im_array.shape
  14.  
  15. result_arr = np.empty((500, 500)) # создание нового массива
  16.  
  17. for x in range(height-1):
  18. for y in range(width-1):
  19. result_arr[2*x, 2*y] = pix[x,y]
  20. result_arr[2*x, 2*y+1] = pix[x,y] * ((2*y+2)-(2*y+1))/((2*y+2)-2*y)
  21. +
  22. pix[x+1, y+1] * ((2*y+1)-2*y)/((2*y+2)-2*y)
  23. result_arr[2*x+1, 2*y] = pix[x,y] * ((2*x+2)-(2*x+1))/((2*x+2)-2*x)
  24. +
  25. pix[x+1, y+1] * ((2*x+1)-2*x)/((2*x+2)-2*x)
  26.  
  27. for y in range(width-1):
  28. result_arr[2*x+1, 2*y+1] = result_arr[2*x+1, 2*y] * ((2*y+2)-
  29. (2*y+1))/((2*y+2)-2*y) +
  30. result_arr[2*x+1, 2*y+2] * ((2*y+1)-2*y)/((2*y+2)-2*y)
  31. # result_arr[(2*x)+1, (2*y)+0] = (pix[x+1, y] + pix[x,y]) / 2
  32. # result_arr[(2*x)+0, (2*y)+1] = (pix[x, y+1] + pix[x,y]) / 2
  33. # result_arr[(2*x)+1, (2*y)+1] = (pix[x+1, y+1] + pix[x+1, y] +
  34. pix[x, y+1] + pix[x,y]) / 4
  35. print(result_arr)
  36.  
  37. result_img = Image.fromarray(result_arr, mode = 'L')
  38. imshow(np.asarray(result_img)) # преобразованная картинка
  39. # result_img.save("5_resize.jpg")
Add Comment
Please, Sign In to add comment