Opencv3从头开始(一)图像读取、保存、显示
趁有时间把浅墨大佬的opencv入门重新理解一下,从头开始,有一起的小伙伴欢迎加入哦。
主要内容为实战代码,带有部分理解。
当然这次特地带上了仓老师一起学习。
标配框架
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]){
Mat image;
waitKey(0);
return 0;
}
Mat类用于定义一个矩阵变量,常用于存储图像,也就是说,读取图像前必须要定义一个Mat类中。
图像读取
imread内有两个参数,默认为1,即默认显示3通。当修改为0时,为灰度图像。
Mat image,image_1;
image=imread("仓老师.jpg");
image_1=imread("仓老师.jpg",0);
窗口定义
namedWindow设置窗口标识和窗口类型
namedWindow("image",CV_WINDOW_NORMAL);//可以改变窗口的大小
namedWindow("image_1",CV_WINDOW_AUTOSIZE);//自动调整窗口,不能手动改变
图像显示
imshow有两个参数,一是窗口标识名,二是显示图像
imshow("image",image);
imshow("image_1",image_1);
关闭窗口
destroyWindow("image");
destroyAllWindows();
保存图片
imwrite("gray_cang.jpg",image_1);
给仓老师加个man?
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]){
Mat image,image_1;
//图像显示
image=imread("仓老师.jpg");
image_1=imread("man.jpg");
//namedWindow("image",CV_WINDOW_NORMAL);
//namedWindow("image_1",CV_WINDOW_AUTOSIZE);
//imshow("image",image);
//imshow("image_1",image_1);
resize(image_1,image_1,Size(100,100));
Mat image_roi;
image_roi=image(Rect(400,400,image_1.cols,image_1.rows));
addWeighted(image_roi,0.8,image_1,0.3,0.2,image_roi);
imshow("add",image);
// destroyWindow("image");
// destroyAllWindows();
//imwrite("cang.jpg",image_1);
waitKey(0);
return 0;
}
评论(0)
您还未登录,请登录后发表或查看评论