猿问

如何在不出现“TypeError:字符串索引必须是整数”的情况下对图像进行 numpy 切片

我收到错误:


“类型错误:字符串索引必须是整数”


当我尝试裁剪图像时


我正在尝试编写一个裁剪矩形图像的函数,以便制作方形图像并居中。


def squared_and_resized(img,resized_dim):

    image = cv2.imread(img)

    img_height,img_width = image.shape[:2]

    if (img_width > img_height):

            start_row = 0

            end_row = img_height

            start_col = math.floor((img_width - img_height) /2)

            end_col = math.floor((img_width + img_height) /2)

    else:

            start_col = 0

            end_col = img_width

            start_row = math.floor((img_height-img_width)/2)

            end_row = start_row + img_width


    squared_img = img[start_row:end_row , start_col:end_col]


    resized_img = cv2.resize(squared_img,(resized_dim, resized_dim))

    return resized_img


眼眸繁星
浏览 176回答 2
2回答

MMTTMM

math.floor 返回一个浮点型变量。你可以用int(math.floor((img_height-img_width)/2))

犯罪嫌疑人X

错误在行中:squared_img = img[start_row:end_row , start_col:end_col]。经过代码检查,它似乎img是str传递给此方法并稍后用于图像切片的类型。您可能需要使用squared_img = image[start_row:end_row , start_col:end_col]为了在未来缓解此问题,请使用有意义的名称。在这种情况下,方法参数可以命名为image_path.
随时随地看视频慕课网APP

相关分类

Python
我要回答