博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Grasshopper 2.0 MP Color FireWire 1394b (Sony ICX274)
阅读量:4326 次
发布时间:2019-06-06

本文共 5773 字,大约阅读时间需要 19 分钟。

 

相机参数如下,参见:

Resolution 1624 x 1224
Frame Rate 30 FPS
Megapixels 2.0 MP
Chroma Color
Sensor Name Sony ICX274
Sensor Type CCD
Readout Method Global shutter
Sensor Format 1/1.8"
Pixel Size 4.4 µm
Lens Mount C-mount
ADC 14-bit
Gain Range 0 dB to 24 dB
Exposure Range 0.02 ms to >10 seconds
Trigger Modes Standard, bulb, skip frames, overlapped, multi-shot
Partial Image Modes Pixel binning, ROI
Image Processing Gamma, lookup table, white balance
Image Buffer 32 MB
User Sets 2 memory channels for custom camera settings
Flash Memory 512 KB non-volatile memory
Non-isolated I/O Ports 2 bi-directional
Serial Port 1 (over non-isolated I/O)
Auxiliary Output 3.3 V, 150 mA maximum
Interface FireWire 1394b
Power Requirements 8 to 30 V
Power Consumption (Maximum) 3.5 W at 12 V
Dimensions 44 mm x 29 mm x 58 mm
Mass 104 g
Machine Vision Standard IIDC v1.31
Compliance CE, FCC, KCC, RoHS
Temperature (Operating) 0° to 40°C
Temperature (Storage) -30° to 60°C
Humidity (Operating) 20 to 80% (no condensation)
Humidity (Storage) 20 to 95% (no condensation)
Warranty 3 years

 

Sample Code for Capturing Images:

 

