在下面的函数imcrop_tosquare
中。
假设我有一个形状的图像(8,4)
即8行4列。
如果是这样的话。我会得到额外的4。
然后extra%2 ==0
条件得到满足。
crop = img[2:-2,:]
2到-2代表什么? 我假设它是从第2行到它之前的行。 1,2,3,4,5,6,7,8 [这将在循环中]因此-1将是1而-2将是2。 如果将前两行结束,图像是否会被损坏? 我错误地解释了吗?任何人都可以指导我理解这一点。
def imcrop_tosquare(img):
"""Make any image a square image.
Parameters
----------
img : np.ndarray
Input image to crop, assumed at least 2d.
Returns
-------
crop : np.ndarray
Cropped image.
"""
if img.shape[0] > img.shape[1]:
extra = (img.shape[0] - img.shape[1])
if extra % 2 == 0:
crop = img[extra // 2:-extra // 2, :]
else:
crop = img[max(0, extra // 2 + 1):min(-1, -(extra // 2)), :]
elif img.shape[1] > img.shape[0]:
extra = (img.shape[1] - img.shape[0])
if extra % 2 == 0:
crop = img[:, extra // 2:-extra // 2]
else:
crop = img[:, max(0, extra // 2 + 1):min(-1, -(extra // 2))]
else:
print("It is imgae")
crop = img
return crop
答案 0 :(得分:1)