如何将python列表[a,b,c,d]转换为[a:b, c:d]格式
我该如何把一个Python列表转换成 [a:b, c:d]
这种格式呢?
这种格式是在使用Python的opencv库进行图像裁剪时用到的。
假设我有一个包含图像裁剪尺寸的列表 cropDim
,但我不知道怎么把它变成opencv能接受的格式,比如 image[a:b, c:d]
。
import cv2
def crop(cropDim):
bimage = cv2.imread("nor.jpg")
cropped = bimage[a:b, c:d]
cv2.imwrite('nor-crop.jpg', cropped)
2 个回答
0
好的,我们来玩一个猜测游戏,假设我们有一些基本的了解 :)
根据标题,我们要讨论的是如何把一个Python列表 [a,b,c,d] 转换成 [a:b, c:d] 这种格式:
所以我们假设 cropDim = [a,b,c,d],而我们想要的输出格式是 [a:b, c:d]。
cropDim = [a,b,c,d]
templist1 = []
templist2 = []
for i,item in enumerate(cropDim):
if i % 2 ==0:
templist1.append(item)
else:
templist2.append(item)
result = map(':'.join,zip(templist1,templist2))
print result #behold the power of assumption
1
首先,我们先搞清楚术语——这不是一个Python的列表,而是一个有两个维度的数组。你正在尝试对它进行切片操作。
cropped = bimage[cropDim[0]:cropDim[1], cropDim[2]:cropDim[3]]