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】总结

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

相关推荐
西西弗Sisyphus几秒前
如果让计算机理解人类语言- Word2Vec(Word to Vector,2013)
人工智能·word·word2vec
这里有鱼汤2 分钟前
给你的DeepSeek装上实时行情,让他帮你炒股
后端·python·mcp
前端双越老师24 分钟前
30 行代码 langChain.js 开发你的第一个 Agent
人工智能·node.js·agent
Tomorrow'sThinker35 分钟前
[特殊字符] Excel 读取收件人 + Outlook 批量发送带附件邮件 —— Python 自动化实战
python·excel·outlook
东坡肘子41 分钟前
高温与奇怪的天象 | 肘子的 Swift 周报 #092
人工智能·swiftui·swift
JosieBook42 分钟前
【Java编程动手学】Java常用工具类
java·python·mysql
KaneLogger1 小时前
视频转文字,别再反复拖进度条了
前端·javascript·人工智能
度假的小鱼1 小时前
从 “人工编码“ 到 “AI 协同“:大模型如何重塑软件开发的效率与范式
人工智能
zm-v-159304339862 小时前
ArcGIS 水文分析升级:基于深度学习的流域洪水演进过程模拟
人工智能·深度学习·arcgis
拓端研究室3 小时前
视频讲解|核密度估计朴素贝叶斯:业务数据分类—从理论到实践
人工智能·分类·数据挖掘