[問題] Opencv 2.2 讀取Camera影像的問題??
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
MS VS 2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenCV-2.2.0-win32-vs2010
問題(Question):
小弟是剛接觸OpenCV不久的新手,
想讀取攝影機來做影像辨識方面的研究,
但參考了網路上許多的範例程式,
ex:OpenCV wiki http://opencv.willowgarage.com/wiki/CameraCapture
和 昨日 http://yester-place.blogspot.tw/2008/06/opencv2.html
還有許多網友分享的code,但讀出來的畫面都是全灰的(如下)
http://ppt.cc/0B~M (此為Open Wiki的code)
1.cvCaptureFromCAM( CV_CAP_ANY );
這部分有試過0、-1抓出來都是全灰,1、2等其它的值程式執行後會直接結束。
2.fprintf( stderr, "Camera is OK \n");
有加入一小段判斷如果有抓到畫面就印出字樣也有顯示。
3.攝影機為SONY HDR-XR150,影像擷取卡為UPMOST UPG305,
使用擷取卡附的軟體TV Expert可以正確的顯示攝影機畫面,
根據以上三點,硬體與程式的語法部分應該是沒有問題的才對,
Google有看到跟我一樣問題但好像沒看到能用的解決辦法?
是不是哪邊還要作額外的設定我漏了呢??
跪求版上各位指教!! (連不上攝影機,研究完全做不下去> <)
程式碼(Code):(請善用置底文網頁, 記得排版)
感謝Zero0910提供網頁版 http://ideone.com/Qzs7Q
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <cxcore.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
// A Simple Camera Capture Framework
int main() {
CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
if ( !capture ) {
fprintf( stderr, "ERROR: capture is NULL \n" );
getchar();
return -1;
}
else
fprintf( stderr, "Camera is OK \n");
// Create a window in which the captured images will be presented
cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );
// Show the image captured from the camera in the window and repeat
while ( 1 ) {
// Get one frame
IplImage* frame = cvQueryFrame( capture );
if ( !frame ) {
fprintf( stderr, "ERROR: frame is null...\n" );
getchar();
break;
}
cvShowImage( "mywindow", frame );
// Do not release the frame!
//If ESC key pressed, Key=0x10001B under OpenCV 0.9.7(linux version),
//remove higher bits using AND operator
if ( (cvWaitKey(10) & 255) == 27 ) break;
}
// Release the capture device housekeeping
cvReleaseCapture( &capture );
cvDestroyWindow( "mywindow" );
return 0;
}
補充說明(Supplement):
讀取電腦裡圖片來做一些簡單的影像辨識都是正常的
所以環境設定應該也沒問題...
不知道到底是哪邊的錯>"<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.138.115
推
07/18 17:31, , 1F
07/18 17:31, 1F
→
07/18 17:31, , 2F
07/18 17:31, 2F
先謝謝你提供的網站!!
擷取卡本身應該也沒問題,因為這套設備是接手學長的 (但裝在不同電腦)
但目前連絡不到學長,所以才上來求救> <
※ 編輯: magicjoker 來自: 140.138.138.115 (07/18 17:43)
推
07/18 17:57, , 3F
07/18 17:57, 3F
→
07/18 17:57, , 4F
07/18 17:57, 4F
→
07/18 17:57, , 5F
07/18 17:57, 5F
推
07/18 18:02, , 6F
07/18 18:02, 6F
推
07/18 18:02, , 7F
07/18 18:02, 7F
→
07/18 18:03, , 8F
07/18 18:03, 8F
→
07/18 18:03, , 9F
07/18 18:03, 9F
參考上面的網站,試了dia大貼的程式碼後,畫面一樣還是全灰@@
另外把原本的程式cvCaptureFromCAM改成cvCaptureFromFile來讀資料夾裡的影片檔
也是能正常播放...不知道為何Camera讀出來就是灰的...
((p.s:學長電話打不通,囧))
※ 編輯: magicjoker 來自: 140.138.138.115 (07/18 20:00)
→
07/18 20:23, , 10F
07/18 20:23, 10F
→
07/18 20:40, , 11F
07/18 20:40, 11F
→
07/18 20:53, , 12F
07/18 20:53, 12F
→
07/18 21:05, , 13F
07/18 21:05, 13F
→
07/18 21:13, , 14F
07/18 21:13, 14F
→
07/18 23:22, , 15F
07/18 23:22, 15F
重編src是指precomp.hpp檔裡面改成
#include "cvconfig.h"
#if defined WIN32 || defined _WIN32
void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin );
#endif
這樣嘛? 也改過了...不行
還是有其他要改的?
推
07/18 23:52, , 16F
07/18 23:52, 16F
推
07/19 00:55, , 17F
07/19 00:55, 17F
※ 編輯: magicjoker 來自: 140.138.138.115 (07/19 14:21)
→
07/19 14:29, , 18F
07/19 14:29, 18F
→
07/19 15:01, , 19F
07/19 15:01, 19F
推
07/19 16:37, , 20F
07/19 16:37, 20F
這個指令有試過,也是不行...
推
07/19 18:24, , 21F
07/19 18:24, 21F
推
07/19 23:30, , 22F
07/19 23:30, 22F
※ 編輯: magicjoker 來自: 140.138.138.115 (07/20 12:44)
聯絡上學長了...
他說他之前也會有問題,用Ctrl+F5跳過偵錯就可以了。
但是他的視窗畫面是全黑,而我的是全灰,好像不太一樣@@?
還有人能有想到可能的其他解決方法嘛??QQ
※ 編輯: magicjoker 來自: 140.138.138.115 (07/20 18:55)
推
07/21 14:22, , 23F
07/21 14:22, 23F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章