#include "FlyCapture2.h"#include 
#include
#include
#include
#include
#include
using namespace FlyCapture2;using namespace std;using namespace cv;enum AviType{ UNCOMPRESSED, MJPG, H264};void PrintError( Error error ){ error.PrintErrorTrace();}void PrintCameraInfo( CameraInfo* pCamInfo ){ printf( "\n*** CAMERA INFORMATION ***\n" "Serial number - %u\n" "Camera model - %s\n" "Camera vendor - %s\n" "Sensor - %s\n" "Resolution - %s\n" "Firmware version - %s\n" "Firmware build time - %s\n\n", pCamInfo->serialNumber, pCamInfo->modelName, pCamInfo->vendorName, pCamInfo->sensorInfo, pCamInfo->sensorResolution, pCamInfo->firmwareVersion, pCamInfo->firmwareBuildTime );}void SaveAviHelper( AviType aviType, std::vector
& vecImages, std::string aviFileName, float frameRate){ Error error; AVIRecorder aviRecorder; // Open the AVI file for appending images switch (aviType) { case UNCOMPRESSED: { AVIOption option; option.frameRate = frameRate; error = aviRecorder.AVIOpen(aviFileName.c_str(), &option); } break; case MJPG: { MJPGOption option; option.frameRate = frameRate; option.quality = 75; error = aviRecorder.AVIOpen(aviFileName.c_str(), &option); } break; case H264: { H264Option option; option.frameRate = frameRate; option.bitrate = 1000000; option.height = vecImages[0].GetRows(); option.width = vecImages[0].GetCols(); error = aviRecorder.AVIOpen(aviFileName.c_str(), &option); } break; } if (error != PGRERROR_OK) { PrintError(error); return; } printf( "\nAppending %d images to AVI file: %s ... \n", vecImages.size(), aviFileName.c_str() ); for (int imageCnt = 0; imageCnt < vecImages.size(); imageCnt++) { // Append the image to AVI file error = aviRecorder.AVIAppend(&vecImages[imageCnt]); if (error != PGRERROR_OK) { PrintError(error); continue; } printf("Appended image %d...\n", imageCnt); } // Close the AVI file error = aviRecorder.AVIClose( ); if (error != PGRERROR_OK) { PrintError(error); return; }}int main(int /*argc*/, char** /*argv*/){ Error error; BusManager busMgr; unsigned int numCameras; error = busMgr.GetNumOfCameras(&numCameras); if (error != PGRERROR_OK) { PrintError(error); return -1; } cout << "numCameras = " << numCameras << endl; if ( numCameras < 1 ) { printf( "No camera detected.\n" ); return -1; } else { printf( "Number of cameras detected: %u\n", numCameras ); } PGRGuid guid; error = busMgr.GetCameraFromIndex(0, &guid); if (error != PGRERROR_OK) { PrintError(error); return -1; } printf( "Running the first camera.\n" ); Camera cam; // Connect to a camera error = cam.Connect(&guid); if (error != PGRERROR_OK) { PrintError(error); return -1; } // Get the camera information CameraInfo camInfo; error = cam.GetCameraInfo(&camInfo); if (error != PGRERROR_OK) { PrintError(error); return -1; } PrintCameraInfo(&camInfo); // Start capturing images printf( "Starting capture... \n" ); error = cam.StartCapture(); if (error != PGRERROR_OK) { PrintError(error); return -1; } // The total number of images const int k_numImages = 100; std::vector
vecImages; vecImages.resize(k_numImages); // Grab images Image rawImage; for ( int imageCnt=0; imageCnt < k_numImages; imageCnt++ ) { error = cam.RetrieveBuffer(&rawImage); if (error != PGRERROR_OK) { printf("Error grabbing image %u\n", imageCnt); continue; } else { printf("Grabbed image %u\n", imageCnt); } vecImages[imageCnt].DeepCopy(&rawImage); } // Stop capturing images printf( "Stopping capture... \n" ); error = cam.StopCapture(); if (error != PGRERROR_OK) { PrintError(error); return -1; } // Check if the camera supports the FRAME_RATE property printf( "Detecting frame rate from camera... \n" ); PropertyInfo propInfo; propInfo.type = FRAME_RATE; error = cam.GetPropertyInfo( &propInfo ); if (error != PGRERROR_OK) { PrintError(error); return -1; } float frameRateToUse = 15.0f; if ( propInfo.present == true ) { // Get the frame rate Property prop; prop.type = FRAME_RATE; error = cam.GetProperty( &prop ); if (error != PGRERROR_OK) { PrintError(error); } else { // Set the frame rate. // Note that the actual recording frame rate may be slower, // depending on the bus speed and disk writing speed. frameRateToUse = prop.absValue; } } printf("Using frame rate of %3.1f\n", frameRateToUse); char aviFileName[512] = { 0}; sprintf(aviFileName, "SaveImageToAviEx-Uncompressed-%u", camInfo.serialNumber); SaveAviHelper(UNCOMPRESSED, vecImages, aviFileName, frameRateToUse); // Disconnect the camera error = cam.Disconnect(); if (error != PGRERROR_OK) { PrintError(error); return -1; } system("Pause"); return 0;}

 

转载于:https://www.cnblogs.com/grandyang/p/4601378.html

你可能感兴趣的文章
Failed to Connect to MySQL at 127.0.0.1:3306 MySql WorkBench 本地连接问题
查看>>
android下activity中多个listview只允许主界面滚动
查看>>
(贪心5.2.1)UVA 10026 Shoemaker's Problem(利用数据有序化来进行贪心选择)
查看>>
java基础练习 4
查看>>
Swift学习:扩展(Extensions)
查看>>
java了解
查看>>
[基础] 模板+友元类外定义
查看>>
【日常训练】数据中心(CSP 201812-4)
查看>>
《JavaScript总结》apply、call和bind方法
查看>>
Alpha 冲刺 (5/10)
查看>>
递归和二分法
查看>>
vs命令行参数说明
查看>>
C++Builder调整TreeView和ListView间距
查看>>
205. Isomorphic Strings
查看>>
SynchronousQueue
查看>>
JQuery常用函数及功能小结
查看>>
POJ 2653 Pick-up sticks 线段相交
查看>>
PKU JudgeOnline 题目分类
查看>>
网站报错Access denied for user 'root'@'localhost' -问题排查续
查看>>
字符串处理sdut 2411
查看>>