听说蓝洞内部检测外挂软件?居然是用Python Open写出来的!

听说蓝洞内部检测外挂软件?居然是用Python Open写出来的!,第1张

概述 抓取帧:IplImage*img=0;if(!cvGrabFrame(capture)){//抓取一帧,失败退出printf(\"Couldnotgrabaframe\");

抓取帧:

Iplimage* img = 0;

if(!cvGrabFrame(capture)){ // 抓取一帧,失败退出

printf("Could not grab a frame ");

exit(0);

}

img=cvRetrIEveFrame(capture); // 恢复获取的帧图像

要从多个摄像头同时获取图像,首先从每个摄像头抓取一帧. 在抓取动作都结束后再恢复帧图像.

释放抓取源(和释放单幅图像时类似):

cvReleaseCapture(&capture);

获取所抓取帧在视频序列中的位置,从首帧开始按[毫秒]算. 或者从首帧开始从0标号,获取所抓取帧的标号. 或者取相对位置,首帧为0,末帧为1,只对视频文件有效。

设定所抓取的第一帧标号:

// 从视频文件相对位置0.9处开始抓取

cvSetCaptureProperty(capture,CV_CAP_PROP_POS_AVI_RATIO,(double)0.9);

只对从视频文件抓取有效. 不过似乎也不成功!!!

二、初始化视频存储器:

CvVIDeoWriter *writer = 0;

int iscolor = 1;

int fps = 25; // or 30

int frameW = 640; // 744 for firewire cameras

int frameH = 480; // 480 for firewire cameras

writer=cvCreateVIDeoWriter("out.avi",CV_FOURCC('P','I','M','1'),

fps,cvSize(frameW,frameH),iscolor);

其他有效编码:

CV_FOURCC('P','1') = MPEG-1 codec

CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)

CV_FOURCC('M','4','2') = MPEG-4.2 codec

CV_FOURCC('D','V','3') = MPEG-4.3 codec

CV_FOURCC('D','X') = MPEG-4 codec

CV_FOURCC('U','2','6','3') = H263 codec

CV_FOURCC('I','3') = H263I codec

CV_FOURCC('F','L','1') = FLV1 codec

若把视频编码设为-1则将打开一个编码选择窗口(windows系统下).

存储视频文件:

三、示例1:从视频中抓取每一帧,显示并保存

#include

#include

#include

using namespace std;

int main(){

CvCapture* capture;

capture = cvCreatefileCapture("bike.avi");

assert(capture!=NulL);

Iplimage *frame;

cvnameDWindow("camera",1);

int n = 1,m = 120;

char* cstr = new char[120];

while (m--)

{

frame = cvqueryFrame(capture);

if (!frame) break;

sprintf(cstr,"%s%d%s","D:OpenCVWorkSpaceIDeo_captureIDeo_capture",n++,".jpg");

cvShowImage("camera",frame);

cvSaveImage(cstr,frame);

if (cvWaitKey(330)>=0) break;

}

cvReleaseCapture(&capture);

cvReleaseImage(&frame);

cvDestroyWindow("camera");

return 0;

}

---------------------

四、示例2:从摄像头中提取图片后并将图片重新连续播放出来。

// 该程序实现视频和图片的相互转换.

// Image_to_vIDeo()函数将一组图片合成AVI视频文件.

// VIDeo_to_image()函数将AVI视频文件读入,将每一帧存储为jpg文件.

//

////////////////////////////////////////////////////////////////////////

#include @H_404_160@

#include

#include

#include

#include

#define NUM_FRAME 300 //只处理前300帧,根据视频帧数可修改

voID VIDeo_to_image(char* filename)

{

printf("------------- vIDeo to image ... ----------------n");

//初始化一个视频文件捕捉器

CvCapture* capture = cvCaptureFromAVI(filename);

//获取视频信息

cvqueryFrame(capture);

int frameH = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT);

int frameW = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH);

int fps = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);

int numFrames = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);

printf("tvIDeo height : %dntvIDeo wIDth : %dntfps : %dntframe numbers : %dn",frameH,frameW,fps,numFrames);

//定义和初始化变量

int i = 0;

Iplimage* img = 0;

char image_name[13];

cvnameDWindow("mainWin",CV_WINDOW_autoSIZE);

//读取和显示

while (1)

{

img = cvqueryFrame(capture); //获取一帧图片

cvShowImage("mainWin",img); //将其显示

char key = cvWaitKey(20);

sprintf(image_name,"image",++i,".jpg");//保存的图片名

cvSaveImage(image_name,img); //保存一帧图片

if (i == NUM_FRAME) break;

}

