import numpy as np
import matplotlib.pyplot as plt


def plot_crops(crops, title, scatter_mid=False, names=None):

	n_crops = len(crops)
	if n_crops == 0: return
	rows = int(np.ceil(np.sqrt(n_crops)))
	cols = int(np.ceil(n_crops / rows))

	fig, axs = plt.subplots(rows, cols, figsize=(16,9))
	fig.suptitle(title, fontsize=16)
	[axs[np.unravel_index(i, axs.shape)].axis("off") for i in range(cols*rows)]

	for i, crop in enumerate(crops):
		ax = axs[np.unravel_index(i, axs.shape)]
		if names is not None:
			ax.set_title(names[i])
		ax.imshow(crop)
		if scatter_mid:
			middle_h, middle_w = crop.shape[0] / 2, crop.shape[1] / 2
			ax.scatter(middle_w, middle_h, marker="x")