Hi ROS::Diamondback@Ubuntu The function CvBridge::encoding_as_cvtype does not supprot bayer formats, therefore it will crash in some cases. I suggest to change the function to the following and to make it static. static int encoding_as_cvtype(std::string encoding) { if (encoding == "8UC1") return CV_8UC1; if (encoding == "8UC2") return CV_8UC2; if (encoding == "8UC3") return CV_8UC3; if (encoding == "8UC4") return CV_8UC4; if (encoding == "8SC1") return CV_8SC1; if (encoding == "8SC2") return CV_8SC2; if (encoding == "8SC3") return CV_8SC3; if (encoding == "8SC4") return CV_8SC4; if (encoding == "16UC1") return CV_16UC1; if (encoding == "16UC2") return CV_16UC2; if (encoding == "16UC3") return CV_16UC3; if (encoding == "16UC4") return CV_16UC4; if (encoding == "16SC1") return CV_16SC1; if (encoding == "16SC2") return CV_16SC2; if (encoding == "16SC3") return CV_16SC3; if (encoding == "16SC4") return CV_16SC4; if (encoding == "32SC1") return CV_32SC1; if (encoding == "32SC2") return CV_32SC2; if (encoding == "32SC3") return CV_32SC3; if (encoding == "32SC4") return CV_32SC4; if (encoding == "32FC1") return CV_32FC1; if (encoding == "32FC2") return CV_32FC2; if (encoding == "32FC3") return CV_32FC3; if (encoding == "32FC4") return CV_32FC4; if (encoding == "64FC1") return CV_64FC1; if (encoding == "64FC2") return CV_64FC2; if (encoding == "64FC3") return CV_64FC3; if (encoding == "64FC4") return CV_64FC4; if (encoding == "rgb8") return CV_8UC3; if (encoding == "bgr8") return CV_8UC3; if (encoding == "rgba8") return CV_8UC4; if (encoding == "bgra8") return CV_8UC4; if (encoding == "mono8") return CV_8UC1; if (encoding == "mono16") return CV_16UC1; if (encoding == "yuv422") return CV_8UC2; if (encoding == "yuv") return CV_8UC3; if (encoding == "bayer_rggb8") return CV_8UC1; if (encoding == "bayer_bggr8") return CV_8UC1; if (encoding == "bayer_gbrg8") return CV_8UC1; if (encoding == "bayer_grbg8") return CV_8UC1; if (encoding == "bayer_grbg16") return CV_16UC1; if (encoding == "bayer_bggr16") return CV_16UC1; if (encoding == "bayer_gbrg16") return CV_16UC1; if (encoding == "bayer_grbg16") return CV_16UC1; return -1; }