comparison UnitTestsSources/ImageProcessingTests.cpp @ 3712:2a170a8f1faf

replacing std::auto_ptr by std::unique_ptr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Mar 2020 15:32:45 +0100
parents 12253ddefe5a
children f9863630ec7f
comparison
equal deleted inserted replaced
3709:1f4910999fe7 3712:2a170a8f1faf
32 32
33 33
34 #include "PrecompiledHeadersUnitTests.h" 34 #include "PrecompiledHeadersUnitTests.h"
35 #include "gtest/gtest.h" 35 #include "gtest/gtest.h"
36 36
37 #include "../Core/Compatibility.h"
37 #include "../Core/DicomFormat/DicomImageInformation.h" 38 #include "../Core/DicomFormat/DicomImageInformation.h"
38 #include "../Core/Images/Image.h" 39 #include "../Core/Images/Image.h"
39 #include "../Core/Images/ImageProcessing.h" 40 #include "../Core/Images/ImageProcessing.h"
40 #include "../Core/Images/ImageTraits.h" 41 #include "../Core/Images/ImageTraits.h"
41 #include "../Core/OrthancException.h" 42 #include "../Core/OrthancException.h"
90 { 91 {
91 template <typename T> 92 template <typename T>
92 class TestImageTraits : public ::testing::Test 93 class TestImageTraits : public ::testing::Test
93 { 94 {
94 private: 95 private:
95 std::auto_ptr<Image> image_; 96 std::unique_ptr<Image> image_;
96 97
97 protected: 98 protected:
98 virtual void SetUp() ORTHANC_OVERRIDE 99 virtual void SetUp() ORTHANC_OVERRIDE
99 { 100 {
100 image_.reset(new Image(ImageTraits::PixelTraits::GetPixelFormat(), 7, 9, false)); 101 image_.reset(new Image(ImageTraits::PixelTraits::GetPixelFormat(), 7, 9, false));
545 Image dirac(PixelFormat_Grayscale8, 9, 1, false); 546 Image dirac(PixelFormat_Grayscale8, 9, 1, false);
546 ImageProcessing::Set(dirac, 0); 547 ImageProcessing::Set(dirac, 0);
547 SetGrayscale8Pixel(dirac, 4, 0, 100); 548 SetGrayscale8Pixel(dirac, 4, 0, 100);
548 549
549 { 550 {
550 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 551 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
551 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); 552 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0);
552 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 553 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
553 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); 554 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0));
554 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 20)); 555 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 20));
555 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 20)); 556 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 20));
559 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0)); 560 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0));
560 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0)); 561 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0));
561 } 562 }
562 563
563 { 564 {
564 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 565 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
565 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); 566 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2);
566 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 567 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
567 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); 568 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0));
568 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0)); 569 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0));
569 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0)); 570 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0));
573 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0)); 574 ASSERT_TRUE(TestGrayscale8Pixel(*image, 7, 0, 0));
574 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0)); 575 ASSERT_TRUE(TestGrayscale8Pixel(*image, 8, 0, 0));
575 } 576 }
576 577
577 { 578 {
578 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 579 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
579 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); 580 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0);
580 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 581 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
581 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0)); 582 ASSERT_TRUE(TestGrayscale8Pixel(*image, 1, 0, 0));
582 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0)); 583 ASSERT_TRUE(TestGrayscale8Pixel(*image, 2, 0, 0));
583 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0)); 584 ASSERT_TRUE(TestGrayscale8Pixel(*image, 3, 0, 0));
593 Image dirac(PixelFormat_Grayscale8, 1, 9, false); 594 Image dirac(PixelFormat_Grayscale8, 1, 9, false);
594 ImageProcessing::Set(dirac, 0); 595 ImageProcessing::Set(dirac, 0);
595 SetGrayscale8Pixel(dirac, 0, 4, 100); 596 SetGrayscale8Pixel(dirac, 0, 4, 100);
596 597
597 { 598 {
598 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 599 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
599 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); 600 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2);
600 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 601 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
601 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); 602 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0));
602 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 20)); 603 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 20));
603 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 20)); 604 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 20));
607 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0)); 608 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0));
608 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0)); 609 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0));
609 } 610 }
610 611
611 { 612 {
612 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 613 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
613 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); 614 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0);
614 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 615 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
615 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); 616 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0));
616 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0)); 617 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0));
617 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0)); 618 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0));
621 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0)); 622 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 7, 0));
622 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0)); 623 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 8, 0));
623 } 624 }
624 625
625 { 626 {
626 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 627 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
627 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); 628 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0);
628 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0)); 629 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 0, 0));
629 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0)); 630 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 1, 0));
630 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0)); 631 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 2, 0));
631 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0)); 632 ASSERT_TRUE(TestGrayscale8Pixel(*image, 0, 3, 0));
641 Image dirac(PixelFormat_RGB24, 9, 1, false); 642 Image dirac(PixelFormat_RGB24, 9, 1, false);
642 ImageProcessing::Set(dirac, 0); 643 ImageProcessing::Set(dirac, 0);
643 SetRGB24Pixel(dirac, 4, 0, 100, 120, 140); 644 SetRGB24Pixel(dirac, 4, 0, 100, 120, 140);
644 645
645 { 646 {
646 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 647 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
647 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); 648 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0);
648 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 649 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
649 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); 650 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0));
650 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 20, 24, 28)); 651 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 20, 24, 28));
651 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 20, 24, 28)); 652 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 20, 24, 28));
655 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0)); 656 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0));
656 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0)); 657 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0));
657 } 658 }
658 659
659 { 660 {
660 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 661 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
661 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); 662 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2);
662 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 663 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
663 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); 664 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0));
664 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0)); 665 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0));
665 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0)); 666 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0));
669 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0)); 670 ASSERT_TRUE(TestRGB24Pixel(*image, 7, 0, 0, 0, 0));
670 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0)); 671 ASSERT_TRUE(TestRGB24Pixel(*image, 8, 0, 0, 0, 0));
671 } 672 }
672 673
673 { 674 {
674 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 675 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
675 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); 676 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0);
676 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 677 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
677 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0)); 678 ASSERT_TRUE(TestRGB24Pixel(*image, 1, 0, 0, 0, 0));
678 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0)); 679 ASSERT_TRUE(TestRGB24Pixel(*image, 2, 0, 0, 0, 0));
679 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0)); 680 ASSERT_TRUE(TestRGB24Pixel(*image, 3, 0, 0, 0, 0));
689 Image dirac(PixelFormat_RGB24, 1, 9, false); 690 Image dirac(PixelFormat_RGB24, 1, 9, false);
690 ImageProcessing::Set(dirac, 0); 691 ImageProcessing::Set(dirac, 0);
691 SetRGB24Pixel(dirac, 0, 4, 100, 120, 140); 692 SetRGB24Pixel(dirac, 0, 4, 100, 120, 140);
692 693
693 { 694 {
694 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 695 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
695 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2); 696 ImageProcessing::SeparableConvolution(*image, k2, 0, k1, 2);
696 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 697 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
697 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); 698 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0));
698 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 20, 24, 28)); 699 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 20, 24, 28));
699 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 20, 24, 28)); 700 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 20, 24, 28));
703 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0)); 704 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0));
704 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0)); 705 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0));
705 } 706 }
706 707
707 { 708 {
708 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 709 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
709 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0); 710 ImageProcessing::SeparableConvolution(*image, k1, 2, k2, 0);
710 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 711 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
711 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); 712 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0));
712 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0)); 713 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0));
713 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0)); 714 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0));
717 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0)); 718 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 7, 0, 0, 0));
718 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0)); 719 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 8, 0, 0, 0));
719 } 720 }
720 721
721 { 722 {
722 std::auto_ptr<ImageAccessor> image(Image::Clone(dirac)); 723 std::unique_ptr<ImageAccessor> image(Image::Clone(dirac));
723 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0); 724 ImageProcessing::SeparableConvolution(*image, k2, 0, k2, 0);
724 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0)); 725 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 0, 0, 0, 0));
725 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0)); 726 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 1, 0, 0, 0));
726 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0)); 727 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 2, 0, 0, 0));
727 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0)); 728 ASSERT_TRUE(TestRGB24Pixel(*image, 0, 3, 0, 0, 0));