0

我的问题是当我输入 N 或 Y 时,它会以黑白打开图片,有人可以帮我解决这个问题。

int main()

{

cout << "Do you want the picture to be in greyscale (Y/N)";

    int Y;  
    int N;  

    cin >> Y; 
    cin >> N; 

    Mat GRAY;
    Mat A;

    GRAY = imread("Maelk.png", CV_LOAD_IMAGE_GRAYSCALE);    // The picture in gray
    A = imread("Maelk.png", CV_LOAD_IMAGE_UNCHANGED);   // Picture in colors    

    char answer = 0;
    switch (answer);
    cin >> answer;

    if(answer == 'N')

{   
    namedWindow("Milk");

    imshow("Milk", A); 
}

else

    namedWindow("Milk");

    imshow("Milk", GRAY);

    waitKey (0);

} 
4

2 回答 2

1

你没有开口else大括号。

else
{ //add this opening brace
    namedWindow("Milk");

此外,您的代码中不需要 a switch

switch (answer); //does not do anything

变量YN也是无用的。由于您正在阅读 中的用户响应answer,因此不需要它们。

于 2013-10-16T20:45:47.303 回答
0

您缺少else语句周围的大括号:

else
{

    namedWindow("Milk");

    imshow("Milk", GRAY);
}

如果您没有这些,则imshow每次都会执行该行,可能会用灰度图像覆盖彩色图像。

于 2013-10-16T20:44:23.543 回答