参考网站:
http://blog.csdn.net/poem_qianmo/article/details/20537737
1、Opencv的命名空间
在写简单的Opencv程序的时候,如下是标配;
#include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv;
2、Mat类型
主要用来存放图像的数据结构
Mat myMat= imread("dota.jpg");
3、imread函数
用来读取图像的,其原型:
Mat imread(const string& filename, intflags=1 );
第一个参数:图片路径名
第二个参数:自带缺省值1
CV_LOAD_IMAGE_UNCHANGED(-1,忽略)
CV_LOAD_IMAGE_GRAYSCALE(0,图像转换成灰度1)
CV_LOAD_IMAGE_COLOR(1,彩色)
CV_LOAD_IMAGE_ANYDEPTH(2)
CV_LOAD_IMAGE_ANYDEPTH(4)
Mat image0 = imread ( "boy.png" , CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR );//载入最真实的图像 Mat imagel = imread ( "boy.png" , 0); //载入灰度图 Mat image2 = imread ( "boy.png" ,199 ); //载入3通道的彩色图像 Mat image3 = imread ( "boy.png"); //载入3通道的彩色图像
4、namedWindow函数
void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );
第一个参数:窗口的命名
第二个参数:WINDOW_NORMAL(没有限制)
WINDOW_AUTOSIZE(自动调整,不能手动,默认值)
WINDOW_OPENGL(窗口创建的时候便会支持OpenGL)
namedWindow("【4】原画+logo图");
5、imshow函数
显示一幅图像
void imshow(const string& winname, InputArray mat);
第一个参数:填需要显示的窗口标识名称
第二个参数:填需要显示的图像
imshow("【4】原画+logo图",image);
6、imwrite函数
输出图像到文件,其声明为:
bool imwrite(const string& filename,InputArray img, const vector<int>& params=vector<int>() );
第一个参数:填需要写入的文件名,带上后缀
第二个参数:填一个Mat类型的图像数据
第三个参数:一般不用填
imwrite("我喜欢打dota2 .jpg",image);
一个综合的示例:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main( )
{
//-----------------------------------【一、图像的载入和显示】--------------------------------------
// 描述:以下三行代码用于完成图像的载入和显示
//--------------------------------------------------------------------------------------------------
Mat girl=imread("girl.jpg"); //载入图像到Mat
//namedWindow("【1】动漫图"); //创建一个名为 "【1】动漫图"的窗口
//imshow("【1】动漫图",girl);//显示名为 "【1】动漫图" 的窗口
//-----------------------------------【二、初级图像混合】--------------------------------------
// 描述:二、初级图像混合
//-----------------------------------------------------------------------------------------------
//载入图片
Mat image= imread("dota.jpg",199);
Mat logo= imread("dota_logo.jpg");
//载入后先显示
//namedWindow("【2】原画图");
//imshow("【2】原画图",image);
//namedWindow("【3】logo图");
//imshow("【3】logo图",logo);
//定义一个Mat类型,用于存放,图像的ROI
Mat imageROI;
//方法一
imageROI=image(Rect(800,350,logo.cols,logo.rows));
//方法二
//imageROI=image(Range(350,350+logo.rows),Range(800,800+logo.cols));
//将logo加到原图上
addWeighted(imageROI,0.5,logo,0.3,0.0,imageROI);
//显示结果
namedWindow("【4】原画+logo图");
imshow("【4】原画+logo图",image);
//-----------------------------------【三、图像的输出】--------------------------------------
// 描述:将一个Mat图像输出到图像文件
//-----------------------------------------------------------------------------------------------
//输出一张jpg图片到工程目录下
imwrite("我喜欢打dota2 .jpg",image);
waitKey();
return 0;
}
