欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-04-04 09:10:42
获取图像属性、兴趣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()

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

二、获取感兴趣ROI区域

ROI(Region of Interest)表示感兴趣区域。它是指从被处理图像以方框、圆形、椭圆、不规则多边形等方式勾勒出需要处理的区域。可以通过各种算子(Operator)和函数求得感兴趣ROI区域,并进行图像的下一步处理,被广泛应用于热点地图、人脸识别、图像分割等领域。
荐
                                                        [Python之图像处理] 三.获取图像属性、获取感兴趣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()

运行结果:
荐
                                                        [Python之图像处理] 三.获取图像属性、获取感兴趣ROI区域及通道处理
下面将提取的ROI图像进行融合实验,代码如下:
荐
                                                        [Python之图像处理] 三.获取图像属性、获取感兴趣ROI区域及通道处理
如果想将两张图像进行融合,只需再读取一张图像即可,方法原理类似。 实现代码如下:
荐
                                                        [Python之图像处理] 三.获取图像属性、获取感兴趣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()

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

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

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

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

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