Commit e993e8c0 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #1739 from alalek:cleanup_stl_string_replacement

parents 16daec9c 2b4c3576
......@@ -441,10 +441,13 @@ void HDF5Impl::atread(String* value, const String& atlabel)
CV_Error_(Error::StsInternal, ("Attribute '%s' is not of string type!", atlabel.c_str()));
}
size_t size = H5Tget_size(atype);
*value = String(size, 0); // allocate space
AutoBuffer<char> buf(size);
hid_t atype_mem = H5Tget_native_type(atype, H5T_DIR_ASCEND);
H5Aread(attr, atype_mem, const_cast<char*>(value->c_str()));
H5Aread(attr, atype_mem, buf.data());
if (size > 0 && buf[size - 1] == '\0')
size--;
value->assign(buf.data(), size);
H5Tclose(atype_mem);
H5Tclose(atype);
......
......@@ -284,9 +284,27 @@ TEST_F(HDF5_Test, test_attribute_String)
m_hdf_io->atwrite(attr_value, attr_name);
String expected_attr_value;
m_hdf_io->atread(&expected_attr_value, attr_name);
EXPECT_EQ(attr_value.compare(expected_attr_value), 0);
String got_attr_value;
m_hdf_io->atread(&got_attr_value, attr_name);
EXPECT_EQ(attr_value, got_attr_value);
m_hdf_io->close();
}
TEST_F(HDF5_Test, test_attribute_String_empty)
{
reset();
String attr_name = "test-empty-string";
String attr_value;
m_hdf_io = hdf::open(m_filename);
m_hdf_io->atwrite(attr_value, attr_name);
String got_attr_value;
m_hdf_io->atread(&got_attr_value, attr_name);
EXPECT_EQ(attr_value, got_attr_value);
m_hdf_io->close();
}
......
......@@ -290,14 +290,6 @@ public:
@param mode HMM Decoding algorithm. Only OCR_DECODER_VITERBI is available for the moment
(<http://en.wikipedia.org/wiki/Viterbi_algorithm>).
*/
static Ptr<OCRHMMDecoder> create(const Ptr<OCRHMMDecoder::ClassifierCallback> classifier,// The character classifier with built in feature extractor
const std::string& vocabulary, // The language vocabulary (chars when ASCII English text)
// size() must be equal to the number of classes
InputArray transition_probabilities_table, // Table with transition probabilities between character pairs
// cols == rows == vocabulary.size()
InputArray emission_probabilities_table, // Table with observation emission probabilities
// cols == rows == vocabulary.size()
decoder_mode mode = OCR_DECODER_VITERBI); // HMM Decoding algorithm (only Viterbi for the moment)
CV_WRAP static Ptr<OCRHMMDecoder> create(const Ptr<OCRHMMDecoder::ClassifierCallback> classifier,// The character classifier with built in feature extractor
const String& vocabulary, // The language vocabulary (chars when ASCII English text)
......
......@@ -665,16 +665,6 @@ public:
}
};
Ptr<OCRHMMDecoder> OCRHMMDecoder::create( Ptr<OCRHMMDecoder::ClassifierCallback> _classifier,
const string& _vocabulary,
InputArray transition_p,
InputArray emission_p,
decoder_mode _mode)
{
return makePtr<OCRHMMDecoderImpl>(_classifier, _vocabulary, transition_p, emission_p, _mode);
}
Ptr<OCRHMMDecoder> OCRHMMDecoder::create( Ptr<OCRHMMDecoder::ClassifierCallback> _classifier,
const String& _vocabulary,
InputArray transition_p,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment