当前位置: 首页 > 编程笔记 >

python+opencv3生成一个自定义纯色图教程

西门智
2023-03-14
本文向大家介绍python+opencv3生成一个自定义纯色图教程,包括了python+opencv3生成一个自定义纯色图教程的使用技巧和注意事项,需要的朋友参考一下

一、

图像在计算机中存储为矩阵。矩阵上一个点表示一个像素。若矩阵由一系列0~255的整数值组成,则表现为灰度图。便于理解,以下贴出代码:

import cv2
import numpy as np
img = np.ones((3,3),dtype=np.uint8)#random.random()方法后面不能加数据类型
#img = np.random.random((3,3)) #生成随机数都是小数无法转化颜色,无法调用cv2.cvtColor函数
img[0,0]=100
img[0,1]=150
img[0,2]=255
cv2.imshow('img',img)

cv2.waitKey(0)

运行以上代码的效果为:

img[0,0]表示矩阵第一行第一列的元素,其值为100。以此类推。由图可以看出,值越大,灰度越小,显示越接近白色。(也可以理解为亮地越多。0表示啥也不亮,黑色;255表示全亮,白色)

二、

以上是单通道的效果,接下来将上图转化为3通道BGR图 ,每一个像素点由一个三元数组表示。其中bgr_img[]0,0,0]表示第一行(y)第一列(x)B通道的值;bgr_img[100,200,1]表示第101行(y)第201列(x)G通道的值。

注:第三个参数表示BGR通道,取值范围为0~2

便于理解,以下贴出代码:

bgr_img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
cv2.imshow('bgr_img',bgr_img)
bgr_img[:,:,0] = 0
bgr_img[:,:,1] = 255
bgr_img[:,:,2] = 255
cv2.imshow('bgr_img2',bgr_img)
cv2.waitKey(0)

以上代码和第一部分结合起来运行,运行后效果如下:

这篇python+opencv3生成一个自定义纯色图教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我在Python中使用matplotlib在一个数组中,其浮点数介于0到1之间。 我正在用imshow显示此数组,我试图创建一个与Greens相同的自定义cmap,但是当一个单元格变为0时,我希望能够将该值映射为红色,而其余光谱不变。 如果有人更熟悉matplotlib能够帮助我,我将不胜感激! 例如,我将如何编辑此脚本,以使矩阵中的零值显示为红色? 问题答案: matplotlib中

  • 我需要找到一种更好的方法来从给定的自定义颜色生成阴影颜色用于主题目的。到目前为止,我找到了一种通过降低给定颜色的不透明度来做到这一点的方法,如下所示。所以我可以强调颜色颜色和给定颜色的褪色颜色到这个函数。 但由于我降低了颜色的不透明度,所以当使用时,它会显示小部件下面的内容。 是否有任何方法可以获得颜色的褪色值?

  • 如果有人能帮我解决这个问题,我已经为此挣扎了好几天了。我有一个表数据,其中有一列“结果”,值为“高”、“中”或“低”。我正在尝试使用plotly创建一个饼图,通过计算数据集中高、中、低的数量,并尝试为每个类别指定一种颜色。下面是我的代码。我试过用cols1和cols2作为我的标记,还有其他几种方法,但似乎都不管用。请记住,这是一个动态表,因此可能会出现没有高或无中等的情况。因此,我不能使用列表(c

  • 我有一个自定义文件,其中包含我所有图像的路径及其标签,我在一个数据框中加载使用: MyIndex有两列感兴趣的ImagePath和ClassName 接下来我做一些训练测试拆分和编码输出标签为: 我面临的问题是一次性加载的数据太大,无法放入当前的机器内存,因此我无法处理完整的数据集。 我曾尝试使用datagenerator,但不想遵循它遵循的目录约定,也无法消除增强部分。 问题是,是否有一种方法可

  • 我想在pyqt GUI中为matplotlib(python)中的多个绘图创建一个自定义图例。(pyqt建议不要使用pyplot,因此必须使用面向对象的方法)。 网格中将显示多个绘图,但用户可以定义要显示的绘图数量。我希望图例显示在所有绘图的右侧,因此我不能简单地为最后绘制的轴创建图例。我希望为整个图形创建图例,而不仅仅是最后一个轴(类似于pyplot中的plt.figlegend)。 在我在别处

  • 有没有办法为自定义生成的代码? 考虑以下简单类: 我希望Lombok为生成Setter,就像我在上面的示例中实现的那样。这应该只在用注释的类和作为的属性上完成。其他属性的Setter,在本例中应该像往常一样生成。 是否有办法根据这些标准定制Setter代码的生成?