我有这个C++程序,具有以下一般结构
1st while (condition A == true)
//some code for 1st loop
2nd while (condition B == true)
//some code for 2nd loop
try
//some code for try
catch
//condition B == false (supposed to leave 2nd loop and go back to first loop)
Run Code Online (Sandbox Code Playgroud)
我希望它在出现异常时离开第二个循环并返回到第一个循环,直到条件B再次出现.如上所述,它不像我期望的那样工作.似乎正在发生的是代码陷入困境catch并且永远不会离开它.
如何安排它以使其按需要工作?
注意:条件A永远不会为假.
我有24位RGB格式的图像缓冲区.使用此缓冲区复制到cv :: Mat
cv::Mat mat = cv::Mat(image->height, image->width, CV_8UC3, image->data);
Run Code Online (Sandbox Code Playgroud)
由于此缓冲区为RGB格式,OpenCV使用BGR格式,因此我将转换mat为BGR
cv::cvtColor(mat, mat, CV_RGB2BGR);
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是当我检查原始图像时,它的通道也会被反转(因此它们会出错),我不希望这种情况发生.
我想反转mat频道命令离开image-data(我的图像缓冲区)不变.我怎样才能做到这一点?