python学opencv|读取图像(五)读取灰度图像像素

【1】引言

前序学习了图像的基本读取,掌握了imread()、imshow()和imwrite()函数的基本功能和使用技巧,参考文章链接为:

python学opencv|读取图像-CSDN博客

然后陆续掌握了彩色图像保存、图像放大和缩小以及对imshow()函数的大胆尝试技巧,相关文章见下述链接:

python学opencv|读取图像(二)保存彩色图像_python opencv 读取图像转为彩色-CSDN博客

python学opencv|读取图像(三)放大和缩小图像_python cv 调整图像大小-CSDN博客

python学opencv|读取图像(四)imshow()函数尝试-CSDN博客

在此基础上,我们对图片大小、像素、灰度等基本概念具备了一定了解,今天就来读取一下以进行深度学习。

【2】读取像素

图像具有一些基本属性,像素是其中之一。像素属性包括垂直和水平方向上的像素大小、像素总个数等基本类型。

读取图像的像素属性,应分别调用下述函数实现目标:

【a】shape函数读取垂直和水平方向上的像素大小;

【b】size函数读取总像素个数;

【c】dtype函数读取图像的数据类型(不是本次重点,之后再细究)。

以下图为例,图片截自CSDN页面,我们先将其读取,然后转化为灰度图,再输出像素属性。

++图1++

【2.1】读和显示图片

图片放置在project所在的位置,读取图片的程序为:

python 复制代码
import cv2 as cv #引入cv2模块
image=cv.imread("cv019.png",0) #读取图片,将其转化为灰度图
cv.imshow('cvtest',image) #显示为灰度图
cv.waitKey() #图片显示时间
cv.destroyAllWindows() #释放所有窗口

在imread(photoname,colorpar)函数中,photoname代表要读取的图片的名字,colorpar=0时就会输出灰度图片,细节如下:

复制代码
image=cv.imread("cv019.png",0) #读取图片,将其转化为灰度图

上述代码还可以优化一下,万一图片位置放错了,可能读不到,所以就需要给假设条件,把代码写为新形式:

python 复制代码
import cv2 as cv #引入cv2模块
image=cv.imread("cv019.png",0) #读取图片,将其转化为灰度图
if image is not None: #成功读取图片
    cv.imshow('cvtest', image)  # 显示为灰度图
    cv.waitKey()  # 图片显示时间
    cv.destroyAllWindows()  # 释放所有窗口
else: #未找到图片
    print("Error: 图片无法加载")

2.1节内部的两个程序,在图片位置正确的前提下,输出都是一张灰度图,参考图2。

【2.3】保存灰度图片

在上述基础上,增加一行保存图片代码:

复制代码
cv.imwrite('opencv-gray.jpg', image) #保存灰度图

增加后的完整代码为:

python 复制代码
import cv2 as cv #引入cv2模块
image=cv.imread("cv019.png",0) #读取图片,将其转化为灰度图
if image is not None: #成功读取图片
    cv.imshow('cvtest', image)  # 显示为灰度图
    cv.imwrite('opencv-gray.jpg', image) #保存灰度图
    cv.waitKey()  # 图片显示时间
    cv.destroyAllWindows()  # 释放所有窗口
else: #未找到图片
    print("Error: 图片无法加载")

运行代码后的输出图像为:

++图2++

【2.2】读取像素属性

在上述基础上,增加代码以读取像素属性:

复制代码
shape= image.shape
size = image.size
dtype= image.dtype
print('像素大小shape=',shape)
print('总像素个数size=',size)
print('图像数据类型dtype=',dtype)

此时的输出会增加下述内容:

++图3++

此时的完整代码为:

python 复制代码
import cv2 as cv #引入cv2模块
image=cv.imread("cv019.png",0) #读取图片,将其转化为灰度图
if image is not None: #成功读取图片
    cv.imshow('cvtest', image)  # 显示为灰度图
    cv.imwrite('opencv-gray.jpg', image) #保存灰度图
    shape= image.shape
    size = image.size
    dtype= image.dtype
    print('像素大小shape=',shape)
    print('总像素个数size=',size)
    print('图像数据类型dtype=',dtype)
    cv.waitKey()  # 图片显示时间
    cv.destroyAllWindows()  # 释放所有窗口
else: #未找到图片
    print("Error: 图片无法加载")

【3】总结

成功掌握灰度图像像素读取技巧。

相关推荐
浏览器爱好者4 分钟前
如何下载适用于语音识别功能增强的Google Chrome浏览器
人工智能·chrome·语音识别
凌叁儿6 分钟前
从零开始搭建Django博客①--正式开始前的准备工作
python·django·sqlite
THe CHallEnge of THe BrAve26 分钟前
面阵相机中M12镜头和远心镜头的区别及性能优势
图像处理·数码相机·计算机视觉·视觉检测
孔令飞35 分钟前
彻底学会 gRPC:用 Go 实现一个迷你考试服务
人工智能·云原生·go
梓羽玩Python39 分钟前
告别OCR!这个AI文档神器直接"看懂"PDF,支持文档归类及多模态问答!
人工智能·github
weixin_4578858243 分钟前
Discuz!+DeepSeek:传统论坛的智能化蜕变之路
人工智能·学习·discuz·deepseek
攻城狮7号1 小时前
Python爬虫第19节-动态渲染页面抓取之Splash使用下篇
开发语言·爬虫·python·python爬虫
檀越剑指大厂1 小时前
Browser-Use WebUI:让AI自动使用浏览器帮你查询信息执行任务
人工智能
栗筝i1 小时前
人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径
人工智能
胡耀超1 小时前
5.第五章:数据分类的方法论
大数据·人工智能·分类·数据挖掘·数据治理·数据分类·分类分级