@@ -286,6 +286,60 @@ TEST_F(IOTest, TestReadFileToDatum) {
286
286
}
287
287
288
288
TEST_F (IOTest, TestDecodeDatum) {
289
+ string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
290
+ Datum datum;
291
+ EXPECT_TRUE (ReadFileToDatum (filename, &datum));
292
+ EXPECT_TRUE (DecodeDatum (&datum, true ));
293
+ EXPECT_FALSE (DecodeDatum (&datum, true ));
294
+ Datum datum_ref;
295
+ ReadImageToDatumReference (filename, 0 , 0 , 0 , true , &datum_ref);
296
+ EXPECT_EQ (datum.channels (), datum_ref.channels ());
297
+ EXPECT_EQ (datum.height (), datum_ref.height ());
298
+ EXPECT_EQ (datum.width (), datum_ref.width ());
299
+ EXPECT_EQ (datum.data ().size (), datum_ref.data ().size ());
300
+
301
+ const string& data = datum.data ();
302
+ const string& data_ref = datum_ref.data ();
303
+ for (int i = 0 ; i < datum.data ().size (); ++i) {
304
+ EXPECT_TRUE (data[i] == data_ref[i]);
305
+ }
306
+ }
307
+
308
+ TEST_F (IOTest, TestDecodeDatumToCVMat) {
309
+ string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
310
+ Datum datum;
311
+ EXPECT_TRUE (ReadFileToDatum (filename, &datum));
312
+ cv::Mat cv_img = DecodeDatumToCVMat (datum, true );
313
+ EXPECT_EQ (cv_img.channels (), 3 );
314
+ EXPECT_EQ (cv_img.rows , 360 );
315
+ EXPECT_EQ (cv_img.cols , 480 );
316
+ cv_img = DecodeDatumToCVMat (datum, false );
317
+ EXPECT_EQ (cv_img.channels (), 1 );
318
+ EXPECT_EQ (cv_img.rows , 360 );
319
+ EXPECT_EQ (cv_img.cols , 480 );
320
+ }
321
+
322
+ TEST_F (IOTest, TestDecodeDatumToCVMatContent) {
323
+ string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
324
+ Datum datum;
325
+ EXPECT_TRUE (ReadImageToDatum (filename, 0 , std::string (" jpg" ), &datum));
326
+ cv::Mat cv_img = DecodeDatumToCVMat (datum, true );
327
+ cv::Mat cv_img_ref = ReadImageToCVMat (filename);
328
+ EXPECT_EQ (cv_img_ref.channels (), cv_img.channels ());
329
+ EXPECT_EQ (cv_img_ref.rows , cv_img.rows );
330
+ EXPECT_EQ (cv_img_ref.cols , cv_img.cols );
331
+
332
+ for (int c = 0 ; c < datum.channels (); ++c) {
333
+ for (int h = 0 ; h < datum.height (); ++h) {
334
+ for (int w = 0 ; w < datum.width (); ++w) {
335
+ EXPECT_TRUE (cv_img.at <cv::Vec3b>(h, w)[c]==
336
+ cv_img_ref.at <cv::Vec3b>(h, w)[c]);
337
+ }
338
+ }
339
+ }
340
+ }
341
+
342
+ TEST_F (IOTest, TestDecodeDatumNative) {
289
343
string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
290
344
Datum datum;
291
345
EXPECT_TRUE (ReadFileToDatum (filename, &datum));
@@ -305,7 +359,7 @@ TEST_F(IOTest, TestDecodeDatum) {
305
359
}
306
360
}
307
361
308
- TEST_F (IOTest, TestDecodeDatumToCVMat ) {
362
+ TEST_F (IOTest, TestDecodeDatumToCVMatNative ) {
309
363
string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
310
364
Datum datum;
311
365
EXPECT_TRUE (ReadFileToDatum (filename, &datum));
@@ -315,7 +369,37 @@ TEST_F(IOTest, TestDecodeDatumToCVMat) {
315
369
EXPECT_EQ (cv_img.cols , 480 );
316
370
}
317
371
318
- TEST_F (IOTest, TestDecodeDatumToCVMatContent) {
372
+ TEST_F (IOTest, TestDecodeDatumNativeGray) {
373
+ string filename = EXAMPLES_SOURCE_DIR " images/cat_gray.jpg" ;
374
+ Datum datum;
375
+ EXPECT_TRUE (ReadFileToDatum (filename, &datum));
376
+ EXPECT_TRUE (DecodeDatumNative (&datum));
377
+ EXPECT_FALSE (DecodeDatumNative (&datum));
378
+ Datum datum_ref;
379
+ ReadImageToDatumReference (filename, 0 , 0 , 0 , false , &datum_ref);
380
+ EXPECT_EQ (datum.channels (), datum_ref.channels ());
381
+ EXPECT_EQ (datum.height (), datum_ref.height ());
382
+ EXPECT_EQ (datum.width (), datum_ref.width ());
383
+ EXPECT_EQ (datum.data ().size (), datum_ref.data ().size ());
384
+
385
+ const string& data = datum.data ();
386
+ const string& data_ref = datum_ref.data ();
387
+ for (int i = 0 ; i < datum.data ().size (); ++i) {
388
+ EXPECT_TRUE (data[i] == data_ref[i]);
389
+ }
390
+ }
391
+
392
+ TEST_F (IOTest, TestDecodeDatumToCVMatNativeGray) {
393
+ string filename = EXAMPLES_SOURCE_DIR " images/cat_gray.jpg" ;
394
+ Datum datum;
395
+ EXPECT_TRUE (ReadFileToDatum (filename, &datum));
396
+ cv::Mat cv_img = DecodeDatumToCVMatNative (datum);
397
+ EXPECT_EQ (cv_img.channels (), 1 );
398
+ EXPECT_EQ (cv_img.rows , 360 );
399
+ EXPECT_EQ (cv_img.cols , 480 );
400
+ }
401
+
402
+ TEST_F (IOTest, TestDecodeDatumToCVMatContentNative) {
319
403
string filename = EXAMPLES_SOURCE_DIR " images/cat.jpg" ;
320
404
Datum datum;
321
405
EXPECT_TRUE (ReadImageToDatum (filename, 0 , std::string (" jpg" ), &datum));
0 commit comments