skimage.io.imread与cv2.imread读取图片的通道顺序不同

本文指出skimage.io.imread按照RGB顺序读取图像通道,而cv2.imread遵循BGR顺序。在提取蓝色通道并转换为二值图时,这导致不同库读取同一图像会有颜色差异。示例代码展示了如何用cv2和skimage分别进行此操作,并且显示了输出结果的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说结论
skimage.io.imread读取的通道顺序为RGB,
opencv读取的通道顺序为BGR。
在基于通道处理数据时注意区别。

示例如下:
对于一张彩色的村庄鸟瞰图,
其中道路为蓝色,我们提取出蓝色通道
并将其转为二值图输出,已验证提取出的通道为蓝色通道

代码实现:

cv2 读取

import cv2 as cv
img_path = 'path_to_image'
image=cv.imread(img_path)  # 
blue_channel = image[:, :, 0]
# 设置下界阈值
lower_threshold = 50
# 创建二值化图像,将满足阈值条件的像素设为1,其他像素设为0
binary_image = np.where((blue_channel <= lower_threshold), 0, 1)
cv.imwrite('testCV2.png', binary_image*255)

输出图像为:

skimage读取

from skimage.io import imread

img_path = 'path_to_image'
image=imread(img_path)  # RGB
blue_channel = image[:, :, 2]  
# 设置下界阈值
lower_threshold = 50
# 创建二值化图像,将满足阈值条件的像素设为1,其他像素设为0
binary_image = np.where((blue_channel <= lower_threshold), 0, 1)
cv.imwrite('testskimg.png', binary_image*255)

输出结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值