美文网首页程序员深度学习
计算机视觉 OpenCV (1)

计算机视觉 OpenCV (1)

作者: zidea | 来源:发表于2019-08-03 10:26 被阅读66次

人脸识别技术已经相当成熟,大家不会因此而感到惊奇。OpenCV 在图像处理相关的各个领域都良好的表现。


OpenCV 是一项图片处理的库,始于 Intel 随后得到 Willow Garage 支持,现在由 Itseez 来维护

  • 跨平台
  • 支持 C、C++ 和 python 等语言
  • 开源项目
  • 易于安装
    等特点。

在 OpenCV 我们更多的操作矩阵(Matrix)来实现对图片的修改。其实我们看到图片都是一个像素按行和列组成的二维矩阵,每个像素又都包含 R、G 和 B 等通道来保存图片信息。

提到矩阵我们就不得不提及一下 Numpy 这个好用的 python 操作数组的库。所有 OpenCV 的数组结构的数据都可以转换为 Numpy 中提供数组结构。

读取图片

官方提供下载资源

cv2.imread('lena.jpg',0)

第一个参数传递我们要读取的图片,第二参数控制加载图片的模式

  • cv2.IMREAD_COLOR (1) 表示加载图片保留颜色
  • cv2.IMREAD_GRAYSCALE (0) 表示加载图片仅保留灰度
  • cv2.IMREAD_UNCHANGED (-1) 加载图片保留透明等通道
img = cv2.imread('lena.jpg',0)
print(img)
[[163 162 161 ... 170 154 130]
 [162 162 162 ... 173 155 126]
 [162 162 163 ... 170 155 128]
 ...
 [ 43  42  51 ... 103 101  99]
 [ 41  42  55 ... 103 105 106]
 [ 42  44  57 ... 102 106 109]]

当 imread 方法没有找到图片文件,会返回 None 来代替数组

cv2.imshow('image',img)
cv2.waitKey(5000)
cv2.destroyWindows()

刚刚只是以数组形式输出了图片,我们还可以使用 imshow 方法来在屏幕上将图片显示出来,不过仅用 imshow 图片会一闪而过,可以使用 waitKey 来添加让在用户点击按键前一直显示图片,方法参数 5000 表示如果用户不做操作在 5 秒后也会关闭图片窗口。

写入图片

cv2.imwrite('lena_copy.png',img)

相关文章

网友评论

    本文标题:计算机视觉 OpenCV (1)

    本文链接:https://www.haomeiwen.com/subject/cwyddctx.html