Mercurial > hg > orthanc
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)); |