There is no problem with your code in my configuration. I can set a breakpoint and there is no exception :
|>|opencv_imgproc470d.dll!cv::hal_AVX2::v_load_deinterleave(const unsigned char * ptr, cv::hal_AVX2::v_uint8x32 & a, cv::hal_AVX2::v_uint8x32 & b, cv::hal_AVX2::v_uint8x32 & c) Line 2447|C++|
|| |opencv_imgproc470d.dll!cv::hal::opt_AVX2::`anonymous namespace'::RGB2RGB<unsigned char>::operator()(const unsigned char * src, unsigned char * dst, int n) Line 139|C++|
| |opencv_imgproc470d.dll!cv::hal::opt_AVX2::`anonymous namespace'::CvtColorLoop_Invoker<cv::hal::opt_AVX2::`anonymous namespace'::RGB2RGB<unsigned char>>::operator()(const cv::Range & range) Line 147|C++|
| |opencv_core470d.dll!cv::`anonymous namespace'::ParallelLoopBodyWrapper::operator()(const cv::Range & sr) Line 354|C++|
| |opencv_core470d.dll!cv::`anonymous namespace'::ProxyLoopBody::operator()(int i) Line 444|C++|
| |[External Code]||
| |opencv_core470d.dll!cv::parallel_for_impl(const cv::Range & range, const cv::ParallelLoopBody & body, double nstripes) Line 600|C++|
| |opencv_core470d.dll!cv::parallel_for_(const cv::Range & range, const cv::ParallelLoopBody & body, double nstripes) Line 523|C++|
| |opencv_imgproc470d.dll!cv::hal::opt_AVX2::`anonymous namespace'::CvtColorLoop<cv::hal::opt_AVX2::`anonymous namespace'::RGB2RGB<unsigned char>>(const unsigned char * src_data, unsigned __int64 src_step, unsigned char * dst_data, unsigned __int64 dst_step, int width, int height, const cv::hal::opt_AVX2::`anonymous-namespace'::RGB2RGB<unsigned char> & cvt) Line 166|C++|
| |opencv_imgproc470d.dll!cv::hal::opt_AVX2::cvtBGRtoBGR(const unsigned char * src_data, unsigned __int64 src_step, unsigned char * dst_data, unsigned __int64 dst_step, int width, int height, int depth, int scn, int dcn, bool swapBlue) Line 1101|C++|
| |opencv_imgproc470d.dll!cv::hal::cvtBGRtoBGR(const unsigned char * src_data, unsigned __int64 src_step, unsigned char * dst_data, unsigned __int64 dst_step, int width, int height, int depth, int scn, int dcn, bool swapBlue) Line 236|C++|
| |opencv_imgproc470d.dll!cv::cvtColorBGR2BGR(const cv::debug_build_guard::_InputArray & _src, const cv::debug_build_guard::_OutputArray & _dst, int dcn, bool swapb) Line 554|C++|
| |opencv_imgproc470d.dll!cv::cvtColor(const cv::debug_build_guard::_InputArray & _src, const cv::debug_build_guard::_OutputArray & _dst, int code, int dcn) Line 199|C++|
| |opencv_highgui470d.dll!convertToShow(const cv::Mat & src, cv::Mat & dst, bool toRGB) Line 176|C++|
| |opencv_highgui470d.dll!showImage_(CvWindow & window, const cv::Mat & image) Line 1448|C++|
| |opencv_highgui470d.dll!cv::impl::Win32UIWindow::imshow(const cv::debug_build_guard::_InputArray & image) Line 2758|C++|
| |opencv_highgui470d.dll!cv::imshow(const std::string & winname, const cv::debug_build_guard::_InputArray & _img) Line 987|C++|
In your code as your image type is CV_8UC3 is better to set :
const Scalar white = Scalar(255, 255, 255);
const Scalar black = Scalar(0, 0, 0);
I don’t use mingw a s compiler but vs2022