OpenCV01

一 简介

opencv (open source computer vision library)是一个基于开源免费发行的跨平台计算机视觉库,可以运行在linux,window,Android,iOS等操作系统,轻量高效,由一系列的C函数和C++函数类构成,同时提供了python,ruby,matlab等接口,实现了图像处理和计算机视觉的诸多通用算法。由一些模块组成。

opencv中的build和source文件夹

build包括头文件include和x86和bin中的动态链接库dll,如果后面有d是debug版本,如果没有是release模块。

头文件和模块是有点类似的,引入头文件导入dll动态链接库。lib是静态链接库,和动态是一一对应的。

二 安装

1. 首先配置环境变量,就运行前自动加载dll,配置opencv2和opencv3的,D:opencv2opencvuildx86vc11in;D:opencvuildx86vc11in

2. 配置VS和opencv的环境依赖等

a.单次项目配置

项目——项目属性——配置属性

VC++目录——1>包含目录(D:opencvuildinclude;D:opencvuildincludeopencv;D:opencvuildincludeopencv2;$(IncludePath))——2>库目录(D:opencvuildx86vc11lib;$(LibraryPath))

链接器——输入——附加依赖项 注意是debug版本的dll

b.一次配置依赖

视图——属性管理器——

读入图像


cv2.imread()读入图像

第二个参数是要告诉函数应该如何读取这幅图片

  • cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略, 这是默认参数。

  • cv2.IMREAD_GRAYSCALE:以灰度模式读入图像 

cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫 秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果 按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没 有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限 期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否 被按下,这个后面我们会接着讨论。

cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果 你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删 除的窗口名。 

tips:

一 种 特 殊 的 情 况 是, 你 也 可 以 先 创 建 一 个 窗 口, 之 后 再 加 载 图 像。 这 种 情 况 下, 你 可 以 决 定 窗 口 是 否 可 以 调 整 大小。使用到的函数是 cv2.namedWindow()。初始设定函数 标签是 cv2.WINDOW_AUTOSIZE。但是如果你把标签改成 cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大, 或者要添加轨迹条时,调整窗口大小将会很有用 

在python里导入OpenCV包

import numpy as np

import cv2

读取并显示图像(bmp,jpg,png,tiff)

img=cv2.imread()

创建一个窗口

cv2.namedWindow("Image",cv2.WINDOW_NORMAL )

在窗口中显示图像

cv2.imshow("Image",img)

在窗口显示时

 cv2.waitKey(0)

关闭所有窗口

cv2.destroyAllWindows()

复制图片,保存图片格式等相关问题

import cv2
import numpy as np

img=cv2.imread("/Users/guiyanan/Desktop/xjtlu.jpg")

#get new image
emptyImage = np.zeros(img.shape, np.uint8)

#copy get a new image
emptyImage2 = img.copy()

#change the color of image
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#emptyImage3[...]=0 transmit black blank image

cv2.imshow("EmptyImage", emptyImage)
cv2.imshow("Image", img)
cv2.imshow("EmptyImage2", emptyImage2)
cv2.imshow("EmptyImage3", emptyImage3)

# for jpeg third is quality of image for png zip degree
cv2.imwrite("/Users/guiyanan/Desktop/xjtlu1.jpg", img,[int(cv2.IMWRITE_JPEG_QUALITY),5])

cv2.imwrite("/Users/guiyanan/Desktop/xjtlu2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])


cv2.imwrite("/Users/guiyanan/Desktop/xjtlu3.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])

cv2.imwrite("/Users/guiyanan/Desktop/xjtlu4.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

cv2.waitKey (0)
cv2.destroyAllWindows()

原文地址:https://www.cnblogs.com/gzoof/p/6699445.html