深度学习-推荐系统-CV-NLP深度学习程序员

计算机视觉 OpenCV (7) 图像叠加

2019-08-14  本文已影响24人  zidea
img = cv2.imread('messi5.jpg')
print(img.shape)
print(img.size)
print(img.dtype)

读取图片 messi5.jpg 梅西相比大家都认识估计 opencv 团队也是梅西的粉丝。然后通过输出查看图片数据的信息,为 342 x 548 矩阵每一个元素是一个 3 维数组。

(342, 548, 3)
562248
uint8

通过 cv.split 方法可以将图片分离出 b g r 三个通道,使用 cv2.merge 将通道进行合并。

b,g,r = cv2.split(img)
img = cv2.merge((b,g,r))
img = cv2.imread('messi5.jpg')
print(img.shape)
print(img.size)
print(img.dtype)
b,g,r = cv2.split(img)
img = cv2.merge((b,g,r))


cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

ROI

既然我们读取到图片数据就可以将图像一部分像素读取出到一个对象。

ball = img[280:340,330:390]
img[273:333,100:160] = ball

我们通过测量将球周围像素提取出然后,然后通过merge 将提取球像素和原图进行合并得到下图中的效果。

img = cv2.imread('messi5.jpg')
img2 = cv2.imread('opencv-logo.png')
dst = cv2.add(img, img2);

调整大小

我们需要通过 cv2.resize 调整图片大小,然后通过调用 addWeight 方法为两张大小一致图片进行合并,表示图片合并后所占比例。

img = cv2.resize(img,(512,512))
img2 = cv2.resize(img2,(512,512))
dst = cv2.addWeighted(img, .9,img2, .1, 0);
上一篇下一篇

猜你喜欢

热点阅读