今天的学习很简单,对图像像素点的基本操作。
外卖知道一张图片是由很多像素点构成的。而机器视觉就是对这些像素点进行分析处理。像素点一般由坐标和RGB组成(opencv中是BGR)。
第零步,引用库,导入图片:
import cv2
import numpy as np
img = cv2.imread('watch.jpeg',cv2.IMREAD_COLOR)
第一步,提取一个像素点的颜色:
px = img[55,55]
print(px)
这里我认为一张图片通过imread()导入到变量img后变成了一个多维数组。而[55,55]是这个多维数组的前两个数,代表着坐标。后面的数则赋值给px,代表着颜色。
不出意外的话应该是这样的结果:
[255 255 255]
表示[55,55]坐标处的BGR颜色是(255,255,255)(白色)
第二步,改变一个像素点的颜色:
px = img[55,55]
print(px)
img[55,55] = [0,0,0]
px = img[55,55]
print(px)
结果是:
[255 255 255]
[0 0 0]
可以发现像素点的颜色已经改成(0,0,0)(黑色)
第三步,查看并改变一块区域的颜色:
px = img[100:150,100:150]
print(px)
img[100:150,100:150] = [0,0,0]
px = img[100:150,100:150]
print(px)
这个显示篇幅太长,就不贴结果了。如果之前没有问题的话,这里应该也不会出现问题。
一张图片主要由以下几个参数:
print(img.shape)
print(img.size)
print(img.dtype)
#下面是得到的结果
(800, 591, 3)
1418400
uint8
shape形状,图片的像素和颜色。
size尺寸,图片所占的内存。
dtype类型,图片的类型。