CV笔记一:图片读取与保存,视频加载

图片加载与保存

#include
#include
#include
using namespace std;
using namespace cv;

int main(){
		string srcImgName = "xxx";
		//xxx是图片路径,可以读入,也可以最开始赋值。
		//以后出现的xxx都是路径名
		//为了方便,没有从main函数的argv获取。
		//main函数可以带两个参数:
		//argc:int型,记录输入个数
		//argv:vector,存储输入	
		string dstImgName = "xxx";//存储图片路径
		
		Mat srcImage;//Mat是个矩阵数据结构,用于存储读入图片;
		srcImage= imread(srcImgName,IMREAD_UNCHANGED);
		//读入图片,有两个参数
		//srcImgName:图片路径
		//第二个参数主要三种:
		//IMREAD_UNCHANGED:
		//IMREAD_GRAYSCALE:
		//IMREAD_COLOR:
		
		imshow("windowName",srcImage);
		//windowName是窗口名,默认以自适应模式显示(即按图片大小显示)
		//可以自己定义窗口,修改显示窗口模式
		
		Mat dstImage;//用于存储保存图片
		
		//对原图做灰度处理
		cvtColor(srcImage,dstImage,COLOR_BGR2GRAY);
		//cvtcolor有三个参数:
		//srcImage:原图
		//dstImage:修改后的图
		//颜色修改方式
		
		imwrite(dstImgName,dstImage);
		imshow("dst",dstImage);

		waitkey(0);
		//等待,参数是时间
		//0:代表一直等待到有按键
		//n:代表等待n ms或者等待到按键
		
		return 0;
}

为了便于理解,所以这么写代码,但是一般应该把数据定义放在一起,处理放在一起,这样格式化,代码美观。

视频加载

#include
#include
using namespace std;
using namespace cv;

int main(){
		VideoCapture capture("xxx");//Capture初始化直接读入视频

		//死循环,循环按帧播放图片,就形成了视频
		while(1){
				Mat frame;//图片帧
				capture >> frame;//从视频中按帧赋给图片帧
				
				//死循环退出条件,播放完毕时,图片帧为空,退出
				if(frame.empty()){
						cout << "播放结束" <

这个程序可以让我们更好的理解视频的原理:视频就是一系列图片。

写程序时注意判定条件,xxx这种路径,需要去检测是否读到了视频。

写死循环时,要注意写退出条件。

你可能感兴趣的:(OpenCV)