介绍
小编给大家分享一下如何使用python和opencv的面具实现抠图叠加,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
python的数据类型有哪些吗?
python的数据类型:1。数字类型,包括int(整型),长(长整型)和浮子(浮点型)。2。字符串,分别是str类型和unicode类型。3。布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和虚假的(假)。4。列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5。元组,元组用“()”标识,内部元素用逗号隔开。6。字,字典典是一种键值对的集合。7。集合,集合是一个无序的,不重复的数据组合。
背景照片:
标识:
合成效果:
代码:
import cv2 as 简历,numpy as np #,Load two 图像 时间=img1 cv.imread (& # 39; 227351. jpg # 39;), #,背景 时间=img2 cv.imread (& # 39; logo.png& # 39;), #,标志 #,小姐:want 用put logo 提醒top-left 角落,,So 小姐:create a ROI 行,关口,channels =img2.shape 时间=roi img1[0:行,,0:cols 】 #,你create a  mask of logo 以及create its inverse mask 也 时间=img2gray cv.cvtColor (img2 cv.COLOR_BGR2GRAY) ret, mask =, cv.threshold (img2gray,, 254,, 255,, cv.THRESH_BINARY), #,这254个很重要 时间=mask_inv cv.bitwise_not(面具) cv.imshow(& # 39;面具# 39;,mask_inv) #,你black-out 从而area of logo 拷贝ROI 时间=img1_bg cv.bitwise_and (roi, roi, mask =,面具),#,这里是面具,我参考的博文写反了,我改正了,费了不小劲 #,Take only  region of logo 得到logo 形象。 时间=img2_fg cv.bitwise_and (img2、img2 mask =, mask_inv), #,这里才是mask_inv #,Put logo  ROI 拷贝;以及modify 从而main 形象 时间=dst cv.add (img1_bg img2_fg) img1[0:行,,0:cols ],=, dst cv.imshow (& # 39; res # 39;, img1) cv.waitKey (0) cv.destroyAllWindows ()
<强>补充:python opencv中的面具(遮罩inRange)的使用强>
可以看看我的注解
import cv2 import numpy  as np 时间=img cv2.imread (& # 39; IMG_0307.jpg& # 39;) 时间=orange_lower np.array([11, 43岁,46]) 时间=orange_upper np.array([25255255]), #颜色色域 时间=img_hsv cv2.cvtColor (img cv2.COLOR_BGR2HSV), #注意,一定要转换为hsv 时间=mask cv2.inRange (img_hsv orange_lower, orange_upper), # mask 启动 时间=mask cv2.erode(面具,没有迭代=2), 时间=mask cv2.GaussianBlur(面具,(3、3),0) # erode 和,GaussianBlur 是用来使得图片或视频更加模糊的,这样可以使得色彩突出更加明显,#色彩追踪也会更加精准 cv2.imshow(& # 39;面具# 39;,面具) cv2.imshow (& # 39; img # 39;, img) cv2.waitKey ()
使用opencv来处理图片的颜色,需要使用面具遮罩来使得所需要的颜色被保留,不需要的颜色就隐藏掉。
在上面的代码中我设置的是用面具来遮住除了橘色之外的所有颜色
<强>颜色参数就是orange_lower和orange_upper 强>
以上是“如何使用python和opencv的面具实现抠图叠加”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!