@@ -521,6 +521,12 @@ namespace dlib
521521 float get_avg_green () const { return avg_green; }
522522 float get_avg_blue () const { return avg_blue; }
523523
524+ unsigned long get_pyramid_padding () const { return pyramid_padding; }
525+ void set_pyramid_padding (unsigned long value) { pyramid_padding = value; }
526+
527+ unsigned long get_pyramid_outer_padding () const { return pyramid_outer_padding; }
528+ void set_pyramid_outer_padding (unsigned long value) { pyramid_outer_padding = value; }
529+
524530 bool image_contained_point (
525531 const tensor& data,
526532 const point& p
@@ -579,9 +585,9 @@ namespace dlib
579585 parallel_for (0 , imgs.size (), [&](long i){
580586 std::vector<rectangle> rects;
581587 if (i == 0 )
582- create_tiled_pyramid<pyramid_type>(ibegin[i], imgs[i], data.annotation ().get <std::vector<rectangle>>());
588+ create_tiled_pyramid<pyramid_type>(ibegin[i], imgs[i], data.annotation ().get <std::vector<rectangle>>(), pyramid_padding, pyramid_outer_padding );
583589 else
584- create_tiled_pyramid<pyramid_type>(ibegin[i], imgs[i], rects);
590+ create_tiled_pyramid<pyramid_type>(ibegin[i], imgs[i], rects, pyramid_padding, pyramid_outer_padding );
585591 });
586592 nr = imgs[0 ].nr ();
587593 nc = imgs[0 ].nc ();
@@ -611,38 +617,58 @@ namespace dlib
611617
612618 friend void serialize (const input_rgb_image_pyramid& item, std::ostream& out)
613619 {
614- serialize (" input_rgb_image_pyramid " , out);
620+ serialize (" input_rgb_image_pyramid2 " , out);
615621 serialize (item.avg_red , out);
616622 serialize (item.avg_green , out);
617623 serialize (item.avg_blue , out);
624+ serialize (item.pyramid_padding , out);
625+ serialize (item.pyramid_outer_padding , out);
618626 }
619627
620628 friend void deserialize (input_rgb_image_pyramid& item, std::istream& in)
621629 {
622630 std::string version;
623631 deserialize (version, in);
624- if (version != " input_rgb_image_pyramid" )
632+ if (version != " input_rgb_image_pyramid" && version != " input_rgb_image_pyramid2 " )
625633 throw serialization_error (" Unexpected version found while deserializing dlib::input_rgb_image_pyramid." );
626634 deserialize (item.avg_red , in);
627635 deserialize (item.avg_green , in);
628636 deserialize (item.avg_blue , in);
637+ if (version == " input_rgb_image_pyramid2" )
638+ {
639+ deserialize (item.pyramid_padding , in);
640+ deserialize (item.pyramid_outer_padding , in);
641+ }
642+ else
643+ {
644+ item.pyramid_padding = 10 ;
645+ item.pyramid_outer_padding = 11 ;
646+ }
629647 }
630648
631649 friend std::ostream& operator <<(std::ostream& out, const input_rgb_image_pyramid& item)
632650 {
633651 out << " input_rgb_image_pyramid(" <<item.avg_red <<" ," <<item.avg_green <<" ," <<item.avg_blue <<" )" ;
652+ out << " pyramid_padding=" <<item.pyramid_padding ;
653+ out << " pyramid_outer_padding=" <<item.pyramid_outer_padding ;
634654 return out;
635655 }
636656
637657 friend void to_xml (const input_rgb_image_pyramid& item, std::ostream& out)
638658 {
639- out << " <input_rgb_image_pyramid r='" <<item.avg_red <<" ' g='" <<item.avg_green <<" ' b='" <<item.avg_blue <<" '/>" ;
659+ out << " <input_rgb_image_pyramid r='" <<item.avg_red <<" ' g='" <<item.avg_green
660+ <<" ' b='" <<item.avg_blue
661+ <<" ' pyramid_padding='" <<item.pyramid_padding
662+ <<" ' pyramid_outer_padding='" <<item.pyramid_outer_padding
663+ <<" '/>" ;
640664 }
641665
642666 private:
643667 float avg_red;
644668 float avg_green;
645669 float avg_blue;
670+ unsigned long pyramid_padding = 10 ;
671+ unsigned long pyramid_outer_padding = 11 ;
646672 };
647673
648674// ----------------------------------------------------------------------------------------
0 commit comments