1
這是用於使用LAN端口訪問我的IP攝像頭的代碼。 (第一個代碼工作正常)。我需要的是用Mat(C++)結構獲取圖像。代碼2顯示了我使用Mat結構做了些什麼,但是當我調試程序時,執行cv :: namedWindow(「Frame」);然後打破顯示波紋管的未處理異常的代碼。 我最後的要求是使用Mat而不是iplimage完成這項工作。提示或適當的代碼會很好,因爲我正在使用HOG進行人體檢測項目。謝謝。IP攝像機使用rtsp,視覺工作室OpenCv 2.4.5?
#include "stdafx.h"
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
#include "opencv.hpp"
int main(){
CvCapture *camera=cvCaptureFromFile("rtsp://192.168.1.19:554/0/1:1/main");
if (camera==NULL)
printf("camera is null\n");
else
printf("camera is not null");
cvNamedWindow("img");
while (cvWaitKey(10)!=atoi("q")){
IplImage *img=cvQueryFrame(camera);
cvShowImage("img",img);
}
cvReleaseCapture(&camera);
}
碼數2:
int main(int argc, char* argv[])
{
cv::Ptr<CvCapture> capture = cvCaptureFromFile("rtsp://192.168.1.19:554/0/1:1/main");
cv::namedWindow("Frame");
for (;;)
{
cv::Mat frame = cvQueryFrame(capture);
cv::imshow("Frame", frame);
if (cv::waitKey(1) >= 0)
break;
}
return 0;
}
例外: 在0x00660598未處理的異常生豬與網絡cam.exe:0000005:訪問衝突讀取位置0xcccc0065。
「rtsp://192.168.1.19:554/0/1:1/main」這是我的IP地址,並且它的密碼被保護。這是從相機的用戶手冊中提取的。顯然它被賦予流在vlc中的rtsp,所以用於cv :: VideoCapture vcap;我是否需要更改格式或添加虛擬尾部?任何提示謝謝。 – OmegaD
因爲我已經嘗試過使用這段代碼,它並沒有從相機捕獲任何幀。相機似乎是空的。 – OmegaD
您是否嘗試將opencv_ffmpeg248.dll放入您的輸出目錄? – Naren