IPython imshow() или выбор строки numpy

#python #numpy #ipython #imshow

#python #numpy #ipython #imshow

Вопрос:

Я пытаюсь отобразить, используя imshow (), только средние сотни строк изображения, которые у меня есть. Мне было интересно, есть ли какие-либо команды numpy, которые могут нарезать только средние сотни строк массива моего изображения. Если нет, могу ли я использовать некоторые изменения в самом imshow(), чтобы иметь возможность выбирать и показывать только средние сотни строк?

Ответ №1:

То, что вы ищете, это :

 pic[np.shape(pic)[0]/2-50:np.shape(pic)[0]/2 50,np.shape(pic)[1]/2-50:np.shape(pic)[1]/2 50]
  

пример кода:

 import numpy as np
import matplotlib.pyplot as plt

pic = np.random.rand(300,300)
fig1 = plt.figure()
fig1.suptitle('Full image')
plt.imshow(pic)
cropped = pic[np.shape(pic)[0]/2-50:np.shape(pic)[0]/2 50,np.shape(pic)[1]/2-50:np.shape(pic)[1]/2 50]
fig2 = plt.figure()
fig2.suptitle('middle 100 rows and column cropped')
plt.imshow(cropped)
plt.show()
  

Результат:

введите описание изображения здесь
введите описание изображения здесь

Комментарии:

1. Спасибо, это было полезно!