- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
通常我们在 opencv 窗口中显示网络摄像头或视频运动:
CvCapture* capture = cvCreateCameraCapture(0);
cvNamedWindow( "title", CV_WINDOW_AUTOSIZE );
cvMoveWindow("title",x,y);
while(1)
{
frame = cvQueryFrame( capture );
if( !frame )
{
break;
}
cvShowImage( "title", frame );
char c = cvWaitKey(33);
if( c == 27 )
{
break;
}
}
我尝试使用 pictureBox 成功地在 Windows 窗体中显示图像:
pictureBox1->Image = gcnew System::Drawing::Bitmap( image->width,image->height,image->widthStep,System::Drawing::Imaging::PixelFormat::Undefined, ( System::IntPtr ) image-> imageData);
但是当我试图显示从视频中捕获的图像时它不会工作,这是来源:
CvCapture* capture = cvCreateCameraCapture(0);
while(1)
{
frame = cvQueryFrame( capture );
if( !frame )
{
break;
}
pictureBox1->Image = gcnew System::Drawing::Bitmap( frame->width,frame->height,frame->widthStep,System::Drawing::Imaging::PixelFormat::Undefined, ( System::IntPtr ) frame-> imageData);
char c = cvWaitKey(33);
if( c == 27 )
{
break;
}
}
有没有办法使用 windows 窗体而不是 opencv windows 来显示视频或网络摄像头?
还是我的代码有问题?感谢您的帮助..:)
最佳答案
一条建议:使用VideoInput而不是 CvCapture(CvCapture 是 highgui 库的一部分,它不是用于生产用途,而是用于快速测试)。是的,VideoInput 主页看起来很奇怪,但是这个库非常值得。
这里是使用 VideoInput 的快速示例(从 VideoInput.h 文件中提取):
//create a videoInput object
videoInput VI;
//Prints out a list of available devices and returns num of devices found
int numDevices = VI.listDevices();
int device1 = 0; //this could be any deviceID that shows up in listDevices
int device2 = 1; //this could be any deviceID that shows up in listDevices
//if you want to capture at a different frame rate (default is 30)
//specify it here, you are not guaranteed to get this fps though.
//VI.setIdealFramerate(dev, 60);
//setup the first device - there are a number of options:
VI.setupDevice(device1); //setup the first device with the default settings
//VI.setupDevice(device1, VI_COMPOSITE); //or setup device with specific connection type
//VI.setupDevice(device1, 320, 240); //or setup device with specified video size
//VI.setupDevice(device1, 320, 240, VI_COMPOSITE); //or setup device with video size and connection type
//VI.setFormat(device1, VI_NTSC_M); //if your card doesn't remember what format it should be
//call this with the appropriate format listed above
//NOTE: must be called after setupDevice!
//optionally setup a second (or third, fourth ...) device - same options as above
VI.setupDevice(device2);
//As requested width and height can not always be accomodated
//make sure to check the size once the device is setup
int width = VI.getWidth(device1);
int height = VI.getHeight(device1);
int size = VI.getSize(device1);
unsigned char * yourBuffer1 = new unsigned char[size];
unsigned char * yourBuffer2 = new unsigned char[size];
//to get the data from the device first check if the data is new
if(VI.isFrameNew(device1)){
VI.getPixels(device1, yourBuffer1, false, false); //fills pixels as a BGR (for openCV) unsigned char array - no flipping
VI.getPixels(device1, yourBuffer2, true, true); //fills pixels as a RGB (for openGL) unsigned char array - flipping!
}
//same applies to device2 etc
//to get a settings dialog for the device
VI.showSettingsWindow(device1);
//Shut down devices properly
VI.stopDevice(device1);
VI.stopDevice(device2);
关于c++ - OpenCV : How to display webcam capture in windows form application?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863918/
我正在使用 Webcam.js在我的 Laravel 项目中用于捕获图像。 我已经从这个线程(Webcam js Error in Chrome: Could not access webcam)中了
我经常收到上述主题行的错误。 this被抛出的代码如下(else部分的函数) if ($('#clicktosnap').is('.disabled')) { alert ("Please enabl
我正在尝试在 Web 应用程序上使用两个摄像头。我的要求是从浏览器中检测这些摄像头,并一次选择一个摄像头来捕获图像并将其显示在网页中。这可能就像我们正在显示两个按钮,通过点击一个按钮 camera1
我是一名网络开发人员,熟悉 php、jscript 和小 Flash。但是我想知道如何允许我的用户使用他们的网络摄像头为他们的个人资料拍摄照片? 是否可以使用 HTML5 或者我将不得不使用 Flas
我正在使用Powerbuilder应用程序中的EZTWAIN从HP扫描仪获取图像。最近,我尝试了柯达型号(i1120),似乎不支持该型号。具体来说,应用程序在扫描过程中卡住(也许问题与duplex扫描
有没有办法发现某个网络摄像头的所有可用编码(例如 x-raw-rgb -xraw-yuv)? 此外,我还想了解可用的分辨率。 谢谢! 最佳答案 是的,将 v4l2src 元素设置为就绪并检查 src
我正在做一个项目,我使用网络摄像头以不同的曝光值连续拍摄照片(制作 HDR 图像流)。我一直在使用 Logitech C310 相机,并通过将以下内容发送到命令行来设置曝光值: "v4l2-ctl -
我正在尝试用 C# 制作一个允许用户录制视频的网络摄像头应用程序。我一直在使用 DirectShow.Net 来预览网络摄像头并拍摄快照。但需要能够在预览网络摄像头的同时捕捉视频和音频。我尝试过的一件
我正在开发一个应使用网络摄像头进行流媒体播放的应用程序, 为此,我使用了libvlc api, 我可以从网络摄像头流式传输 但是我正在获得YUYV格式的视频流, 但是我想要MJPEG格式的流媒体, 所
我使用PyQt5和OpenCV编写了一个网络摄像头应用程序。它工作正常,但是我想对其进行更多改进。我有几个问题: 1)在WebCam.py的第24行,当我单击退出按钮时,我想正确地打破while循环。
我刚得到一个高端 1080p 网络摄像头,在 Windows 10 的“相机”应用程序中打开它,以 25 或 30fps 的速度完美显示它,但是当使用 opencv 时它非常慢,我在循环中放置了一个计
本文整理了Java中com.github.sarxos.webcam.WebcamDevice类的一些代码示例,展示了WebcamDevice类的具体用法。这些代码示例主要来源于Github/Stac
我是 Pure Data 的新手,到目前为止我对它印象深刻。 我需要做的是访问网络摄像头并提取特定像素的亮度(或 RGB,转换很容易)值。 这可能吗? 最佳答案 看起来答案是“pix_data”。 在
我想从 Logitech C920 网络摄像头流式传输原始视频,同时 两者 使用 GStreamer 1.0 显示和保存视频到文件。 如果我从相机传输 h264 编码的视频(相机提供硬件编码的 h26
我尝试在我的应用程序中用 Media Foundation ("MF") 上的 Directshow ("DS") 替换代码,但遇到了一个问题 - 无法在网络摄像头上使用 MF 设置所需的 fps。
最近安装了 OpenCV 2.4.3 尝试做一些视频捕获和对象区分。但遗憾的是,每次尝试通过网络摄像头捕获视频都会导致内存访问冲突。 我正在使用 Visual Studio 2010 (Win 7 x
我正在使用 https://github.com/jhuckaby/webcamjs 的 webcam.js在移动设备中,前置摄像头默认打开。我想将默认设置更改为后置摄像头。有什么办法可以更换摄像头设
我正在运行人脸识别代码,我的问题是运行代码后,我的网络摄像头没有关闭。绿灯仍然亮着,为了关闭它,我必须关闭我的电脑才能让摄像头正常工作。你有什么建议,为什么会这样? from imutils.vide
我有一个 Logitech C920 挂接到我的 PC 上,我正在尝试用它来点击使用 OpenCV 的图片。 我知道我可以使用以下方式捕获图像: cam = cv2.VideoCapture(1) s
当我尝试将电缆与网络摄像头连接时,系统提示电缆无法连接到该端口。有人能帮我拿一下这个吗?
我是一名优秀的程序员,十分优秀!