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

昨天刚开始学习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("解密成功!")); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值