Opencv 直接读入单通道和BGR转灰度图的差异

Opencv 直接读入单通道和BGR转灰度图的差异

最近在编写一个视频分析软件,同时加入了自动识别的功能,但是测试中发现自动识别时数据出现问题,最后排查是由于同时使用了两种读入灰度图的方式,为了节约内存,不需要三通道图的位置使用了直接读入单通道图的方式。

# 读取图片的两种方式
# 直接读入灰度图,单通道图
img2_org = cv2.imread('C0198_iPhoneXs_IMG_1189.JPG', 0)
# 读入bgr然后转换为Gray
img1_org = cv2.imread('C0198_iPhoneXs_IMG_1189.JPG')
img1 = cv2.cvtColor(img1_org, cv2.COLOR_BGR2GRAY)

得到的数据是不完全相同的,网上尚未查找到具体原因,通过对读取到的ndArray数据对比,发现存在不完全相同的数据。

附录:(imread的相关参数)

cv.IMREAD_UNCHANGED = -1, 原格式读入,透明度保留,实际上并不会根据文件的后缀格式读入文件;
cv.IMREAD_GRAYSCALE = 0,读入单通道文件,与BGR2GRAY得到的数据不一致;
cv.IMREAD_COLOR = 1, 读入彩色图,透明度被忽略
cv.IMREAD_ANYDEPTH = 2, 读入深度不限制
cv.IMREAD_ANYCOLOR = 4, 读入色彩不限制
cv.IMREAD_LOAD_GDAL = 8,
cv.IMREAD_REDUCED_GRAYSCALE_2 = 16, 另一种单通道读入;
cv.IMREAD_REDUCED_COLOR_2 = 17,
cv.IMREAD_REDUCED_GRAYSCALE_4 = 32,
cv.IMREAD_REDUCED_COLOR_4 = 33,
cv.IMREAD_REDUCED_GRAYSCALE_8 = 64,
cv.IMREAD_REDUCED_COLOR_8 = 65,
cv.IMREAD_IGNORE_ORIENTATION = 128

其他几种flag基本没用过,欢迎知道的在评论中补充。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值