mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
This commit is contained in:
@@ -99,7 +99,7 @@ void RBaseStream::readBlock()
|
||||
{
|
||||
if( m_block_pos == 0 && m_current < m_end )
|
||||
return;
|
||||
CV_THROW (RBS_THROW_EOS);
|
||||
throw RBS_THROW_EOS;
|
||||
}
|
||||
|
||||
fseek( m_file, m_block_pos, SEEK_SET );
|
||||
@@ -107,7 +107,7 @@ void RBaseStream::readBlock()
|
||||
m_end = m_start + readed;
|
||||
|
||||
if( readed == 0 || m_current >= m_end )
|
||||
CV_THROW (RBS_THROW_EOS);
|
||||
throw RBS_THROW_EOS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -80,15 +80,14 @@ ExifReader::~ExifReader()
|
||||
*/
|
||||
bool ExifReader::parse()
|
||||
{
|
||||
CV_TRY {
|
||||
try {
|
||||
m_exif = getExif();
|
||||
if( !m_exif.empty() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
} CV_CATCH (ExifParsingError, e) {
|
||||
CV_UNUSED(e);
|
||||
} catch (ExifParsingError&) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -152,11 +151,11 @@ std::map<int, ExifEntry_t > ExifReader::getExif()
|
||||
case COM:
|
||||
bytesToSkip = getFieldSize();
|
||||
if (bytesToSkip < markerSize) {
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
}
|
||||
m_stream.seekg( static_cast<long>( bytesToSkip - markerSize ), m_stream.cur );
|
||||
if ( m_stream.fail() ) {
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -167,12 +166,12 @@ std::map<int, ExifEntry_t > ExifReader::getExif()
|
||||
case APP1: //actual Exif Marker
|
||||
exifSize = getFieldSize();
|
||||
if (exifSize <= offsetToTiffHeader) {
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
}
|
||||
m_data.resize( exifSize - offsetToTiffHeader );
|
||||
m_stream.seekg( static_cast<long>( offsetToTiffHeader ), m_stream.cur );
|
||||
if ( m_stream.fail() ) {
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
}
|
||||
m_stream.read( reinterpret_cast<char*>(&m_data[0]), exifSize - offsetToTiffHeader );
|
||||
exifFound = true;
|
||||
@@ -416,7 +415,7 @@ std::string ExifReader::getString(const size_t offset) const
|
||||
dataOffset = getU32( offset + 8 );
|
||||
}
|
||||
if (dataOffset > m_data.size() || dataOffset + size > m_data.size()) {
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
}
|
||||
std::vector<uint8_t>::const_iterator it = m_data.begin() + dataOffset;
|
||||
std::string result( it, it + size ); //copy vector content into result
|
||||
@@ -433,7 +432,7 @@ std::string ExifReader::getString(const size_t offset) const
|
||||
uint16_t ExifReader::getU16(const size_t offset) const
|
||||
{
|
||||
if (offset + 1 >= m_data.size())
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
|
||||
if( m_format == INTEL )
|
||||
{
|
||||
@@ -451,7 +450,7 @@ uint16_t ExifReader::getU16(const size_t offset) const
|
||||
uint32_t ExifReader::getU32(const size_t offset) const
|
||||
{
|
||||
if (offset + 3 >= m_data.size())
|
||||
CV_THROW (ExifParsingError());
|
||||
throw ExifParsingError();
|
||||
|
||||
if( m_format == INTEL )
|
||||
{
|
||||
|
||||
@@ -89,7 +89,7 @@ bool BmpDecoder::readHeader()
|
||||
else if( !m_strm.open( m_filename ))
|
||||
return false;
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.skip( 10 );
|
||||
m_offset = m_strm.getDWord();
|
||||
@@ -173,9 +173,9 @@ bool BmpDecoder::readHeader()
|
||||
}
|
||||
}
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch(...)
|
||||
{
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
// in 32 bit case alpha channel is used - so require CV_8UC4 type
|
||||
m_type = iscolor ? (m_bpp == 32 ? CV_8UC4 : CV_8UC3 ) : CV_8UC1;
|
||||
@@ -225,7 +225,7 @@ bool BmpDecoder::readData( Mat& img )
|
||||
}
|
||||
uchar *src = _src.data(), *bgr = _bgr.data();
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.setPos( m_offset );
|
||||
|
||||
@@ -490,9 +490,9 @@ decode_rle8_bad: ;
|
||||
CV_Error(cv::Error::StsError, "Invalid/unsupported mode");
|
||||
}
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch(...)
|
||||
{
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -379,25 +379,25 @@ bool PAMDecoder::readHeader()
|
||||
}
|
||||
else if( !m_strm.open( m_filename ))
|
||||
return false;
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
byte = m_strm.getByte();
|
||||
if( byte != 'P' )
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
|
||||
byte = m_strm.getByte();
|
||||
if (byte != '7')
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
|
||||
byte = m_strm.getByte();
|
||||
if (byte != '\n' && byte != '\r')
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
|
||||
uint i;
|
||||
memset (&flds, 0x00, sizeof (struct parsed_fields));
|
||||
do {
|
||||
if (!ReadPAMHeaderLine(m_strm, fieldtype, value))
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
switch (fieldtype) {
|
||||
case PAM_HEADER_NONE:
|
||||
case PAM_HEADER_COMMENT:
|
||||
@@ -407,32 +407,32 @@ bool PAMDecoder::readHeader()
|
||||
break;
|
||||
case PAM_HEADER_HEIGHT:
|
||||
if (flds.height)
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if (!ParseNumber (value, &m_height))
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
flds.height = true;
|
||||
break;
|
||||
case PAM_HEADER_WIDTH:
|
||||
if (flds.width)
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if (!ParseNumber (value, &m_width))
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
flds.width = true;
|
||||
break;
|
||||
case PAM_HEADER_DEPTH:
|
||||
if (flds.depth)
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if (!ParseNumber (value, &m_channels))
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
flds.depth = true;
|
||||
break;
|
||||
case PAM_HEADER_MAXVAL:
|
||||
if (flds.maxval)
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if (!ParseNumber (value, &m_maxval))
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if ( m_maxval > 65535 )
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
if ( m_maxval > 255 ) {
|
||||
m_sampledepth = CV_16U;
|
||||
}
|
||||
@@ -451,7 +451,7 @@ bool PAMDecoder::readHeader()
|
||||
}
|
||||
break;
|
||||
default:
|
||||
CV_THROW( RBS_BAD_HEADER );
|
||||
throw RBS_BAD_HEADER;
|
||||
}
|
||||
} while (fieldtype != PAM_HEADER_ENDHDR);
|
||||
|
||||
@@ -469,7 +469,7 @@ bool PAMDecoder::readHeader()
|
||||
|
||||
return true;
|
||||
}
|
||||
} CV_CATCH_ALL
|
||||
} catch(...)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ bool PAMDecoder::readData( Mat& img )
|
||||
}
|
||||
}
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.setPos( m_offset );
|
||||
|
||||
@@ -610,7 +610,7 @@ bool PAMDecoder::readData( Mat& img )
|
||||
}
|
||||
|
||||
res = true;
|
||||
} CV_CATCH_ALL
|
||||
} catch(...)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -150,11 +150,11 @@ bool PxMDecoder::readHeader()
|
||||
else if( !m_strm.open( m_filename ))
|
||||
return false;
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
int code = m_strm.getByte();
|
||||
if( code != 'P' )
|
||||
CV_THROW (RBS_BAD_HEADER);
|
||||
throw RBS_BAD_HEADER;
|
||||
|
||||
code = m_strm.getByte();
|
||||
switch( code )
|
||||
@@ -162,7 +162,7 @@ bool PxMDecoder::readHeader()
|
||||
case '1': case '4': m_bpp = 1; break;
|
||||
case '2': case '5': m_bpp = 8; break;
|
||||
case '3': case '6': m_bpp = 24; break;
|
||||
default: CV_THROW (RBS_BAD_HEADER);
|
||||
default: throw RBS_BAD_HEADER;
|
||||
}
|
||||
|
||||
m_binary = code >= '4';
|
||||
@@ -173,7 +173,7 @@ bool PxMDecoder::readHeader()
|
||||
|
||||
m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
|
||||
if( m_maxval > 65535 )
|
||||
CV_THROW (RBS_BAD_HEADER);
|
||||
throw RBS_BAD_HEADER;
|
||||
|
||||
//if( m_maxval > 255 ) m_binary = false; nonsense
|
||||
if( m_maxval > 255 )
|
||||
@@ -185,15 +185,14 @@ bool PxMDecoder::readHeader()
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception&)
|
||||
{
|
||||
CV_UNUSED(e);
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
|
||||
if( !result )
|
||||
@@ -233,7 +232,7 @@ bool PxMDecoder::readData( Mat& img )
|
||||
FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
|
||||
}
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.setPos( m_offset );
|
||||
|
||||
@@ -359,15 +358,14 @@ bool PxMDecoder::readData( Mat& img )
|
||||
CV_Error(Error::StsError, "m_bpp is not supported");
|
||||
}
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception&)
|
||||
{
|
||||
CV_UNUSED(e);
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
|
||||
CV_RETHROW();
|
||||
throw;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -84,7 +84,7 @@ bool SunRasterDecoder::readHeader()
|
||||
|
||||
if( !m_strm.open( m_filename )) return false;
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.skip( 4 );
|
||||
m_width = m_strm.getDWord();
|
||||
@@ -144,7 +144,7 @@ bool SunRasterDecoder::readHeader()
|
||||
}
|
||||
}
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch(...)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ bool SunRasterDecoder::readData( Mat& img )
|
||||
if( !color && m_maptype == RMT_EQUAL_RGB )
|
||||
CvtPaletteToGray( m_palette, gray_palette, 1 << m_bpp );
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
m_strm.setPos( m_offset );
|
||||
|
||||
@@ -376,7 +376,7 @@ bad_decoding_end:
|
||||
CV_Error(Error::StsInternal, "");
|
||||
}
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch( ... )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -433,18 +433,18 @@ imread_( const String& filename, int flags, Mat& mat )
|
||||
/// set the filename in the driver
|
||||
decoder->setSource( filename );
|
||||
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
// read the header to make sure it succeeds
|
||||
if( !decoder->readHeader() )
|
||||
return 0;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
|
||||
return 0;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
|
||||
return 0;
|
||||
@@ -472,16 +472,16 @@ imread_( const String& filename, int flags, Mat& mat )
|
||||
|
||||
// read the image data
|
||||
bool success = false;
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
if (decoder->readData(mat))
|
||||
success = true;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
|
||||
}
|
||||
@@ -534,18 +534,18 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
|
||||
decoder->setSource(filename);
|
||||
|
||||
// read the header to make sure it succeeds
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
// read the header to make sure it succeeds
|
||||
if( !decoder->readHeader() )
|
||||
return 0;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
|
||||
return 0;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
|
||||
return 0;
|
||||
@@ -573,16 +573,16 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
|
||||
// read the image data
|
||||
Mat mat(size.height, size.width, type);
|
||||
bool success = false;
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
if (decoder->readData(mat))
|
||||
success = true;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
|
||||
}
|
||||
@@ -749,16 +749,16 @@ imdecode_( const Mat& buf, int flags, Mat& mat )
|
||||
}
|
||||
|
||||
bool success = false;
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
if (decoder->readHeader())
|
||||
success = true;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
|
||||
}
|
||||
@@ -794,16 +794,16 @@ imdecode_( const Mat& buf, int flags, Mat& mat )
|
||||
mat.create( size.height, size.width, type );
|
||||
|
||||
success = false;
|
||||
CV_TRY
|
||||
try
|
||||
{
|
||||
if (decoder->readData(mat))
|
||||
success = true;
|
||||
}
|
||||
CV_CATCH (cv::Exception, e)
|
||||
catch (const cv::Exception& e)
|
||||
{
|
||||
std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
|
||||
}
|
||||
CV_CATCH_ALL
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user