参考网站:
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; }