cvReleaseCapture(&capture);

cvDestroyWindow("mainWin");

}

voID Image_to_vIDeo()

{

int i = 0;

Iplimage* img = 0;

char image_name[13];

printf("------------- image to vIDeo ... ----------------n");

//初始化视频编写器,参数根据实际视频文件修改

CvVIDeoWriter *writer = 0;

int iscolor = 1;

int fps = 30; // or 25

int frameW = 400; // 744 for firewire cameras

int frameH = 240; // 480 for firewire cameras

writer = cvCreateVIDeoWriter("out.avi",CV_FOURCC('X','D'),iscolor);

printf("tvIDeo height : %dntvIDeo wIDth : %dntfps : %dn",fps);

//创建窗口

cvnameDWindow("mainWin",CV_WINDOW_autoSIZE);

while (i < NUM_FRAME)

{

sprintf(image_name,".jpg");

img = cvLoadImage(image_name);

if (!img)

{

printf("Could not load image file...n");

exit(0);

}

cvShowImage("mainWin",img);

char key = cvWaitKey(20);

cvWriteFrame(writer,img);

}

cvReleaseVIDeoWriter(&writer);

cvDestroyWindow("mainWin");

}

int main(int argc,char *argv[])

{

char filename[13] = "bike.avi";

VIDeo_to_image(filename); //视频转图片

Image_to_vIDeo(); //图片转视频

return 0;

}

私信小编007即可获取数十套pdf以及大量的学习资料哦!祝你早日入门哈!

五、示例3:从摄像头中提取图片,显示并保存。

由于本人不帅,所以这个程序就不贴效果图了,具体的效果自己贴到程序中测试,可以自我欣赏一下。

注意:

//////////////调用摄像头/////////////////

vIDeoCapture cam;

cam.open(0);

/////////////设置摄像头窗口大小///////////////////

cam.set(CV_CAP_PROP_FRAM_WIDTH,600);

cam.set(CV_CAP_PROP_FRAM_HEIGHT,400);

/////////////获取摄像头视频中的每一帧///////////////////

cv::Mat cameraFrame;

camera>>cameraFrame;

//////////////存储从视频中获取的每一帧——存储路径与存储名称/////////////////

char* cstr = new char[120];

sprintf(cstr,".jpg");

///////////////openCV3.1.0中图片存储函数/////////////

imwrite(cstr,cameraFrame);//这个函数很重要,与cvSaveImage()这个函数不同,存储的图片类型是cv::Mat类型的,所以要注意

---------------------

#include

#include

#include

#include

#include "opencv2/imgproc/imgproc.hpp"

#include "opencv2/ml/ml.hpp"

using namespace std;

using namespace cv;

#include "opencv2/imgproc/imgproc.hpp"

#include "opencv2/ml/ml.hpp"

using namespace std;

using namespace cv;

int main(int argc,char *argv[])

{

int cameraNumber = 0;

if (argc > 1)

cameraNumber = atoi(argv[1]);

VIDeoCapture camera;

camera.open(cameraNumber);

camera.set(CV_CAP_PROP_FRAME_WIDTH,600);//设置界面大小

camera.set(CV_CAP_PROP_FRAME_HEIGHT,400);

if (!camera.isOpened())

{

cerr << "ERROPR" << endl;

exit(1);

}

int n = 1;

while (true)

{

Mat cameraFrame;

camera >> cameraFrame;

if (cameraFrame.empty())

{

cerr << "ERROR1" << endl;

exit(1);

}

char* cstr = new char[120];

sprintf(cstr,".jpg");

imshow("VIDeo",cameraFrame);

//const CvArr* s = (CvArr*)&cameraFrame;

imwrite(cstr,cameraFrame);//这个函数很重要,与cvSaveImage()这个函数不同,存储的图片类型是cv::Mat类型的,所以要注意

char key = cv::waitKey(50);

if (key == 33)

{

break;

}

}

}

这时就要注意,imread函数最好是放在if判断语句里面:

网上的说法:

我们用opencv打开视频的时候,会自动先监测摄像头有没有读到帧,如果没有,就会报错,然后再执行你的程序,加一个if判断就是跳过系统自己的判断,直接执行我们的程序。加上后确实可以解决错误。

if (!img_src1.empty())

{

imshow("Froeground",img_src1);

}

else

{

return 0;

}

总结

以上是内存溢出为你收集整理的听说蓝洞内部检测外挂软件?居然是用Python Open写出来的!全部内容,希望文章能够帮你解决听说蓝洞内部检测外挂软件?居然是用Python Open写出来的!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1208609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存