如何在OpenCV中将图像复制并粘贴为画中画

时间:2017-10-07 07:30:17

标签: python opencv numpy

import cv2
import numpy as np


img = cv2.imread('C:\Users\SHUSHMA-PC\Desktop\sample\dumb.jpeg',cv2.IMREAD_COLOR)


img[100,100]=[255,255,255]
px=img[100,100]


img[500:550,500:550]=[0,0,0]


dumb_face= img[37:111,108:195]
img[0:74,0:87]=dumb_face

imS = cv2.resize(img, (250, 250))
cv2.imshow("output", imS)

cv2.waitKey()
cv2.destroyAllWindows()

没有错误,只是图像没有复制并显示为正常输出

this is the output, it is supposed to copy

实际上,我想复制整个图像并将其粘贴到图像本身(较小的图像)上。喜欢图像上的图像。

1 个答案:

答案 0 :(得分:2)

我认为您正在尝试裁剪图像并将裁剪的部分保存为新图像。以下是执行此操作的示例代码。

import cv2
import numpy as np

img = cv2.imread(r'.\dump.png', 1)  # '1' read as color image
h,w = img.shape[:2]
print 'image height and width = %d x %d' % (h, w)  # 318 * 348 pixels

img = img[50:250,50:280]  # crop image at [h1:h2, w1:w2]
cv2.imwrite(r'.\dump_resized.png',img)

这是裁剪并保存的图像。

enter image description here

这是你打算做的?

<强>更新

调整图像大小并将其作为图片中的图片。您可以先调整图像大小,例如1/10。

resized_image = cv2.resize(img, (h/8, w/8))
h1, w1 = resized_image.shape[:2]

然后将调整大小的一个放入原始图像中。

#set top left position of the resized image
pip_h = 10
pip_w = 10
img[pip_h:pip_h+h1,pip_w:pip_w+w1] = resized_image  # make it PIP
cv2.imwrite(r'.\dump_pip.png',img)

以下是生成的PIP图像。

enter image description here