图像处理入门三

图像处理入门三

图像融合处理和ROI区域绘制

(1)图像融合(两张图像素大小必须一致,参数gamma不能省略)
图像加法:目标图像 = 图像 1 + 图像 2
图像融合:目标图像 = 图像 1 × 系数 1 + 图像 2 × 系数 2 + 亮度调节量
dst = cv2.addWeighted(scr1, alpha, src2, beta, gamma)
dst = src1 * alpha + src2 * beta + gamma

import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取图片
scr1=cv2.imread('lena.png')
scr2=cv2.imread('luo.png')
#图像融合
result1=cv2.addWeighted(src1,1,src2,1,0)
#显示图像
cv2.imshow('src1',src1)
cv2.imshow('src2',src2)
cv2.imshow('result',result)
#等待显示
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述
(2)图像ROI区域定位
ROI(Region of Interest)表示感兴趣区域,是指从被处理图像以方框、圆形、椭圆、不规则多边形等方式勾勒出需要处理的区域。可以通过各种算子(Operator)和函数求得感兴趣 ROI 区域,被广泛应用于热点地图、人脸识别、图像分割等领域。

#读取图像
img=cv2.imread('lena.png')
#定义200X200矩阵3对应BGR
face=np.ones((200,200,3))
#显示原始图像
cv2.imshow('demo',img)
#显示ROI区域
face=img[150:350,150:350]
cv2.imshow('face',face)
#等待显示
cv2.waitKey(0)
cv2.destoryAllWindows()

在这里插入图片描述

将提取的 ROI 区域融合至其他图片

#读取图片
img = cv2.imread("Lena.png")
test = cv2.imread("luo.png",)
#定义150X150矩阵3对应BGR
face1=np.ones((150,150,3))
#显示原始图像
cv2.imshow("Demo", img)
#显示 ROI 区域
face = img[200:350, 200:350]
test[250:400, 250:400] = face
cv2.imshow("Result", test)

在这里插入图片描述
(3) 图形属性:图像形状(shape)、像素大小
(size)和图像类型(dtype)
print(img.shape) #(行,列,通道数)
print(img.size) #像素个数,行x列x通道数
print(img.dtype) #返回数据类型,通常是uint8
(4) 图像通道分离及合并
OpenCV 通过 split()函数和 merge()函数实现对图像通道的处理,包括通道分离和通道合并。
1.split()函数
OpenCV 读取的彩色图像由蓝色(B)、绿色(G)、红色(R)三原色组成,每一种颜色可以认为是一个通道分量,b,g,r=cv.split(img),也就是三张单色图

在这里插入图片描述

import cv2
import numpy
# 读取图片
img=cv.imread('luo.png')
#拆分通道
b,g,r=cv.split(img)
#显示原始单色图像
cv2.imshow('B',b)
cv2.imshow('G',g)
cv2.imshow('R',r)
#等待显示
cv2.waitKey(0)
cv2.destoryAllWindows()

#获取不同通道颜色
b=cv2.split(a)[0]
g=cv2.split(a)[1]
r=cv2.split(a)[2]

在这里插入图片描述
2.merge()函数
b,g,r=cv2.splite(img)
m=cv2.merge([b,g,r])
可以调用该函数提取图像的不同颜色,比如提取 B 颜色通道,G、B通道设置为 0

img=cv2.imread('luo.png')
rows,cols,chn=img.shape
b=cv2.split(img)[0]
g=np.zeros((rows,cols),dtypes=img.dtype)
r=np.zeros((rows,cols),dtypes=img.dtype)
m=cv2.merge([b,g,r])

(5)图像类型转换
大多数彩色图像都是 RGB 类型,但是在图像处理过程中,常常需要用到灰度图像、二值图像、HSV、HSI 等颜色。常见的颜色空间转换标识包 括 CV_BGR2BGRA 、 CV_RGB2GRAY 、 CV_GRAY2RGB 、CV_BGR2HSV、CV_BGR2XYZ、CV_BGR2HLS
调用 cvtColor()函数将图像进行灰度化处理

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图片
scr=cv2.imread('luo.png')
#数据类型转换
result=cv2.cvtColor(scr,cv2.COLOR_BGR2GRAY)
#显示图像
cv2.imshow("src", src)
cv2.imshow("result", result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值