• 售前

  • 售后

热门帖子
入门百科

python中opencv图像叠加、图像融合、按位利用的详细实现

[复制链接]
123456868 显示全部楼层 发表于 2021-8-13 14:22:19 |阅读模式 打印 上一主题 下一主题
目次


  • 1图像叠加
  • 2图像融合
  • 3按位操纵

1图像叠加


可以通过OpenCV函数cv.add()或简朴地通过numpy操纵添加两个图像,res = img1 + img2.两个图像应该具有雷同的深度和类型,大概第二个图像可以是标量值.
NOTE:
       
  • OpenCV添加是饱和操纵,也就是有上限值,而Numpy添加是模运算。   
  • 添加两个图像时, OpenCV功能将提供更好的效果.所以总是更好地对峙OpenCV功能.
代码:
  1. import cv2
  2. import numpy as np
  3. x = np.uint8([250])
  4. y = np.uint8([10])
  5. print( cv2.add(x,y) ) # 250+10 = 260 => 255
  6. print( x+y )          # 250+10 = 260 % 256 = 4
复制代码
  1. 输出:
  2. [[255]]
  3. [4]
复制代码
2图像融合


这也是图像加法,但是对图像赋予差别的权重(0到1之间),使得它具有混合感或透明感。

代码:
  1. import cv2
  2. import numpy as np
  3. img1 = cv2.imread('img.jpg')
  4. img2 = cv2.imread('img2.jpg')
  5. img2 = cv2.resize(img2,(480,331))#统一图片大小
  6. dst = cv2.addWeighted(img1,0.5,img2,0.5,0)
  7. cv2.imshow('dst',dst)
  8. cv2.waitKey(0)
  9. cv2.destroyAllWindows()
复制代码


3按位操纵


包罗按位AND,OR,NOT和XOR运算.
希望将opencv徽标放在图像上方,如果叠加两个图像,它将改变颜色;如果融合两个图像,会得到一个透明的效果. 我希望它不透明,如果它是一个矩形地域,我可以使用ROI按之前形貌的操纵,但是opencv徽标并不是矩形,可以按位操纵完成相干功能.
代码:
  1. import cv2
  2. import numpy as np
  3. img1 = cv2.imread('img.jpg')
  4. img2 = cv2.imread('img1.jpg')
  5. img2 = cv2.resize(img2,(100,100))
  6. # I want to put logo on top-left corner, So I create a ROI
  7. rows,cols,channels = img2.shape
  8. roi = img1[0:rows, 0:cols ]
  9. # Now create a mask of logo and create its inverse mask also
  10. img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
  11. ret, mask = cv2.threshold(img2gray, 200, 255, cv2.THRESH_BINARY)
  12. mask_inv = cv2.bitwise_not(mask)
  13. # Now black-out the area of logo in ROI
  14. img1_bg = cv2.bitwise_and(roi,roi,mask = mask)
  15. # Take only region of logo from logo image.
  16. img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)
  17. # Put logo in ROI and modify the main image
  18. dst = cv2.add(img1_bg,img2_fg)
  19. img1[0:rows, 0:cols ] = dst
  20. cv2.imshow('res',img1)
  21. cv2.waitKey(0)
  22. cv2.destroyAllWindows()
复制代码

Arithmetic Operations on Images

到此这篇关于python中opencv图像叠加、图像融合、按位操纵的具体实现的文章就先容到这了,更多相干opencv图像叠加、图像融合、按位操纵内容请搜刮脚本之家从前的文章或继承欣赏下面的相干文章希望大家以后多多支持脚本之家!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作