python图像运算、图像融合

图像加法运算

cv2.add(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
    当两幅图像像素值相加结果小于等于255时,输出图像直接赋值该结果,如果相加值大于255,赋值255
import cv2
d=cv2.imread('d.jpg')
e=cv2.imread('e.jpg')
result=cv2.add(d,e)
cv2.imshow('d',d)
cv2.imshow('e',e)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像减法运算

cv2.subtract(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
import cv2
import numpy as np
img = cv2.imread('a.jpg')
x=np.ones(img.shape,dtype='uint8')*100
#图像各像素减100
result=cv2.subtract(img,x)
cv2.imshow('original',img)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像与运算

cv2.bitwise_and(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
import cv2
import numpy as np
img = cv2.imread('e.jpg')
row,col=img.shape[:2]
c=cv2.imread('d.jpg')
cv2.circle(c,(row//2,col//2),100,255,-1)
result=cv2.bitwise_and(img,c)
cv2.imshow('c',img)
cv2.imshow('circle',c)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像或运算

cv2.bitwise_or(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
import cv2
import numpy as np
img = cv2.imread('e.jpg')
row,col=img.shape[:2]
c=cv2.imread('d.jpg')
cv2.circle(c,(row//2,col//2),100,255,-1)
result=cv2.bitwise_or(img,c)
cv2.imshow('c',img)
cv2.imshow('circle',c)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像异或运算

cv2.bitwise_xor(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
import cv2
import numpy as np
img = cv2.imread('e.jpg')
row,col=img.shape[:2]
c=cv2.imread('d.jpg')
cv2.circle(c,(row//2,col//2),100,255,-1)
result=cv2.bitwise_xor(img,c)
cv2.imshow('c',img)
cv2.imshow('circle',c)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像非运算

cv2.bitwise_not(src1,src2,dst,…)

  • src1:第一幅图像
  • src2:第二幅图像
  • dst:要输出的图像–必须与输入的图像具有相同的大小和通道数
import cv2
import numpy as np
img = cv2.imread('e.jpg')
result=cv2.bitwise_not(img)
cv2.imshow('c',img)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像融合

cv2.addWeighted(src1,alpha,src2,beta,gamma)

  • src1:第一幅图像
  • alpha:系数1
  • src2:第二幅图像
  • beta:系数2
  • gamma:亮度调节
    图像融合=图像1系数1+图像2系数2+亮度调节
import cv2
import numpy as np
img = cv2.imread('e.jpg')
d=cv2.imread('d.jpg')
result=cv2.addWeighted(img,0.6,d,0.5,0.5)
cv2.imshow('e',img)
cv2.imshow('d',d)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

获取图像ROI区域

import cv2
import numpy as np
img=cv2.imread('e.jpg')
imgd=cv2.imread('d.jpg')
a=np.zeros((200,200,3))
#通过像素矩阵获取ROI区域
a=img[150:350,150:350]
imgd[100:300,100:300]=a
cv2.imshow('a',imgd)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

图像类型转换

cv2.cvtColor(src,code,dst,…)

  • src:输入的需要进行颜色空间转换的图像
  • code:转换的代码或标识
import cv2
img=cv2.imread('d.jpg')
result1=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result2=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
result3=cv2.cvtColor(result2,cv2.COLOR_GRAY2BGR)
cv2.imshow('img',img)
cv2.imshow('r1',result1)
cv2.imshow('r2',result2)
cv2.imshow('r3',result3)
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

报错解决

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值