如何将python列表[a,b,c,d]转换为[a:b, c:d]格式

0 投票
2 回答
631 浏览
提问于 2025-04-18 11:13

我该如何把一个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]]

撰写回答