opencv初学
来源:互联网 发布:传奇归来网络传输异常 编辑:程序博客网 时间:2024/05/17 08:34
自今天开始学习OpenCV。
先了解一下OpenCV这个开源库。OpenCV全称:Open Source For Computer Vision Library,它是一个跨平台的计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它的应用领域有图像处理、视频处理、人脸识别、运动跟踪、机器视觉等等,在以后的工作和学习中必然会长期与它打交道。所以,学好opencv对于我以后的工作能起到事半功倍的效果。
第一个程序
对于我来说,学习opencv主要就是用来对视频图像的处理,所以,必要学会图像的读入、显示、存储,以及对图像矩阵的一系列操作。所以第一个程序就从读取图像开始。
读取图像文件,opencv中有两种方式。一种采用IplImage* 和cvLoadImg,还有一种是采用cv::Mat和cv::imread。两种方式有明显区别,前者取自C的函数库,后者是C++的对象读取。在网上搜了一下,前者需要随时注意内存泄露问题,建议是不到万不得已,还是用C++好。果断放弃第一个,采用第二个。自此始,以后多用C++的库。第一个程序,附上代码:
#include "StdAfx.h"
#include <iostream>
#include <fstream>
#include <opencv2\opencv.hpp>
#include <time.h>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
Mat image;
image = imread("E:\\a.jpg");
imshow("源图像",image);
waitKey(0);
Mat subimage = Mat(image,Rect(image.cols/2,image.rows/2,image.cols/2,image.rows/2));
imshow("子图像",subimage);
waitKey(0);
}
代码执行后显示两个图像,第一个图像为a.jpg,第二个图像是第一个图像的右下角四分之一。
代码中需要加入waitKey(0),要不然图像看不到。Mat的构造函数可以用来截取子图像。
- opencv初学
- 初学opencv
- 初学opencv
- opencv初学
- opencv初学(一)
- OpenCV 初学杂记
- 初学OpenCV札记
- 初学opencv(一)
- 初学opencv-图像金字塔
- 初学opencv-阈值化
- 初学opencv-拉普拉斯变换
- 初学opencv-Canny算子
- 初学opencv/基本操作
- 初学opencv/边缘检测
- 初学opencv/特征匹配
- 初学opencv/直方图
- 初学opencv/形态学处理
- 初学opencv/滤波器
- 解决Mysql中文乱码问题
- python项目练习七:自定义公告板
- ScrollView嵌套ListView只显示一行
- python项目练习八:使用XML-RPC进行远程文件共享
- 深刻理解Python中的元类(metaclass)
- opencv初学
- UVA 10721Bar Codes(dp)
- POJ 3683 Priest John's Busiest Day (2 - SAT) - from lanshui_Yang
- 利用nfs挂在根文件系统
- linux下mysql数据库的rpm安装步骤及常见问题的解决
- python项目练习九:文件共享2-GUI版本
- socket 套接字编程笔记——IP地址转换
- Spring中BeanFactory、ApplicationContext区别
- python项目练习十:DIY街机游戏