澳门新蒲京娱乐

新蒲京娱乐场777 14
做ppt自己做和找模板哪个更好,职场新人怎样学习制作ppt
新蒲京官方下载 1
不会重叠

接口使用OpenCV的方法,应用于图像的简单变换

一、在 Anaconda2 中配置 OpenCV

在那壹章里,大家将学到怎么着去采取OpenCV来做一些妙趣横生的图像几何转变。当大家上学此前,大家须求来安装OpenCV-Python的费用情况,同一时间安装一些主要的工具和程序包。
当您读完这章,你将学会:

解压
opencv,增多种类处境变量,Computer–>右键属性–>高端系统设置–>情状变量–>系统变量–>编辑path–>增添F:\Program Files (x86)\opencv-3.2.0-vc14\build\x64\vc14\bin

  • 如何设置OpenCV-Python的支付碰着
  • 怎样读取、展现并蕴藏图像
  • 哪些更改分歧的水彩标准
  • 怎么使用有的变型如转变、变化、缩放等
  • 怎么着将仿射、投影的变动选拔于图像的有意思的几何转变

拷贝 opencv/build/python/2.7/x64/cv2.pyd 到 Anaconda2/Lib/Site-packages/

设置OpenCV-Pyhon的支出条件

下边让我们一道来看一下怎么着在分歧的连串下安装OpenCV-Pyhon的开支条件。

只顾:从地方python/2.7方可观望,opencv 官方的 python 接口只帮忙Anaconda2的版本 ,要是您装的是 Anaconda三的话,能够伸开cmd,然后推行conda install -c
opencv3;

Windows

为了拿走OpenCV-Python的开销情状并且使它能够周密运转,我们须求做一些备选:

  1. 第壹你要做的事安装Python:显著你的计算机上安装了2.7.x版本的Python。尽管你从未,你能够从底下这一个网站里面获得它:
    https://www.python.org/downloads/windows/
  2. 接下来安装NumPy:在Python中,NumPy是贰个强有力的数值总结程序包。在这一个程序包里有许多庞大的函数和办法。NumPy+OpenCV-Python的合营10分有力,由此大家会平日利用那几个程序包。你能够在这一个网站中安装新型的版本:
    https://sourceforge.net/projects/numpy/files/NumPy/
    将那么些程序包安装到它们暗中同意的路径上。安装好这几个程序包之后,大家须要规定它们是或不是健康办事。展开Python的条件并输入:
    >>> import numpy
    举例平常运作,则不会抛出其余不当。做完这步之后,你需求下载最新的OpenCV版本,地址是:http://opencv.org/downloads.html(译者注:请下载OpenCV二.x.x的版本,而非下载
    OpenCV三.x.x的。)
    下载完之后安装,我们须求做一些之类的改造:
    1.找到opencv/build/python/2.7
    二.你将会看到3个cv贰.pyd的公文。复制那个文件到
    C:/Python27/lib/sitepackages其一路子下。
    做完事后,让大家来规定一下OpenCV是不是足以运作。张开python编辑器,输入上边包车型地铁代码:
    ** >>> import cv2**
    只要你未曾见到其余不当,评释已经设置完结,你就能够利用OpenCV-Python了。

也足以参照他事他说加以考查此文章张开 Anaconda三的安插

Mac OSX

为了设置OpenCV-Python的开销景况,大家需求选拔Homebrew。Homebrew是三个有力的主次包管理器,它将支持你安装美妙绝伦的库到你的类别上。假设您的处理器并不曾设置Homebrew,张开终端,你能够运转上面包车型大巴指令来设置:
$ ruby -e “$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)”

哪怕OSX的系列现已集成了Python,大家照旧要用Homebrew来安装Python以利于我们接纳。这里的本子叫做brewed
Python。安装完Homebrew之后,张开终端并输入:
$ brew install python
以此操作会自动的设置pip。pip是二个主次包管理工科具特意用来安装Python的先后包,大家将用它安装其余的程序包。大家先来分明Python是不是足以干活。张开你的终端并输入:
$ which python
您将要极限上见到/usr/locol/bin/python。(注,usr是你和煦的微型Computer用户名称)那象征你利用的是brewed
Python而不是系统自带的。安装好brewed
Python之后,下一步大家必要丰裕三个OpenCV所在的商旅,homebrew/science。张开终端并输入:
$ brew tap homebrew/sicence
规定NumPy是不是安装,假设未有,输入:
$ pip install numpy
下一步安装OpenCV。在巅峰上输入:
$brew install opencv –with-tbb –with-opengl
现行反革命OpenCV已经安装到了你的Computer上,你能够在
/usr/local/Cellar/opencv/2.4.9的门路上找到。(译者注:不自然是二.四.九,也许是越来越高端的版本)可是此时你还无法利用OpenCV,你需求将Python与安装包的路线相称。在终极上运营上边包车型地铁通令:

$ cd /Library/Python/2.7/site-packages/
$ ln -s /usr/local/Cellar/opencv/2.4.9/lib/python2.7/site-packages/cv.pycv.py
$ ln -s /usr/local/Cellar/opencv/2.4.9/lib/python2.7/site-packages/cv2.socv2.so

安装达成以往。我们来验证OpenCV是或不是能够健康运行。展开python的本子编辑器并输入:
>>> import cv2
壹经未有出现其余错误,你就足以选拔OpenCV-Python了。

翻译注:这种办法相比较麻烦,小编在csdn上提供了1种方便人民群众的不2诀窍,http://blog.csdn.net/edwardlee123/article/details/52037447,遵照教程走完事后,在https://anaconda.org/
这些网站里
,输入opencv,找到相配你系统的版本,点击进入,会开采3个命令行,复制命令行到终点中,就可以使用opencv了。这种措施对windows和linux同样适用。切记,不要下载opencv三版本。

开拓 ipython 测试一下

Linux(for Ubuntu)

在始发在此以前,大家供给设置一些支撑文件。让大家运用下边包车型客车安装包处理器安装它们:

$ sudo apt-get -y install libopencv-dev build-essential cmake libdc1394-22libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-devlibavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-devlibmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-devlibvorbis-dev libxvidcore-dev x264 v4l-utils python-scipy python-pippython-virtualenv

设置好了那么些援助文件后,咱们须求创立OpenCV的 Python支持条件:

$ wget "https://github.com/Itseez/opencv/archive/2.4.9.tar.gz" -O./opencv/opencv.tar.gz
$ cd opencv
$ tar xvzf opencv.tar.gz -C .
$ mkdir release
$ cd release
$ sudo apt-get –y install make
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PYTHON_SUPPORT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -DWITH_EIGEN=ON -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -DWITH_V4L=ON ../
$ make –j4
$ sudo make install

让大家分明是还是不是早已安装成功,张开Python的剧本编辑器并输入:
>>>import cv2
万壹未有不当,注解安装成功。
您能够在上边包车型地铁网站中观望其余linux版本安装音讯:
http://opencv.org/downloads.html

import cv2
print(cv2.__version__)

读取,体现和积累图像

当今让我们看看哪些用OpenCV-Python加载叁个图像。创立八个first_program.py的文件并在你喜欢的编辑器中展开,(译者用的是pycharm)。在工程文件夹下创立几个文书夹命名字为images并明确文件夹中有个.jpg格式的图形。
做完事后,在python文件中写入如下代码:

import cv2
img = cv2.imread('.input.jpg')
cv2.imshow('Input Image',img)
cv2.waitkey()

运作该程序,你将会在一个新的窗口中看出这张图纸。

图片 1

2、OpenCV 基础知识

图像颜色空间

在管理器视觉和图像管理中,颜色空间指的是团体颜色的实际方法。颜色空间实在是两件事的组合:颜色模型和照耀效用。大家想要颜色模型的因由是因为它帮忙大家选拔元组表示像素值。映射函数将颜色模型映射到能够象征的享有望颜色的成团。
在大家的选用个中,有那么些不等的水彩空间能够使用,常用的有帕杰罗GB、YUV、HSV、Lab等等。不相同的颜色空间有所分裂的独到之处。在OpenCV,我们选择了缓和实际难点的常用的多少个颜色空间。接下来,大家会看那多少个颜色空间,看看它们各自提供了什么音讯:

  • RGB:OdysseyGB只怕是最风靡的水彩空间了。它表示了红、绿、蓝。在这几个颜色空间中,每一种颜色都表示为橄榄黄、暗灰、雾灰的加权组合。由此,每种像素值被代表为对应于革命、茶色和深红的多少个数字的元组。本白、水草绿和银色的值都在0~255中间。
  • YUV:就算奇骏GB在大多使用上壹度丰富好了,但是在现实应用中,它如故有那多少个局限性。大家先河思量差别的不二等秘书诀来分别从颜色消息中分离出强度新闻。由此,他们提议了“YUV”颜色空间。Y表示亮度或强度,U
    /
    V通道表示颜色音讯。那在诸多行使中效能不错,因为人类视觉系统能很好的从音信中感知分裂的强度音讯。
  • HSV:事实证明,尽管YUV对于一些应用来讲依然相当不足好。事实注明,尽管YUV对于有个别应用来说依然远远不足好。所以大家开端思虑人类怎样对待颜色,并且想出了HSV颜色空间。HSV分别表示色调(hue)、饱和度(saturation)和值(value)。那是3个圆锥形系统,大家分别二种最关键的颜色属性,并动用分歧的通道代表它们。那与人类视觉系统如何晓得颜色密切相关并且使得大家在管理图像上有了很大的面面俱到。

