gpt4 book ai didi

python - 在Python中添加两个不同大小的图像或填充白色像素以使其更大

转载 作者:行者123 更新时间:2023-12-02 17:22:41 28 4
gpt4 key购买 nike

我有一个尺寸为1000x300的图像,我想将该图像尺寸设置为4992x6400。
基本上是,我不想调整图像的大小

因此,有两种方法,我认为我们可以做到。

  • 我们可以创建所需大小的白色图像,即4992x6400,并使用较小的图像
  • 添加白色像素图像
    import cv2
    WhiteBackground = np.full(img.shape, 255, dtype=np.uint8)
    cv2.imwrite(r"white.png",WhiteBackground)
    readWhiteImage=cv2.imread(r"white.png")
    readSmallImage=cv2.imread(r"small.png")

    上面的代码之后,我很惊讶如何添加两个不同大小的图像
    我尝试使用 cv2.addnumpy.add,因为图像的大小不同,并且还使用了 cv2.addWeighted,但没有一个成功。

    我知道cv2.add和numpy.add不能工作,因为图像的大小不同,但是不知道 cv2.addWeighted,因为大小不同也导致了错误
  • 用白色像素填充,将小图像保留在左上角,并在白色像素的左侧和底部填充..我不知道如何实现此目标...

  • 请帮忙。
    输入图像
    Input_Small image

    展示输出
    enter image description here

    最佳答案

    在Python / OpenCV中至少有两种方法可以做到这一点。您可以使用cv2.copyMakeBorder()或使用Numpy slice 将输入复制到白色背景图像的左上角。这是后者。

    输入:

    enter image description here

    import cv2
    import numpy as np

    # read image
    img = cv2.imread('numbers.png')
    ht, wd, cc= img.shape

    # create new image of desired size and color (white) for padding
    ww = 4992
    hh = 6400
    color = (255,255,255)
    result = np.full((hh,ww,cc), color, dtype=np.uint8)

    # set offsets for top left corner
    xx = 0
    yy = 0

    # copy img image into center of result image
    result[yy:yy+ht, xx:xx+wd] = img

    # view result
    cv2.imshow("result", result)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    # save result
    cv2.imwrite("numbers_inserted.jpg", result)

    结果:

    enter image description here

    关于python - 在Python中添加两个不同大小的图像或填充白色像素以使其更大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61379067/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com