程序员开发实例大全宝库

网站首页 > 编程文章 正文

Day256:opencv读取灰度图,却有三个通道

zazugpt 2024-09-04 00:23:56 编程文章 27 ℃ 0 评论

出错问题

filepath = "lenagray.jpg"
gray = cv2.imread(filepath)
 
print(gray)
print("数据类型:",type(gray))           #打印数组数据类型
print("数组元素数据类型:",gray.dtype) #打印数组元素数据类型
print("数组元素总数:",gray.size)      #打印数组尺寸,即数组元素总数
print("数组形状:",gray.shape)         #打印数组形状
print("数组的维度数目:",gray.ndim)      #打印数组的维度数目

用cv2.imread读取一张灰度图像,gray中却有三个通道,运行结果如下:

数据类型: <class 'numpy.ndarray'>数组元素数据类型: uint8数组元素总数: 1440000数组形状: (600, 800, 3)数组的维度数目: 3

正确读取灰度图

解决方法:cv.imread读取灰度图像需要加入特定的参数:gray = cv2.imread(filepath,cv2.IMREAD_GRAYSCALE)

数据类型: <class 'numpy.ndarray'>
数组元素数据类型: uint8
数组元素总数: 480000
数组形状: (600, 800)
数组的维度数目: 2

注:cv2.IMREAD_GRAYSCALE的宏定义是0,不同版本的opencv可能名称不一样,也可以用

gray = cv2.imread(filepath,0)

参考:https://blog.csdn.net/qq_27403925/article/details/105323100

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表