一. 读取、展现和写入图像

倒车两种差别的水彩空间

思虑到独具的颜料空间,OpenCV提供了大约有190种的改变选项。借使想查看全体可用标记的列表,请到Python
shell并输入以下内容:
>>> import cv2
>>> print [x for x in dir(cv2) if
x.startswith(‘COLOR_’)]

你就要OpenCV中见到可用来从二个颜色空间更改成另一个颜料空间的选项列表。大家大致能够将其余颜色空间调换到任何别的颜色空间。首先,大家来看怎么将一张彩色图转化为灰度图:

import cv2
img = cv2.imread('.input.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Grayscale image', gray_img)
cv2.waitKey()

在这里,大家选取cvtColor函数在颜色空间之间开始展览转变。第二个参数是输入图像,第三个参数钦赐颜色空间改动。你能够动用上面的口舌将图像转化成YUV颜色空间:
yuv_img = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
图像将如下图所示:

图片 2

yuv.jpg

那看起来可能像原本图像的劣化版本,但实质上并不是这么。让我们讲明其四个通道:

cv2.imshow('Y channel', yuv_img[:, :, 0])
cv2.imshow('U channel', yuv_img[:, :, 1])
cv2.imshow('V channel', yuv_img[:, :, 2])
cv2.waitKey()

由于yuv_img是二个numPy数组,大家得以经过分割五个通道进行私分。倘诺你使用yuv_img.shape函数查看其形象,你会看出它是1个三个维度数组,其大小事是NUM_ROWS
x NUM_COLUMNS x
NUM_CHANNELS。所以倘若您运维了日前的代码,你会看到多个不一样的图像。Y通道如下所示:

图片 3

y_channel.png

Y通道基本上是贰个灰度图。让大家来看U通道:

图片 4

u_channel.png

终极,让大家看一下V通道:

图片 5

v_channel.png

在此间大家能够见到,Y通道基本上正是一张灰度图。它象征了图像的亮度值或然说强度值。而U和V代表了颜色音信。
接下去用下列代码将图像转化为HSV,看看会时有发生哪些:

hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imshow('HSV image', hsv_img)

图片 6

显示器快速照相 2017-04-20 上午三.0八.5玖.png

接下去,让我们分开通道:

cv2.imshow('H channel', hsv_img[:, :, 0])
cv2.imshow('S channel', hsv_img[:, :, 1])
cv2.imshow('V channel', hsv_img[:, :, 2])
cv2.waitKey()

运营上述代码之后,大家壹致会看到三个图像:
首先是H通道:

图片 7

h_channel.png

接下去是S通道:

图片 8

s_channel.png

最后是V通道:

图片 9

v_channel.png

那些案例能够提交你一个骨干的观点,怎么着选取OpenCV在颜色空间之间开始展览转变。你可以接纳越多的水彩空间来考查图象外观。我们将要紧接着的章节中商讨有关的颜色空间。

import cv2
import matplotlib.pyplot as plt
# 读取图像,第二个参数可以为1(默认读入彩图, 可省略), 0(以灰度图读入)
im = cv2.imread('empire.jpg', 1) # 函数imread()返回图像为一个标准的 NumPy 数组
h,w = im.shape[:2]
print h,w
# 显示图像,第一个参数是窗口的名字,其次才是我们的图像,窗口会自动调整为图像大小。
cv2.imshow('image', img)
cv2.waitKey(0) # 为防止图像一闪而过,无限期的等待键盘输入
cv2.destroyAllWindows() # 关闭所有图像
# 保存图像(必须设置保存图像的路径和扩展名)
cv2.imwrite('result.png', im)
# 使用 plt 显示图像(可显示像素坐标及像素值)、保存图像
plt.imshow(im, cmap='gray', interpolation='bicubic')
plt.show()
plt.savefig('figpath.png', bbox_inches='tight')

