The*_*ast 0 c++ camera opencv colors raspberry-pi2
我正在使用带有opencv 3 gold和raspicam-0.1.3 libarrry的raspberry pi 2作为pi相机模块,我已经测试了以下代码,它可以正常工作,但它为我提供了灰度模式(黑白)图像,但是我想要彩色模式(RGB)
这是代码:
#include <ctime>
#include <iostream>
#include <raspicam/raspicam_cv.h>
using namespace std;
int main ( int argc,char **argv ) {
time_t timer_begin,timer_end;
raspicam::RaspiCam_Cv Camera;
cv::Mat image;
int nCount=100;
//set camera params
Camera.set( CV_CAP_PROP_FORMAT, CV_8UC1 );
//Open camera
cout<<"Opening Camera..."<<endl;
if (!Camera.open()) {cerr<<"Error opening the camera"<<endl;return -1;}
//Start capture
cout<<"Capturing "<<nCount<<" frames ...."<<endl;
time ( &timer_begin );
for ( int i=0; i<nCount; i++ ) {
Camera.grab();
Camera.retrieve ( image);
if ( i%5==0 ) cout<<"\r captured "<<i<<" images"<<std::flush;
}
cout<<"Stop camera..."<<endl;
Camera.release();
//show time statistics
time ( &timer_end ); /* get current time; same as: timer = time(NULL) */
double secondsElapsed = difftime ( timer_end,timer_begin );
cout<< secondsElapsed<<" seconds for "<< nCount<<" frames : FPS = "<< ( float ) ( ( float ) ( nCount ) /secondsElapsed ) <<endl;
//save image
cv::imwrite("raspicam_cv_image.jpg",image);
cout<<"Image saved at raspicam_cv_image.jpg"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
只是注意到在尝试这里的第一个示例时,我得到了彩色图像:http : //sourceforge.net/projects/raspicam/files/?source=navbar
我所做的是插入cvtColor(image,cimg,CV_GRAY2RGB); 在写入之前,但这不能解决我的问题
任何帮助将不胜感激...谢谢
您在这里将相机设置为“灰度模式”:
Camera.set( CV_CAP_PROP_FORMAT, CV_8UC1 );
Run Code Online (Sandbox Code Playgroud)
如果要“彩色模式”,则改为执行以下操作:
Camera.set( CV_CAP_PROP_FORMAT, CV_8UC3 );
Run Code Online (Sandbox Code Playgroud)
CV_8UC1表示每种颜色1个字节,即灰度,而CV_8UC3表示每种颜色3个字节,例如RGB