Fix minor errors when loading images with opencv

This commit is contained in:
jfmcarreira committed 2015-03-05 01:07:28 +00:00
1 parent d1ad36c28a
commit ee8f0c65d4
3 files changed
+82 -44

No files matched your search

+15 -9
View File
@@ -83,22 +83,22 @@ std::vector<std::string> LibOpenCVHandler::supportedSaveFormatsName()
return formatsName;
}
Bool LibOpenCVHandler::loadFrame( PlaYUVerFrame* pcFrame, std::string filename )
PlaYUVerFrame* LibOpenCVHandler::loadFrame( std::string filename )
{
cv::Mat pcCvFrame = cv::imread( filename );
Int cvChannels = pcCvFrame.channels();
std::string pelFormatName;
Int iPelFormat;
switch( pcCvFrame.channels() )
Int iPelFormat = -1;
switch( cvChannels )
{
case 1:
pelFormatName = "GRAY";
break;
case 4:
pelFormatName = "RGB8";
case 3:
pelFormatName = "BRG24";
break;
default:
return false;
return NULL;
}
for( UInt i = 0; i < PlaYUVerFrame::supportedPixelFormatListNames().size(); i++ )
@@ -109,12 +109,18 @@ Bool LibOpenCVHandler::loadFrame( PlaYUVerFrame* pcFrame, std::string filename )
break;
}
}
return true;
if( iPelFormat >= 0 )
{
PlaYUVerFrame* pcFrame = new PlaYUVerFrame( pcCvFrame.cols, pcCvFrame.rows, iPelFormat );
pcFrame->frameFromBuffer( pcCvFrame.ptr(), pcFrame->getBytesPerFrame() );
return pcFrame;
}
return NULL;
}
Bool LibOpenCVHandler::saveFrame( PlaYUVerFrame* pcFrame, std::string filename )
{
Int cvType = CV_8UC3;
switch( pcFrame->getNumberChannels() )
{