图像调换

在本节中,我们将研讨哪些转移图像。借使大家想在大家的参谋框架内活动图像。那在计算机视觉术语中,被叫做图像转变。接下来大家看哪样去贯彻图像转换:

import cv2
import numpy as np
img = cv2.imread('images/input.jpg')
num_rows, num_cols = img.shape[:2]
translation_matrix = np.float32([ [1,0,70], [0,1,110] ])
img_translation = cv2.warpAffine(img, translation_matrix, (num_cols,
num_rows))
cv2.imshow('Translation', img_translation)
cv2.waitKey()

运营上述代码之后,你将见到如下所示:

图片 10

显示器快速照相 2017-04-20 中午4.1贰.50.png

要精晓上述代码,大家必要明白变形的办事原理。转变进度基本上意味着我们要求通过改变X和Y坐标来运动图像。为此,大家要求树立三个之类所示的更改矩阵。

图片 11

25E2A428-AF5F-45EC-AA5C-BE8DAB44E18C.png

其中,txty的值指的是X和Y的平移值,即图像向右移动X个单位,向下移动Y个单位。所以大家得以行使warpAffine那几个函数创设了这么的矩阵来行使到大家的图像上。warpAffine中的第多少个参数是指生成的图像中的行数和列数。由于行和列的尺码与原本图像同样,因而获得的图像将被裁剪。原因是因为当大家利用转换矩阵时,输出中未有丰硕的空间。为了防止裁剪,大家得以这么做:
**img_translation = cv2.warpAffine(img, translation_matrix, (num_cols

  • 70, num_rows + 110))**
    1旦在大家的程序中替换相应的行,你将看到以下图像:

图片 12

显示器快速照相 2017-0四-20 早上四.47.二6.png

设若你想在更加大的图像画面其中移动图像;大家能够通超过实际行以下操作来做如此的作业:

import cv2
import numpy as np
img = cv2.imread('images/input.jpg')
num_rows, num_cols = img.shape[:2]
translation_matrix = np.float32([ [1,0,70], [0,1,110] ])
img_translation = cv2.warpAffine(img, translation_matrix, (num_cols + 70,
num_rows + 110))
translation_matrix = np.float32([ [1,0,-30], [0,1,-50] ])
img_translation = cv2.warpAffine(img_translation, translation_matrix,
(num_cols + 70 + 30, num_rows + 110 + 50))
cv2.imshow('Translation', img_translation)
cv2.waitKey()

运作代码之后,将显示下述图像:

图片 13

荧屏快速照相 2017-04-20 中午五.0陆.3陆.png

二. 颜色空间改动

在OpenCV 中,图像不是按古板的奥迪Q5GB 颜色通道,而是按BG奇骏 顺序(即昂科雷GB
的倒序)存储的。读取图像时默许的是BGTucson,可是还恐怕有一点点可用的转移函数。颜色空间的更动能够用函数cvtColor()
来兑现。

# 1.使用opencv读取并创建灰度图像,按 BGR 顺序
im = cv2.imread('empire.jpg')
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
# 2.使用matplotlib.image 读入并创建灰度图像,按 RGB 顺序
import matplotlib.image as mpl_img
im = mpl_img.imread('empire.jpg')
gray = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)
# Note: 注意1和2的区别在颜色转换代码
# 常用:cv2.COLOR_BGR2RGB、cv2.COLOR_GRAY2BGR、cv2.COLOR_BGR2HSV

叁. 在图像上画直线、矩形、圆、多边形(曲线)

画直线:cv2.line()

import cv2
# 读取图像,按 BGR 顺序
img = cv2.imread('empire.jpg')
# 传入图像、起点坐标、终点坐标、线的颜色(color)、线的厚度(thickness)
# color : Color of the shape. for BGR, pass it as a tuple, eg: (255,0,0) for blue. For grayscale, just pass the scalar value.
# thickness : if -1 is passed for closed figures like circles, it will fill the shape, default thickness = 1.
img = cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)

画矩形:cv2.rectangle()

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图