zoukankan      html  css  js  c++  java
  • (五)图像的算术和逻辑操作

    1.两幅相同尺寸的图像叠加,比较三种方式,一般采用权重addWeighted

     import cv2                                               
     import numpy as np
     
     img1=cv2.imread('3D-Matplotlib.png')
     img2=cv2.imread('mainsvmimage.png')
     
     #第一种混乱的加,不用
     add1=img1+img2
     #第二种得到很亮的图像,原理如下:
     #(155,211,79)+(50,170,200)=205,381,279...translated to(205,255,255)
     add2=cv2.add(img1,img2)
     #第三种,带权重的加
     weighted=cv2.addWeighted(img1,0.6,img2,0.4,0)
     
     cv2.imshow('add1',add1)
     cv2.imshow('add2',add2)
     cv2.imshow('add3',weighted)
     cv2.waitKey(0)
     cv2.destroyAllWindows()

    原始图片(两个图片尺寸相同)如下:

      

    叠加后的三种图像:

     

    2.将小图片叠加到大图片上,且不保留小图片的白色区域。

    (1)将小图片转为灰度图片,且使用阀值得到去周围的模板,再逻辑取反得到去图标的模板

    (2)使用模板2,去掉roi的图标部分,然后使用模板1,去掉图2的白色部分,得到只有彩色图标的图

    (3)获得需要的图像

     import cv2                                                                                                                           
     import numpy as np
     
     img1=cv2.imread('3D-Matplotlib.png')
     img2=cv2.imread('mainlogo.png')
     
     rows,cols,channels=img2.shape
     roi=img1[0:rows,0:cols]
     
     #得到小图像的灰度图
     img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
     #设置阀值,<220的变为黑色,>220的变为白色,并反转
     #即得到图标白,周围黑的图像
     ret,mask = cv2.threshold(img2gray,220,255,cv2.THRESH_BINARY_INV)
    
     #按位取反,得到图标黑,周围白的图像
     mask_inv = cv2.bitwise_not(mask)
     
     #使用模板2,去掉roi的图标部分
     img1_bg = cv2.bitwise_and(roi,roi,mask=mask_inv)
     #使用模板1,去掉图2的白色部分,得到只有彩色图标的图
     img2_fg=cv2.bitwise_and(img2,img2,mask=mask)
     
     #获得需要的图像
     dst=cv2.add(img1_bg,img2_fg)
     img1[0:rows,0:cols]=dst
     cv2.imshow('res',img1)
     cv2.waitKey(0)
     cv2.destroyAllWindows()
  • 相关阅读:
    【60.97%】【BZOJ 1925】 [Sdoi2010]地精部落
    【14.06%】【hdu 5904】LCIS
    【50.40%】【BZOJ 4553】[Tjoi2016&Heoi2016]序列
    【52.55%】【BZOJ 4520】K远点对
    洛谷——P2446 [SDOI2010]大陆争霸
    Python模块之re
    Docker从入门到实战
    分析增加站点权重的四大切入点(转载)
    远程桌面连接不上|windows server 2003 sp2 termdd.sys(转载)
    不同服务器数据库之间的数据操作(转载)
  • 原文地址:https://www.cnblogs.com/sunnyCx/p/8137942.html
Copyright © 2011-2022 走看看