pycharm+python学习笔记(3)——图像属性获取、感兴趣ROI区域及通道处理

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()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值