CV2 图像处理1 通道转换中一些函数介绍

CV2 图像处理

此文章介绍如何实现图片和数组之间的转换

前言

此文章介绍如何实现图片和数组之间的转换


一、图片?

图片就就是一个一个一个像素块,通过矩阵来表示,
几种图片格式的介绍:
https://zhuanlan.zhihu.com/p/143649897

二、CV2基本函数介绍

1.引入库

代码如下(示例):

import numpy as np
import cv2
import matplotlib.pyplot as plt
from PIL import Image

2.基本函数与功能

代码如下(示例):
cv2.imread 读取图像

image = cv2.imread(image_file)#image_file:图片路径

cv2.split(image) 通道分离

#通道分离,注意顺序BGR不是RGB
(B, G, R) = cv2.split(image)
# 显示各个分离出的通道
cv2.imshow("Red", R)
cv2.imshow("Green", G)
cv2.imshow("Blue", B)

cv2.merge() 合并通道

image=cv2.imread("/home/zje/Pictures/lena.jpeg");#读取要处理的图片
B,G,R = cv2.split(image);                       #分离出图片的B,R,G颜色通道
zeros = np.zeros(image.shape[:2],dtype="uint8");#创建与image相同大小的零矩阵
cv2.imshow("BLUE",cv2.merge([B,zeros,zeros]));#显示 (B,00)图像
cv2.imshow("GREEN",cv2.merge([zeros,G,zeros]));#显示(0,G,0)图像
cv2.imshow("RED",cv2.merge([zeros,zeros,R]));#显示(00,R)图像

使用函数cv2.imwrite(file,img,num)保存一个图像。第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3.

三、实现转换

例子 实现由三通道照片转换为单通道
def change_image_channels(image):
    # 3通道转单通道
    if image.mode == 'RGB':
        r, g, b = image.split()
    return b
image = Image.open(path)#path照片路径
image1=change_image_channels(image)
image1=np.array(image1)
cv2.imwrite(path,image1)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值