化州网站建设公司,深圳光明区住房和建设局官网,帮公司做网站运营,查网站怎么做的目录1.像素1-1.确定像素位置1-2.获取指定像素的像素值1-3.修改像素的BGR值2.用numpy模块操作像素2-1.创建图像1.创建黑白图像2.创建彩色图像3.创建随机图像2-2.拼接图像1.水平拼接hstack()方法2.垂直拼接vstack()方法1.像素 1.像素是构成数字图像的最小单位。每一幅图像都是由M…
目录1.像素1-1.确定像素位置1-2.获取指定像素的像素值1-3.修改像素的BGR值2.用numpy模块操作像素2-1.创建图像1.创建黑白图像2.创建彩色图像3.创建随机图像2-2.拼接图像1.水平拼接hstack()方法2.垂直拼接vstack()方法1.像素 1.像素是构成数字图像的最小单位。每一幅图像都是由M行N列个像素组成每一个像素存储一个像素值。比如灰度图像的像素值取值范围为[0, 255](取整)一共有256个像素等级/灰度级别。0为纯黑色255表示纯白色。 2.一个像素是一个具有一定面积的块而不是一个点像素的形状也不是固定的大多数情况下被认为是正方形但有时也可能是圆形或其它形状。 1-1.确定像素位置 由电脑自带的画图软件打开图片可查看图片水平方向和垂直方向的像素数量。如下图所示水平方向像素个数303垂直方向像素个数266。 像素的位置通常使用像素建立的HW坐标系表示如下图所示。 注意 1.水平像素个数是303但水平坐标是从0到302同理垂直坐标从0到265。你可以这样理解像素的左上角坐标像素的位置坐标。 2.像素坐标表示为(垂直方向坐标W, 水平方向坐标H)与我们以前学习xy坐标系中坐标表示(x, y)相反。 1-2.获取指定像素的像素值 1.一般来说彩色图片采用的都是RGB色彩空间在RGB色彩空间中存在三个通道。R通道、G通道和B通道其中R通道指的是红色通道G通道指的是绿色通道B通道指的是蓝色通道并且每个色彩通道都是在区间0~255内取值。 2.在RGB色彩空间中彩色图像的通道顺序是 R → G → B但是在OpenCV中RGB色彩空间被BGR色彩空间取代使得彩色图像的通道顺序变成了 B → G → R 。所以上图读取到的各通道值为B(204)→ G(208)→ R(209)。 3.BGR色彩空间的图像每3个数值表示一个像素这三个数值分别表示蓝色绿色和红色三种颜色的分量把每一种颜色分量所在的区域称作通道。即 RGB/BGR 色彩空间的图像用R、G、B 3个数值表示一个像素。 1-3.修改像素的BGR值 方式1像素赋值img[W, H] [B, G, R] 实例 方式2通道赋值img[W, H0或1或2] 0~255中的某个整数 实例 1.对于BGR色彩空间的图像当每个像素的B、G、R 3个数值相等时就可以得到灰度图像。其中BGR0为纯黑色BGR255为纯白色。 2.要想使改变后的像素保存到图片中最后要执行imwrite()方法。 2.用numpy模块操作像素 关于numpy的知识以后再更新也可以去网上搜索这里主要讲关于opencv的。 2-1.创建图像 在opencv中黑白图像实际上就是一个二维数组彩色图像是一个三维数组。数组中的每个元素就是图像对应位置的像素值。因此修改数组就是修改图像的像素(即修改图像)。所以创建一张图像其实就是创建一个数组。 1.创建黑白图像 创建黑色图像使用numpy提供的zeros()方法。 实例 创建白色图像法1.先创建纯黑图像再利用numpy的数组切片将所有像素值改为255法2.使用numpy的ones()方法再用数组乘法乘以255. 实例
2.创建彩色图像 与创建黑白图像的方法相比彩色图像创建时a.size多了个通道数为3b.数组切片多了一个维度c.数组乘法没区别 实例
3.创建随机图像 1.numpy的zeros()方法第一个位置参数就是size所以可以用位置参数而randint()方法的第二个位置参数不是size所以要用关键字参数。 2.综上numpy创建图像的方法主要有①numpy创建数组的内置方法②numpy的数组乘法③numpy的数组切片。 2-2.拼接图像 numpy提供了两种数组拼接的方法分别为hstack()方法和vstack()方法。hhorizontal水平的意思vvertical垂直的意思stack堆、叠的意思 1.水平拼接hstack()方法 语法格式array numpy.hstack(tup) 参数说明 array拼接生成的新数组。tup需要拼接的数组元组类型。 实例
2.垂直拼接vstack()方法 语法格式array numpy.vstack(tup) 参数说明 array拼接生成的新数组。tup需要拼接的数组元组类型。 实例 注意拼接是有顺序的是根据参数tup中的数组顺序拼接的。