python学opencv|读取图像(八)用numpy创建纯黑灰度图

发布于:2024-12-18 ⋅ 阅读:(121) ⋅ 点赞:(0)

【1】引言

前序学习内容中,我们对灰度图像的像素数据进行了较为清晰的探讨:

python学opencv|读取图像(五)读取灰度图像像素-CSDN博客中探索了如何抓取灰度图像的像素数据。

python学opencv|读取图像(六)读取图像像素RGB值-CSDN博客中了解到灰度图的BGR只有一个数据(通道)。

在此基础上,如果我们想创造一个灰度图,也许可以通过以下方法:

【a】首先是创造一组数据约定图像的像素大小;

【b】然后是定义一些在[0,255]区间范围内的数据充当像素的BGR值;

【c】最后把数据输出为图像。

刚好numpy模块就有很好的数据生成功能,我们也进行了相关知识的学习,学习链接包括且不限于:

矩阵定义|python学习笔记_python定义矩阵-CSDN博客

除法|python矩阵基本运算_python 矩阵除法-CSDN博客 

python简单计算入门教程|加减法_python 计算因变量范围-CSDN博客 

为此,我们尝试编写代码,进行尝试。

【2】代码测试

在pycharm等编辑器输入下述代码:

import numpy as np #引入numpy模块
import cv2 as cv #引入cv2模块
from imageio.v2 import imwrite

#定义图像
t=np.arange(300,600,20) #定义变量,在[300,600)区间,每隔20取一个值
t_max=np.max(t) #取变量最大值作为像素大小
print('t_max=',t_max) #输出最大值
image=np.zeros([t_max,t_max],np.uint8) #定义一个竖直和水平像素均为t最大值的全0矩阵

#显示和保存定义的图像
cv.imshow('display-pho',image) #显示图像
cv.imwrite('image.jpg',image) #保存图像
cv.waitKey() #图像不关闭
cv.destroyAllWindows() #释放所有窗口

代码非常简单:

调用numpy模块先完成数据定义,取自变量最大值为t_max;

然后定义一个行数和列数都是t_max的正方形矩阵;

正方向矩阵内部的所有数据都是0;

通过调用imshow()函数,直接把矩阵数据转换成了图像,图像的竖直和水平像素是t_max,每一个像素点的BGR都是0;

在电脑屏幕上,我们会看到黑色的窗口,这是一个灰度图;

通过调用imwrite()函数,把灰度图像保存下来。

图像为:

图1

点击保存下来的image.jpg图像,看到其属性为:

图2

在pycharm编辑器底部,我们看到的输出为:

图3

这个t_max=580成功转化为图像的竖直和水平像素。

【3】总结

掌握了用python+opencv+numpy创建纯黑灰度图的技巧。

 


网站公告

今日签到

点亮在社区的每一天
去签到