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

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

相关推荐
MARS_AI_6 分钟前
大语言模型驱动智能语音应答:技术演进与架构革新
人工智能·语言模型·自然语言处理·架构·信息与通信
程序员小灰11 分钟前
AI独角兽团队Manus裁员80人,剩下40人迁至新加坡总部!
人工智能·aigc·agent
新智元22 分钟前
OpenAI去年挖的坑填上了!奖励模型首现Scaling Law,1.8B给70B巨兽上了一课
人工智能·openai
简婷1870199877532 分钟前
源网荷储 + 零碳园区:一场关于能源与未来的双向奔赴
大数据·人工智能·能源
新智元36 分钟前
Grok 4作战图刷爆全网,80%华人横扫硅谷!清华上交校友领衔,95后站C位
人工智能·openai
小宋00136 分钟前
使用LLaMA-Factory微调Qwen2.5-VL-3B 的目标检测任务-数据集格式转换(voc 转 ShareGPT)
人工智能·目标检测·计算机视觉
小哥谈1 小时前
论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
mit6.8241 小时前
[Meetily后端框架] AI摘要结构化 | `SummaryResponse`模型 | Pydantic库 | vs marshmallow库
c++·人工智能·后端
screenCui1 小时前
macOS运行python程序遇libiomp5.dylib库冲突错误解决方案
开发语言·python·macos
小宋0011 小时前
在Ubuntu上安装配置 LLaMA-Factory
ubuntu·计算机视觉