opencv的安装十分简单,在配置好python的环境下在命令行输入pip install opencv-python(若在linux环境下需注意pip的版本是pip还是pip3)如下图,若以安装过,就会出现一下所示。
首先我们需要对图像有一个简单的认识,每一幅图像都是一个大矩阵,矩阵上的每一个点就是像素点。openCV提供了imread()函数可以用来读取图像,如下所示:
首先我们准备一张图像test.png.然后新建python文件并放在同一个目录下(主要是为了让python可以读取到这个文件),python文件中代码如下
import cv2 img = cv2.imwrite('test.png', 0) ''' 0的含义就是表示该图像以灰度模式加载进来 区分黑白图像,灰度图像和彩色图像(rgb) 黑白图像只有黑白两个颜色,灰度图像除了黑白,还有黑白之间的不同深度的灰色颜色 彩色图像就是平时所说的rgb图像 imread()函数里边0表示灰度图,1表示彩色 ''' print(img)
我们可以看到运行结果
result
就是一个巨大的矩阵,我们看矩阵(1,1)位置表示像素值是168
下面我们打印img[0][0]
0,0就是表示的矩阵(1,1)的位置的像素值168.
同样的流程我们用彩色模式加载一次
结果有点长,我复制出来
[[[249 182 59] [250 182 59] [250 182 59] ... [251 249 232] [252 250 233] [250 250 233]]#这是第一行的数据 [[247 180 58] [248 181 58] [249 182 60] ... [252 251 232] [253 251 232] [251 251 232]]#这是第二行的数据 [[248 180 60] [249 182 59] [250 182 62] ... [254 253 232] [254 253 232] [253 253 232]]#这是第三行的数据 ... #此处省略了n行 [[156 125 92] [161 123 92] [167 127 96] ... [111 117 120] [162 168 171] [133 138 139]]#倒数第三行数据 [[205 176 142] [216 185 156] [207 175 149] ... [118 126 130] [135 143 147] [ 78 83 86]]#倒数第二行数据 [[225 209 192] [219 206 195] [220 212 193] ... [158 163 172] [130 133 142] [161 162 166]]]#倒数第一行数据
可以看到,这次每一个像素点都成了三个数,他们分别表示bgr(这里要千万注意是和RGB反过来的BGR),也就是我们平时所说的rgb图像,我们通过打印来分析一下
可以看到结果分别对应前三行的第一个像素的结果
openCV还提供了imshow()方法来显示图像,以及imwrite()方法来存储图像,下面我们分别以灰度和彩色的形式,来展示一下图像。
imwrite()则是把图片保存起来,用法如下
cv2.imwrite('test2.png', img)
附注:关于imgread()和imwrite()的小用法之----图像格式之间的转换,请参考python之png与jpg之前的转换