OpenCV解析视频图片

1、准备工作

添加OpenCV库后,包含头文件

#include “opencv2/imgproc/imgproc_c.h” 
#include "opencv2/opencv.hpp"  
using namespace cv;

2、读取图片文件并显示

//读取图片 
Mat img = imread(sPath); 
 
//在图片上画矩形   
rectangle(img,Point(0,0),Point(100,100),Scalar(0,255,0),2,1);  

//参数:图片,矩形某顶点,矩形某顶点对角线点,RGB颜色, 
//线条厚度(负数表示画矩形色块),线条类型,点坐标值小数点位数(默认为0) 
 
//线条类型 
enum LineTypes{ 
FILLED = -1, 
LINE_4 =  4, 
LINE_8 = 8, 
LINE_AA = 16//反锯齿 
}

//在图片上画矩形块
rectangle(img,Point(0,0),Point(100,100),Scalar(0,255,0),-1,1);  

//显示图片 
imshow("WindowName",img); 

3、对视频抽帧处理后保存

Opencv图像加水印

VideoCapture cap;//打开默认摄像头 VideoCapture cap(0)
cap.open(sPath);  
Mat img;  
Mat imgLogo = imread("./WaterMark.png"); 
Mat imgMask = imread("./WaterMark.png",0); 
int iWidth = cap.get(CAP_PROP_FRAME_WIDTH); 
int iheight = cap.get(CAP_PROP_FRAME_HEIGHT); 
double dFPS = cap.get(CAP_PROP_FPS); 
 
VideoWrite vw; 
vw.open("./Current.mp4",VideoWrite::fourcc('D','I','V','x'),fps,Size(iWidth,iHeight),true); 

while(cap.read(img)) 
{ 
	if(img.empty()) 
	{ 
 		return;
 	}
	 
	//图片加水印begin
	resize(imgLogo,imgLogo,Size(40,40)); 
	resize(imgMask ,imgMask ,Size(40,40)); 
 	Mat imgROI = img(Rect(img.cols - imgLogo.cols - 10,imgLogo.cols,imgLogo,rows)); 
 	imgLogo.copyTo(imgROI,imgMask); 
 	//图片加水印over 
 	
    imshow("WindowName",image);
    waitKey(); 
 	vw.write(img);

} 
 
 cap.release(); 
 vw.release(); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值