Python-Opencv学习总结(二):ROI、图像融合、图像类型转换

6、图像感兴趣区域ROI(region of interest)

从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域。可以通过各种算子(Operator) 和函数来求得感兴趣区域ROI,并进行图像的下一步处理。
假设我们感兴趣的区域为200行-400行,200列-400列,则采用切片,命名为face取出该区域。
img=cv2.imread(‘图像名称’)
face=img[200:400,200:400]

import cv2
import numpy as np
a=cv2.imread(r'D:\image\lenacolor.png')
b=np.ones((101,101,3))  #随便定义一个数组,b有三个通道,是一个空白图像
b=a[220:400,250:350]   #让b等于a的感兴趣区域,a区域的范围是大致确定的
#a图像中导入b图像
a[0:180,0:100]=b     #让a的0-108行和0-100列等于b,此时a的区域要和b里面的区域相等,b里面图像为180行100列,所以a切片区域要一致
girl=cv2.imread(r'D:\image\girl.bmp')
girl[180:360,100:200]=b  #让girl的图像等于b的范围,
cv2.imshow('img1',a)
cv2.imshow('img2',b)
cv2.imshow('img3',girl)
cv2.waitKey()
cv2.destroyAllWindows()

将lena脸部插入到小女孩图片中

7、通道拆分与合并

拆分通道
直接使用opencv拆分;
使用split()拆分

#直接使用opencv
img=cv2.imread('图像')
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:.2]

#使用split()一次性拆分三个通道
import cv2
import numpy as np
a=cv2.imread(r'D:\image\lenacolor.png')
b,g,r=cv2.split(a)
cv2.imshow('img',a)
cv2.imshow('B',b)
cv2.imshow('G',g)
cv2.imshow('R',r)
cv2.waitKey(0)
cv2.destroyAllWindows()

#分别拆分三个通道
b=cv2.split(a)[0]
g=cv2.split(a)[1]
r=cv2.split(a)[2]

合并
使用函数merge()
cv2.merge([通道1,通道2,通道3])

#先拆分,在合并
import cv2
import numpy as np
a=cv2.imread(r'D:\image\lenacolor.png')
b,g,r=cv2.split(a)
m=cv2.merge([b,g,r])

#合并顺序不同,结果不同
import cv2
import numpy as np
a=cv2.imread(r'D:\image\lenacolor.png')
b,g,r=cv2.split(a)
bgr=cv2.merge([b,g,r])
rgb=cv2.merge([r,g,b])
brg=cv2.merge([b,r,g])

8、图像加法

Numpy加法
取模直接相加
如上图,若两图像像素相加和小于255,则像素结果为二者的和
若俩图像素相加大于255,则相加的结果对255取模。像素结果为二者的和除以255的余数。取余数
Opencv加法
饱和运算:使用函数cv2.add(图像1,图像2)
若两图像像素相加和小于255,则像素结果为二者的和
若俩图像素相加大于255,则像素的结果直接取255

9、图像融合

将2张或2张以上的图像信息的融合到1张图像上
融合的图像含有更多的信息、能够更方便人来观察或者计算机处理
例:两张不清楚的图像进行融合。
融合:结果图像=图像1系数1+图像2系数2+亮度调节量
img=img1*0.3+img2+0.7+18
使用函数cv2.addWeighted( )

dst=cv2.addWeightedeightedeighted(src1,alpha,src2,beta,gamma)

10、图像类型转换

OpenCV提供了200多种不同类型之间的转换。
使用函数cv2.cvtColor(要转换的图像,函数)
cv2.COLOR_BGR2GRAY 彩色转成灰色
cv2.COLOR_BGR2RGB 彩色转成蓝色
cv2.COLOR_GRAY2BGR 灰色转成彩色
灰度转彩色
b=cv2.cvtColor(a,cv2.COLOR_ GRAY2BGR)
结果并不是彩色图,但是已经拥有了三个通道,且三个通道像素值一样

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值