OPencv图像读取_显示_保存
一.OpenCV图像处理系统组成:
OpenCV 主体分为五个模块,分别为CV、MLL,HighGUI、CXCORE,CVAux。OpenCV 的 CV 模块包含基本的图像处理函数和高级的计算机视觉算法。ML 是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI 包含图像和视频输入/输出的函数。CXCore 包含 OpenCV的一些基本数据结构和相关函数,CvAux 模块中一般存放一些即将被淘汰的算法和函数(如基于嵌人式隐马尔可夫模型的人脸识别算法),同时还有一些新出现的实验性的算法和函数(如背景和前景的分割)。CvAux 在 Wiki 中并没有很完整的文档,而在…/opencv/docs 子目录下的 CvAux 文档也不是很完整。CvAux 包含以下一些内容:
- 特征物体,它是一个模式识别领域里用于降低计算量的方法,本质上,依然是模板匹配。
- 一维和二维隐马尔可夫模型(HMM),它是一个基于统计的识别方法,用动态规划来求解。
- 嵌入式 HMM(一个父 HMM 的观测量本身也符合 HMM)
- 通过立体视觉来实现的动作识别
- Delaunay 三角划分、序列等方法的扩展
- 立体视觉
- 基于轮廓线的形状匹配
- 纹理描述
- 眼睛和嘴跟踪
- 3D跟踪
- 寻找场景中的物体的骨架(中心线)
- 通过两个不同视角的图像合成中间图像
- 前/背景分制
- 视频监控(请参考 Wiki 的 FAQ 获得更多资料)
摄像机标定的 C++类(C 函数和引擎已经在 CV 模块中)未来一些特性可能被合并到 CV 模块,还有一些可能永远留在 CVAux 中。
二.OpenCV图像基本操作示例程序:
示例程序一:
# encoding:utf8
import cv2
img = cv2.imread('dog.jpg')
cv2.imshow('src', img)#---显示原图
hsv_img =cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #---转为HSV图像
cv2.namedWindow('hsv', cv2.WINDOW_AUTOSIZE)#---创建hsv窗口
cv2.imshow('hsv',hsv_img) #---显示hsv图像
cv2.imwrite("hsv.jpg",hsv_img) #---保存hsv图像
cv2.waitKey(0) #---等待按键按下
cv2.destrovAllwindows () #---销毁所有窗口
示例程序二:
#encoding:utf8
import cv2
#图像的基本操作
img1 = cv2.imread('C:/Users/Administrator/Desktop/dog.jpg', 1)
img1_0 = img1[..., 0]
img1_1 = img1[..., 1]
img1_2 = img1[..., 2]
cv2.imshow('img1_0',img1_0)
cv2.imshow('img1_1',img1_1)
cv2.imshow('img1_2',img1_2)
print(img1.shape)
cv2.waitKey(0)
三.代码函数详解
示例程序一:
import cv2:导入cv模块
img = cv2.imread(“1.jpg”) #—读取图像 imread(" r") 其中r为照片路径。
cv2.imshow(“src”,img) #—显示原图 ,img为上方输入路径图像,src为显示图像窗口名字。
hsv img = cv2.cvtColor(img,CV2.COLOR BGR2HSV) #—转为HSV图像 CV2.COLOR BGR2HSV为将RGB图像转为HSV格式照片。
cv2.namedWindow(‘hsv’, cv2.WINDOW_AUTOSIZE)#—创建hsv窗口, cv2.WINDOW_AUTOSIZE为自适应窗体大小。
cv2.imshow(‘hsv’,hsv_img) #—显示hsv图像
cv2.imwrite(“hsv.jpg”,hsv_img) #—保存hsv图像,"hsv.jpg"保存照片名称和格式,hsv_img需要保存的照片
cv2.waitKey(0) #—等待按键按下
cv2.destrovAllwindows () #—销毁所有窗口
示例程序二:
img1.shape为 (366, 457, 3),表示图像大小为366*457,有3个通道,分别为BGR。
其中
img1_0 = img1[…, 0]
img1_1 = img1[…, 1]
img1_2 = img1[…, 2]
分别是将照片第一通道,第二通道,第三通道单独显示。
本文有引用《学习OPencv中文版》书籍介绍