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)
python生成1到100之间随机数运⾏以上代码的效果为:
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⽣成⼀个⾃定义纯⾊图教程就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论