欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > python学opencv|读取图像(八)用numpy创建纯黑灰度图

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

2025/2/25 20:08:51 来源:https://blog.csdn.net/weixin_44855046/article/details/144389400  浏览:    关键词:python学opencv|读取图像(八)用numpy创建纯黑灰度图

【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创建纯黑灰度图的技巧。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词