diff --git a/Modules/Core/ImageBase/include/otbImageCommons.h b/Modules/Core/ImageBase/include/otbImageCommons.h
index 901e16d55d9898acd5ba5ccc2a1e12eee9ba6461..bb9ac399a2277963ec4657f9bf4f04733e3f7985 100644
--- a/Modules/Core/ImageBase/include/otbImageCommons.h
+++ b/Modules/Core/ImageBase/include/otbImageCommons.h
@@ -33,6 +33,8 @@ class OTBImageBase_EXPORT ImageCommons
 public:
 
   void SetImageMetadata(ImageMetadata imd);
+  
+  void SetBandImageMetadata(ImageMetadata::ImageMetadataBandsType imd);
 
   const ImageMetadata & GetImageMetadata() const;
 
diff --git a/Modules/Core/ImageBase/src/otbImageCommons.cxx b/Modules/Core/ImageBase/src/otbImageCommons.cxx
index 28647a1a341259fe96858f5970a57338636a7499..6b8c86738b935d475c11c54d415972d9feb84d39 100644
--- a/Modules/Core/ImageBase/src/otbImageCommons.cxx
+++ b/Modules/Core/ImageBase/src/otbImageCommons.cxx
@@ -28,6 +28,11 @@ void ImageCommons::SetImageMetadata(ImageMetadata imd)
   m_Imd = std::move(imd);
 }
 
+void ImageCommons::SetBandImageMetadata(ImageMetadata::ImageMetadataBandsType bands)
+{
+  m_Imd.Bands = std::move(bands);
+}
+
 const ImageMetadata & ImageCommons::GetImageMetadata() const
 {
   return m_Imd;