当前位置: 移动技术网 > IT编程>脚本编程>Python > 荐 [Python之图像处理] 三.获取图像属性、获取感兴趣ROI区域及通道处理

荐 [Python之图像处理] 三.获取图像属性、获取感兴趣ROI区域及通道处理

2020年07月16日  | 移动技术网IT编程  | 我要评论
获取图像属性、兴趣ROI区域及通道处理一、获取图像属性二、获取感兴趣ROI区域三、通道处理1.通道拆分2.通道合并实验环境:Anaconda+Sublime Text 3在OpenCV中使用imread函数时,除了第一个参数外(第一个参数是指定需要读取的图片的路径和图片名),我们还可以指定一个参数,常用的就是"IMREAD_UNCHANGED"、“IMREAD_GRAYSCALE”、"IMREAD_COLOR"三个属性了1)"IMREAD_UNCHANGED"指定用图片的原来格式打开,即以不改变图片


实验环境:
Anaconda+Sublime Text 3

在OpenCV中使用imread函数时,除了第一个参数外(第一个参数是指定需要读取的图片的路径和图片名),我们还可以指定一个参数,常用的就是"IMREAD_UNCHANGED"、“IMREAD_GRAYSCALE”、"IMREAD_COLOR"三个属性了

1)"IMREAD_UNCHANGED"指定用图片的原来格式打开,即以不改变图片的方式打开,图片是彩色就是彩色,图片是灰度图像就是灰度图像

2)"IMREAD_GRAYSCALE"指定用灰度图像的方式打开图片,即将原始图像转化为灰度图像再打开

3)"IMREAD_COLOR"指定用彩色图像打开图片

一、获取图像属性

# -*- coding:utf-8 -*-
import cv2

#读取图片
img = cv2.imread("image\\lena.jpg", cv2.IMREAD_UNCHANGED)

#获取图片形状
print (img.shape)

#获取像素数目
print(img.size)

#获取像素类型
print(img.dtype)


#显示图像
cv2.imshow("Demo", img)


#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述
在这里插入图片描述

二、获取感兴趣ROI区域

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

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#读取图片
img = cv2.imread("image\\lena.jpg", cv2.IMREAD_UNCHANGED)

#定义300*500全为1矩阵 3对应BGR
face = np.ones((300,500,3))

#显示原始图像
cv2.imshow("Demo", img)


#显示ROI区域

face = img[150:450,250:750]
cv2.imshow("face",face)

#等待显示

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述
下面将提取的ROI图像进行融合实验,代码如下:
在这里插入图片描述
如果想将两张图像进行融合,只需再读取一张图像即可,方法原理类似。 实现代码如下:
在这里插入图片描述

三、通道处理

1.通道拆分

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#读取图片
img = cv2.imread("image\\cat.jpg", cv2.IMREAD_UNCHANGED)

#拆分通道
b, g, r = cv2.split(img)

#显示原始图像
cv2.imshow("B", b)
cv2.imshow("G", g)
cv2.imshow("R", r)
           
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

2.通道合并

# -*- coding:utf-8 -*-
import cv2
import numpy as np

#读取图片
img = cv2.imread("image\\cat.jpg", cv2.IMREAD_UNCHANGED)

#拆分通道
b, g, r = cv2.split(img)

#合并通道
m = cv2.merge([b, g, r])
cv2.imshow("Merge", m)
           
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

参考链接:https://blog.csdn.net/eastmount/article/details/82177300

本文地址:https://blog.csdn.net/qq_42585108/article/details/107332574

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网