1.获取图像属性
1)形状——shape:通过shape来获取图像的形状。灰度图像返回(行数,列数)、彩色图像返回(行数,列数,通道数)。
2)像素数目——size:通过size来获取图像的像素数目。灰度图像返回行数×列数、彩色图像返回行数×列数×通道数。
3)图像类型——dtype:通过dtype关键字获取图像的数据类型,通常返回uint8。
import cv2 as cv
import random
img=cv.imread("D:/ptext/girl.jpg")#读取图片
print(img.shape)
print(img.size)
print(img.dtype)
cv.namedWindow("Image")#显示图像
cv.imshow("Image", img)
cv.waitKey(0)
cv.destroyAllWindows()
输出结果如下:
(500, 500, 3)
750000
uint8
2.提取感兴趣ROI区域并进行融合操作
提取ROI图像进行融合视线,代码如下:
import cv2 as cv
import numpy as np
img=cv.imread("D:/ptext/girl.jpg")#读取图片
bg=cv.imread("D:/ptext/baby.jpg")
face=np.ones((200,200,3)) #定义200*100矩阵3对应BGR
face=img[200:375,200:350]#获取ROI区域
bg[90:265,160:310]=face#进行融合操作,即将face覆盖到bg图上
cv.imshow("Pic", bg)
cv.waitKey(0)#等待显示
cv.destroyAllWindows()
这么可爱的身子,不知道lena同不同意,咦嘻嘻!
3.通道处理:拆分split()与合并merge()
import cv2 as cv
import numpy as np
img=cv.imread("D:/ptext/girl.jpg")#读取图片
b,g,r=cv.split(img) #拆分通道
#或者使用b=cv.split(img)[0]
#g=cv.split(img)[1]
#r=cv.split(img)[2]也可以
cv.imshow("B", b) #分别显示拆分后的图像
cv.imshow("G", g)
cv.imshow("R", r)
sp=img.shape
height=sp[0]
width=sp[1]
newg=np.zeros((height,width),dtype=img.dtype)
newr=np.zeros((height,width),dtype=img.dtype)
m=cv.merge([b,newg,newr])#合并通道
cv.imshow("Merge",m)
cv.waitKey(0)#等待显示
cv.destroyAllWindows()