Используйте np.arange
для маскировки строк и cmap='gray'
для построения белого и черного:
import matplotlib.pyplot as plt
import numpy as np
im=np.zeros((100,100)) + 0
r1, r2 = 31,41
rows = np.arange(im.shape[0])
m1 = np.logical_and(rows > r1, rows < r2)
im[rows[m1], :] = 255
plt.imshow(im, cmap='gray')
![enter image description here](https://i.stack.imgur.com/zIYWE.png)
Для работы на уровне пикселейполучить индексы строк и столбцов из np.indices
:
def line_func(col, s, e):
return (s + (e - s) * col / im.shape[1]).astype(np.int)
r1, r2 = [20, 25], [30, 35]
rows, cols = np.indices(im.shape)
m1 = np.logical_and(rows > line_func(cols, *r1),
rows < line_func(cols, *r2))
im+= 255 * (m1)
plt.imshow(im, cmap='gray')
![enter image description here](https://i.stack.imgur.com/6lLRw.png)