我正在用C++編寫一個實時視頻處理程序,並希望能夠使用相同的mjpeg流切換三個窗口,顏色,灰度和單色。我已經運行了所有圖像Feed,但由於我的屏幕很小,我希望能夠單獨打開和關閉它們。爲此,我編寫了下面的代碼,但調用了destroyWindow(「[windowname]」);相反,停止整個程序。我已經閱讀過這些文檔,並且在它前面添加void也沒有幫助。有人可以告訴我我做錯了什麼嗎? 下面的代碼(它是一個無限循環,直到你看到下面的破被稱爲):destroyWindow(來自opencv)關閉所有窗口並停止C++程序
imshow("Color", imageColor);
imshow("Monochrome", imageMonochrome);
imshow("Grayscale", imageGrayscale);
int keyPressed = waitKey(0);
if (keyPressed > 0)
{
cout << keyPressed;
cout << "key was pressed\n";
// Press C to toggle color window
if (99 == keyPressed)
{
if (colorOpen)
{
cout << "Color window closed\n";
void destroyWindow("Color");
colorOpen = false;
}
if (!colorOpen)
{
cout << "Color window opened\n";
imshow("Color", imageColor);
colorOpen = true;
}
}
// Press M to toggle monochrome window
if (109 == keyPressed)
{
if (monochromeOpen)
{
cout << "Monochrome window closed\n";
void destroyWindow("Monochrome");
monochromeOpen = false;
}
if (!monochromeOpen)
{
cout << "Monochrome window opened\n";
imshow("Monochrome", imagebw);
monochromeOpen = true;
}
}
// Press G to toggle grayscale window
if (103 == keyPressed)
{
if (grayscaleOpen)
{
cout << "Grayscale window closed\n";
void destroyWindow("Grayscale");
grayscaleOpen = false;
}
if (!grayscaleOpen)
{
cout << "Grayscale window opened\n";
imshow("Grayscale", image);
grayscaleOpen = true;
}
}
// Break out of infinite loop when [ESC] is pressed:
if (27 == keyPressed)
{
cout << "Escape Pressed\n";
break;
}
}
「*我已經閱讀過文檔,把void放在它前面並沒有幫助。*」這聽起來像你不明白你讀的是什麼。是什麼讓你認爲一個「空白」會有什麼作用?沒有它,你認爲會發生什麼? –