opencv初学

自今天开始学习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的构造函数可以用来截取子图像。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值