简简单单,做自己的视频加密软件


昨天刚开始学习OpenCV,老师要求的挖,两天完成个视频加密的小东东,还好在学长的帮助下搞定了,其实相当Easy




贴下主要代码:



VOID EncryptVideo(char * szPath,char *outputPath,int key,BOOL bEncrpty)
{
	int nPos=0;

	IplImage*      current_frame = 0; 
	IplImage*      masked_frame = 0;
	IplImage*      tem_frame=0;

	CvCapture*      cap = 0;          //读视频
	CvVideoWriter*  wrt = 0;          //写视频

	//cvNamedWindow("image show", 1);  
	//cap= cvCaptureFromCAM(0);//捕获摄像头

	cap=cvCaptureFromAVI(szPath);

	int n=0;
	for( ;;)
	{ 
		if(!cvGrabFrame(cap))
			break;
		current_frame  = cvRetrieveFrame( cap);
		if (n==0)
		{
			wrt = cvCreateVideoWriter(outputPath,-1,15, cvGetSize(current_frame),1); 
			n++;
		}
		
		if(!current_frame || !wrt )
			{
					MessageBox(NULL,"bad video","error",MB_OK);
				ExitProcess(0);
			}
		//加密过程
		nPos=(current_frame->widthStep)*(current_frame->height);
		//tem_frame=current_frame;
		for (int n=0;n<nPos;n++)
		{
			current_frame->imageData[n]=(current_frame->imageData[n])^(key);//这里只是简单的对数据进行异或,您可以去设计更精巧的加密算法	
			///int temp=(current_frame->imageData[n])^(key+n);
		}
		cvWriteFrame(wrt, current_frame);
		//cvShowImage("image show",current_frame );
		if( cvWaitKey(20)>= 0 )//等待10毫秒
			break;
	}
	cvReleaseCapture(&cap);
	cvReleaseVideoWriter(&wrt);
	//cvDestroyWindow("image show"); 
	if (bEncrpty)
	{
		AfxMessageBox(_T("加密成功!"));
	}
	else
		AfxMessageBox(_T("解密成功!"));
}


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值