Fix minor errors when loading images with opencv
This commit is contained in:
1 parent
d1ad36c28a
commit
ee8f0c65d4
3 files changed
+82
-44
No files matched your search
@@ -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() )
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user