OpenCV学习指南

OpenCV学习指南

这个OpenCV教程是供初学者入门的基础知识。在本指南中,您将学习使用Python使用OpenCV库进行的基本图像处理操作。虽然本教程针对刚入门图像处理和OpenCV库的初学者,但即使您有经验,我还是鼓励您阅读它。快速复习OpenCV基础知识也将帮助您完成自己的项目。

在系统上安装OpenCV和Imutils

第一步是在系统上安装OpenCV,并设置新的OpenCV开发环境,然后通过pip安装imutils软件包。如果没有安装opencV,ubuntu下可通过下列命令安装:`

使用pip将OpenCV安装到您的Ubuntu系统中

$ sudo pip install opencv-contrib-python

使用pip将OpenCV安装到虚拟环境中

$ pip install virtualenv virtualenvwrapper

在我们继续之前,您首先需要使用nano、vim或emacs打开~/bashrc文件,并将下面的命令行追加到末尾:

vi ~/.bashrc
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
$ source ~/.bashrc
$ mkvirtualenv cv -p python3
$ pip install opencv-contrib-python
在系统上安装Imutils
$ pip install imutils

加载并显示图像


图1:使用Python学习OpenCV基础知识是从加载和显示图像开始的,这是一个仅需要几行代码的简单过程。
首先, 在您喜欢的文本编辑器或IDE中打开 opencv_tutorial_01 .py.

# import the necessary packages
import imutils
import cv2

# load the input image and show its dimensions, keeping in mind that
# images are represented as a multi-dimensional NumPy array with
# shape no. rows (height) x no. columns (width) x no. channels (depth)
image = cv2.imread("jp.png")
(h, w, d) = image.shape
print("width={}, height={}, depth={}".format(w, h, d))

# display the image to our screen -- we will need to click the window
# open by OpenCV and press a key on our keyboard to continue execution
cv2.imshow("Image", image)
cv2.waitKey(0)

运行结果为:

width=600, height=322, depth=3

访问单个像素

在这里插入图片描述
Figure 2: Top: grayscale gradient where brighter pixels are closer to 255 and darker pixels are closer to 0. Bottom: RGB venn diagram where brighter pixels are closer to the center.

什么是像素?

所有图像都由像素组成,这些像素是图像的原始构建块。图像由网格中的像素组成。640 x 480图像具有640列(宽度)和480行(高度)。具有这些尺寸的图像中有 640 * 480 = 307200 像素。
灰度图像中的每个像素都有一个代表灰度的值。在OpenCV中,有256种灰度(从0到255)。因此,灰度图像将具有与每个像素关联的灰度值。
彩色图像中的像素具有其他信息。在学习图像处理时,您很快就会熟悉几种色彩空间。为简单起见,我们仅考虑RGB颜色空间。
在OpenCV中,RGB(红色,绿色,蓝色)颜色空间中的彩色图像具有与每个像素(B ,G ,R ) 相关联的3元组 。
请注意,顺序是BGR而不是RGB。这是因为多年前首次开发OpenCV时,标准是BGR订购。多年来,标准现已成为RGB,但OpenCV仍保持这种“传统” BGR顺序以确保不存在现有代码中断。
在BGR 3元组的每个值的范围为 [ 0 ,255 ] 。OpenCV中RGB图像中的每个像素有多少种颜色可能性?这很容易: 256 * 256 * 256 = 16777216 。
既然我们已经确切知道什么是像素,那么让我们看一下如何检索图像中单个像素的值:

# access the RGB pixel located at x=50, y=100, keepind in mind that
# OpenCV stores images in BGR order rather than RGB
(B, G, R) = image[100, 50]
print("R={}, G={}, B={}".format(R, G, B))

如前所示,我们的图片尺寸为: 宽度= 600 ,高度= 322 ,深度= 3 。我们可以通过指定坐标访问数组中的单个像素值,只要它们在最大宽度和高度之内即可。
image[ 100 ,50 ] ,从位于像素产生BGR值的3元组 X = 50 和 ÿ = 100 (再次,注意,该高度是数行和宽度是数的列 )。如上所述,OpenCV以BG

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值